以下の記事で、CodePipelineを利用したWEBコンテンツ更新を行いました。
内容としては、
- 更新したWEBコンテンツをGitリポジトリ(CodeCommit)にアップロード
- Pipelineが発動し、WEBサーバに自動で更新後のコンテンツを展開
というものでした。
AWS CodePipelineを利用してWEBコンテンツ更新を行ってみる
今回は、同じくCodePipelineを利用して以下のようなチュートリアルを行います。
- 更新したWEBコンテンツをGitリポジトリ(CodeCommit)にアップロード
- Pipelineが発動し、WEBサーバ(ステージング環境)に自動で更新後のコンテンツを展開
- Pipelineが承認プロセスに移行するので、ステージング環境をチェック後 承認する
- WEBサーバ(本番環境)に自動で更新後のコンテンツを展開
なお、前回の記事のチュートリアルを行った前提で進めますので、先にこちらをご覧ください。
設定方法
EC2インスタンス作成
前回のチュートリアルで作成したEC2インスタンスをステージング環境とみなして、今回は本番環境用のインスタンスを起動します。
前回と同様のユーザーデータを指定しましょう。
1 2 3 4 5 6 7 8 |
#!/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 |
Nameタグは MyCodePipelineDemo-PRD としました。

また、前回の記事では書き忘れていたのですが、EC2にIAMロールを設定しましょう。
IAMポリシーは「AmazonEC2RoleforAWSCodeDeploy」を利用します。
CodeDeploy デプロイグループの作成
本番環境用のデプロイグループを作成します。

デプロイグループ名などを入力します。


デプロイグループを作成します。

CodePipeline パイプラインの編集
パイプラインに、承認プロセスと本番環境デプロイのステージを追加していきます。

ステージを追加します。

適当なステージ名を入力します。承認プロセスなのでConfirm(確認する)という名前にしました。

作成されたステージにアクショングループを追加します。

以下のように設定します。

承認ステージの内容を確定させます。

次に本番環境デプロイのステージを追加します。

ステージ名を入力してステージを作成します。

アクショングループを追加します。

以下の通り設定します。

本番環境デプロイのステージの内容を確定させます。

承認ステージ、本番環境デプロイのステージが追加されたので、パイプラインの内容を保存します。

保存します。

コンテンツをデプロイしてみる
実際にWEBコンテンツをデプロイしてみましょう。
適当にファイルを編集し、Gitリポジトリ(CodeCommit)にアップします。
1 2 3 4 5 6 7 |
# メモ帳で index.html を編集 C:\Temp\my-demo-repo><span style="color: #ffff00;">notepad index.html</span> # commit, push C:\Temp\my-demo-repo><span style="color: #ffff00;">git commit -am "Updated sample application files"</span> C:\Temp\my-demo-repo><span style="color: #ffff00;">git push </span> |
AWSマネジメントコンソールで、パイプラインの進行状況が確認できます。

Deployステージ(ステージング環境へのデプロイ)が完了すると、Confirmステージ(承認)に移行します。
その際、指定したSNSトピック(今回の場合はメールアドレス)へ通知が届きます。

ステージング環境でコンテンツが更新されていることを確認します。

AWSマネジメントコンソール上で[レビュー]を選択します。

コメントを付与し、承認します。

承認すると、PRD-Deployステージ(本番環境へのデプロイ)が開始されます。

本番環境でもコンテンツが更新されたことを確認しましょう。

投稿者プロフィール
- 2015年8月入社。弊社はインフラ屋ですが、アプリも作ってみたいです。