OPS

AWSCodeDeployでblue/greenデプロイメントをやってみた

2018.10.23

本記事のポイント

アプリ開発者には嬉しい自動デプロイツールを使う機会があったのでその手順を簡単にまとめてみました。

はじめに

以前、CodeDeployを利用する機会がありまして、始めはうまくデプロイできず試行錯誤したのち正常にデプロイすることができたためその手順をまとめてみました。

そもそも CodeDeployとは・・・

Amazon EC2、AWS Lambda、オンプレミスサービスなど、さまざまなコンピューティングサービスへのソフトウェアのデプロイを自動化する、完全マネージド型サービスです。

アプリ開発者がサーバに関して詳しくなくても、S3やGithubにコードを置いてデプロイボタンを押すだけで簡単にデプロイができる便利なサービスです。

AWSCodeDeploy設定手順

では、codedeployの設定手順を紹介していきます。

<事前準備>

IAMロールを2つ作成

EC2用(ポリシー名:AmazonEC2RoleforAWSCodeDeploy)とCodeDeploy用(ポリシー名:AWSCodeDeployRole

EC21台たてCodeDeployエージェントをインストール

参考URLhttps://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/codedeploy-agent-operations-install-linux.html

EC2用のIAMロールをEC2にアタッチ

AutoScalingの起動設定とAutoScalingグループの作成

ELB作成

■ZIP形式に圧縮したソースコードをS3に置いておく

⇒フォルダの中にはappspec.ymlとソースコードを入れておく

<AWS CodeDeploy利用手順>

①「今すぐ始める」をクリック

 

②「カスタムデプロイ」を選択し「ウォークスルーのスキップ」をクリック

 

③アプリケーションとデプロイグループの作成

 

ア:プラットフォームはEC2を選択し、アプリケーション名とデプロイグループ名は任意の名前を入力

イ:Blue/Greenデプロイを選択

ウ:AutoScalingグループの自動コピーを選択

※デプロイする度に新たなオートスケーリンググループが作成されるため、古いオートスケーリンググループは正常性確認後削除するのが望ましい

エ:事前に作成したAutoScalingグループを選択

オ:ALB作成時に作成したターゲットグループを選択

カ:CodeDeploy用のIAMロールを選択

EC2用と混同しない

 

④デプロイ設定の編集

(手順③のスクリーンショットの緑枠で囲った「デプロイ設定の編集」をクリック)

 

ア:ALBの向き先を変えるトラフィックの再ルーティングまでに猶予を設けるか否かを任意で選択

イ:3つの選択肢から任意で選択

参考URLhttps://docs.aws.amazon.com/ja_jp/codedeploy/latest/userguide/deployment-configurations.html

ウ:デプロイが成功した際に元のインスタンスを自動で停止するか否かを任意で選択

 

 

⑤アクション>新しいリビジョンのデプロイを選択

 

⑥デプロイの作成

 

ア:③で作成したアプリケーション、デプロイグループを選択しリビジョンの場所に関してはS3のバケット先URLを記載

イ:ZIPを選択

ウ:ZIP内のファイル名が同じ場合の対応をどうするか選択

※元のファイルを上書きする場合「コンテンツの上書き」を選択

※「デプロイの失敗」を選択すると同じファイルをデプロイするとエラーとなる

エ:デプロイをクリック

 

⑦トラフィックの再ルーティングをクリック

(手順④の青枠で囲った選択肢の場合表示される)

 

⑧デプロイ成功と表示されデプロイが完了する

最後に

 

以上がCodeDeployの一通りの設定手順です。

始めの設定はこのように多少手間がかかりますがその後のデプロイが簡単になりますので、皆さんぜひ使ってみて下さい。

◆AWS公式サイト

https://aws.amazon.com/jp/codedeploy/