ECSのワークショップを行った際のメモ(ブルーグリーンデプロイメント)

AWS
AWS
この記事は約2分で読めます。

はじめに

以下ワークショップを行なった際に学んだ内容そのものや、一見して仕組みが理解できていなかったところを記している自分用の学習記録です。

ECSworkshop.com
Amazon ECS Workshop

Blue/Greenデプロイメントについて

CodeDeplooyおよびECSのBlue/Greenデプロイメント機能を使用して、Fargateを更新します。
Blue/Greenデプロイメントは、同じアプリケーションの異なるバージョンを実行している 2 つの環境間でトラフィックをシフトすることにより、アプリケーションをデプロイする手法です。

インプレース更新とは違い、新しいバージョンのアプリケーションをグリーン環境で検証でき、期待する動作をしなかったときにルーティングをブルー環境(元のアプリケーションバージョン)に簡単にロールバックできます。

CodeDeployのアラームオプションについて

CodeDeployのオペレーションで、デプロイメントグループに関連付けるCloudWatchアラームがアクティブになるたびに、デプロイを停止するように設定可能。
また、指定した監視しきい値に達してアラートが発生した場合、自動的にロールバックするように設定できる。

buildspec.ymlのartifactsについて

CodeBuildでビルド時のカレントディレクトリに存在するディレクトリやファイルを指定し、そのディレクトリやファイルをS3に出力するために使用。

ビルド時のカレントディレクトリにはCodeBuildの入力アーティファクトが存在するため、ビルド時に処理を行なっていないファイルでも、カレントディレクトリに存在する場合は出力アーティファクトにできる(カレントディレクトリより上のディレクトリのファイルなどを指定できるかは検証していないため不明)。

感想

CodeDeployのBlue/Greenデプロイの際に設定したCloudWatchアラームが発報すると、自動的にロールバックされる機能があることを知らなかった。
また、buildspec.yml、taskdef.json、appspec.ymlの形式はドキュメントに記載されているが、少し分かりにくく感じた。
この辺りは実際に手を動かして実際どうなるか確認しないと理解しづらそう。

特にプレースホルダーについて、どうやったらその値が決まるのか良くわかっていないので、公式のチュートリアルなどを通して理解していきたい。

タイトルとURLをコピーしました