## はじめに
今回やった内容はAWSのハンズオンセミナーのCodeCommit、CodePipeLineを用いAmazon S3バケットへのデプロイを行うパイプラインを構築します。
途中Cloud9が起動せず1時間ぐらい悪戦苦闘しました。そこも交えてアウトプットしていこうと思います。
またS3の静的Webホスティングについてはこちらへ
よろしくお願いします(。・ω・)ノ゙
## 今回使用したAWSサービス
CodeCommit
・ソースコードを管理する**Gitリポジトリサービス** ・サートバーティ製のツールも利用可能 ・プルリクエスト機能もある ・フルマネージド型のリソース管理サービスCodePipeLine
・**フルマネージド型の継続的デリバリーサービス** ・Codecommit/CodeBuild/CodeDeployの流れをパイプラインとして定義することでソースコードがコミットされたらデプロイまで自動化 ・素早く確実性のあるアプリケーションとインフラストラクチャのアップデートのためのパイプラインのリソースを自動化AWS Cloud9
・アプリケーションの開発などをクラウド環境で利用できるサービス ・IDE(統合開発環境)としての機能が充実しておりGitHubなどの他のツールとの連携もスムーズ ・ブラウザ上で動くのでPCに依存することなく開発環境を準備することができるのが利点。無料 ・今回初期起動せず原因探しに時間を費やした。今回作る構成図
## CodeCommit
まずマネジメントコンソールからCodeCommitを開きリポジトリを作成していく。
Cloud9で環境構築
マネジメントコンソールからCloud9を開きCloud9の環境を作っていく過程でエラーがあり悪戦苦闘したのも書いていきたいと思います。
本来であればこのままName、EC2インスタンスのタイプやプラットフォームも今回は学習用なのでデフォルトで進めていくのだが、何故かCloud9環境に接続できなかった。
調べた限りのCloud9環境に接続できない主な原因として
・VPCのルーティングミス
・ネットワークACL
・セキュリティグループ辺りの設定ミス
Cloud9はVPCに接続する際デフォルトVPC(変更可)に対して接続されるようになっておりそこからCloudFormastionのテンプレートを使用しEC2インスタンスがデプロイされるようになっている。
CloudFormastionのスタックを見る限りロールバックは起きてないのでデプロイは上手く行ってる。
なので上記のネットワークの設定ミスが多いと思います。
僕の場合はインターネットゲートウェイがブラックホールになっており削除されたインターネットゲートウェイを利用しようとしていたのが原因で接続出来なかった。
接続出来ると以下のようなターミナル画面が出てくる
AWS CodeCommitの認証ヘルパーを使って接続していく
ターミナルで以下のコマンドを叩き接続する
git config --global credential.helper '!aws codecommit credential-helper $@'
git config --global credential.UseHttpPath true
そしてターミナル上でGitユーザーとメールアドレスを作成する。
git conhig --global user.name "○○○○"
git conhig --global user.email "○○○○@hogehoge.jp"
先ほど作ったCodeCommitからリポジトリをクローンする。
cdコマンドでmasterリポジトリに移動しgitコマンドを打つことでCodeCommitのリポジトリにファイルが作成される!
CodePipeLine
CodePipeLineでパイプラインの設定をしていく。
マネジメントコンソールからCodePipeLineを開き作成をクリックし名前を設定しソースステージを追加するという画面では、
1:ソースプロバイダーにCodeCommitを指定
2:リポジトリ名にそれぞれ設定した名前を指定
3:ブランチはmasterしかないのでそれを指定
次へをクリックしていくとビルドステージに設定する画面が出てくるのだが今回はCodeCommitにpushされたソースをそのままS3にデプロイするように設定するので今回は省きます。
スキップするとデプロイステージがでてくるのですが今回はそのままS3にデプロイするのでプロバイダーにS3を設定する。
レビューの画面が出てくるので下にスクロールしパイプラインを作成するをクリックする
ここまで用意が終わると下のようにCloud9でHTMLファイルのソースを書き換えプッシュすることでCodePipeLineが検知してその変更をS3バケットに反映させることができるようになる!!!
学習記録280日目
— きむら@調理師からエンジニアへ (@kimura_T_T) June 14, 2021
AWS(6h)
・朝活:DVAの学習
・S3の静的Webホスティングの構築
・Cloud9の環境を作っていく過程でエラーにぶつかり1時間ほど格闘。原因はblackhole
・CodeCommit、CodePipeLineを使用したCI/CD環境の構築
・動画は本日の成果#RaiseTech#今日の積み上げ pic.twitter.com/z6zWveNqcd
おわりに
エラーで躓きそうになりましたが、楽しくできました!!
また今度はEC2上にCI/CD環境の構築をしていこうと思います!!!!
(。・ω・)ノ゙バイバイ