LoginSignup
0
0

More than 1 year has passed since last update.

CloudWatch Alarmを利用してECSのデプロイをロールバックする

Last updated at Posted at 2023-04-29

はじめに

ECSデプロイのロールバック判断にCircuit Breakerを利用していましたが、CloudWatch Alarmのアラーム状態を検知してロールバックを行う機能が追加されていました。
この機能を利用することでメトリクスを監視し、デプロイ後に異常状態であればロールバックを行うという構成ができるようになりました。

アラーム時にロールバックを行えると色々と活用できそうな気がするので試してみます。

やってみる

CloudWatch Alarmの作成

ロールバックの判断を行うアラームを作成します。
検証を行うECS ServiceのCPU Utilize最大値が30%を超えた時点でアラーム状態になるアラームを作成しました。
現状では負荷が低いコンテナをデプロイしているので、アラームはOK状態となっています。
image_1.png

サービスの編集

サービスを編集から上記で作成したCloudWatch Alarmとの紐づけを行います。
「デプロイ不具合の検出」からCloudWatchアラームを設定して失敗時のロールバック項目にチェックを付けます。
スクリーンショット 2023-02-22 170331.png
Circuit Breakerとの併用もできるようです。

異常なコンテナのデプロイ

CPU負荷が高いコンテナをデプロイします。
タスク定義の新規リビジョンを作成し、サービスを更新します。
負荷が低いリビジョン1から負荷が高いリビジョン2に更新しました。
image_2.png

リビジョン2のタスクがデプロイされることを確認します。

image_3.png

CloudWatch Alarmを確認すると、狙い通り「アラーム状態」となっています。
image_4.png

デプロイイベントを確認すると「alarm detected」が原因となり、ロールバックが開始されていました。
image_5.png

まとめ

簡単ですがAlarmの異常状態からロールバックが発生することを確認しました。
「デプロイ時のAlarmがすでに異常状態の場合はロールバックが発生しない」など、実運用をする場合にはいくつか考慮すべき点があると思います。
以下のドキュメントを事前に確認することをお勧めします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0