AWS認定学習のためにチュートリアルをやってみたのでメモ。
実際にやってみた方がかなりイメージがわくと思います。
1.CodeCommit リポジトリの作成
以下の手順どおりに、git をインストールして、クローンを作成する。
$ sudo yum install git -y
$ git clone https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/MyDemoRepo
$ mkdir tmp
$ cd tmp
2.CodeCommit リポジトリにサンプルコードを追加する
サンプルコードの準備
$ curl -o https://s3.amazonaws.com/aws-codedeploy-us-east-1/samples/latest/SampleApp_Linux.zip
$ unzip SampleApp_Linux.zip -d MyDemoRepo/
$ ls -la MyDemoRepo/
ステージング→コミット→プッシュします。
$ git add -A
$ git commit -m "test 1"
$ git push
3.デプロイするEC2インスタンスの準備
以下のとおりロールを作成する。
- サービス:EC2
- ロール名: EC2InstanceRole
- ポリシー名:AmazonEC2RoleforAWSCodeDeploy
タグは、MyCodePipelineDemo とし、ユーザデータは以下のとおりにし、EC2インスタンスを作成する。
#!/bin/bash
yum -y update
yum install -y ruby
yum install -y aws-cli
cd /home/ec2-user
aws s3 cp s3://aws-codedeploy-us-east-2/latest/install . --region us-east-2
chmod +x ./install
./install auto
4.CodeDeploy で EC2インスタンスにデプロイする
以下のとおりロールを作成する。
- サービス:CodeDeploy
- ロール名: CodeDeployRole
- ポリシー名:CodeDeploy
5.CodePipeline パイプラインを作成する
Step 1 パイプラインの設定を選択する
Step 2 ソースステージを追加する
Step 3 ビルドステージを追加する
今回ビルドはしないのでスキップします。
Step 4 デプロイステージを追加する
Step 5 レビュー
内容を確認し、「パイプラインの作成」をする。
成功した場合は、パブリック DNSにアクセスして表示されるか確認。
失敗した場合は、CodePipeline のトラブルシューティングをする。
5.CodeCommit リポジトリのコードを編集
index.html のファイルを適当に編集して、変更されるか確認してみます。
$ git commit -am "test2"
$ git push