デプロイの自動ロールバック設計 CodeDeployのフックとCloudWatchアラームを連携する
本記事はDOP試験対策として、デプロイ失敗時に自動でロールバックする仕組みの設計を解説します。試験では、デプロイの各段階でどのフックや監視指標を使えば安全に自動化できるかが問われます。
覚え方のフレームは3つの観点です。検証(各段階で健全性を確認する)・判定(アラームで異常を検知する)・復旧(自動で前の状態へ戻す)。
検証 AppSpecのライフサイクルフック
CodeDeployのAppSpecファイルには、BeforeInstallやAfterAllowTestTraffic、BeforeAllowTrafficなど、デプロイの各段階で実行するスクリプトをフックとして定義できます。本番トラフィックを流す前に、ヘルスチェックエンドポイントへの疎通確認を必ず行いたい要件ではBeforeAllowTrafficフックにテストスクリプトを配置します。
判定 CloudWatchアラームとの連携
CodeDeployのデプロイグループにCloudWatchアラームを関連付けると、デプロイ中にアラームが発報した場合、自動的にデプロイを停止しロールバックできます。Lambdaのエイリアスやターゲットグループでトラフィックを段階的に切り替えながら、エラー率やレイテンシの悪化を自動検知して止めたい要件で有効です。
復旧 自動ロールバックの設定
自動ロールバックは「デプロイ失敗時」だけでなく「アラームの閾値超過時」もトリガーに設定できます。カナリアやリニアのトラフィックシフト中に異常を検知したら、即座にトラフィックを旧バージョンへ戻したい要件で、両方のトリガーを有効化します。
| 段階 | 主なフック・仕組み | 使いどころ |
|---|---|---|
| デプロイ前検証 | BeforeInstall・AfterInstall | 依存関係やファイル配置の確認 |
| トラフィック切替前後 | BeforeAllowTraffic・AfterAllowTraffic | ヘルスチェックやスモークテスト |
| 異常検知時 | CloudWatchアラーム連携の自動ロールバック | エラー率・レイテンシ悪化時の即時復旧 |
チェックリスト
- AppSpecの主要なライフサイクルフックの役割を説明できる
- CloudWatchアラームと自動ロールバックの関連付け方法を説明できる
- カナリア・リニアデプロイでの異常検知シナリオを説明できる
- 自動ロールバックが既定で無効である点を理解している
まとめ
安全なデプロイ自動化は「検証・判定・復旧」の3観点で捉え、AppSpecフックでの検証とアラーム連携の自動ロールバックを組み合わせるのが定石です。この記事の理解度はクイズで確認し、最新の試験範囲はAWS認定 公式ページで確認しましょう。
DOP(DevOpsエンジニア) におすすめの教材
AWS認定 DevOpsエンジニア − プロフェッショナル DOP-C02 出題予想問題集 第2版
AWS認定 DevOpsエンジニア − プロフェッショナル DOP-C02 練習問題集
AWS認定DOP(DOP-C02)実践問題集(全範囲・225問)
AWS認定DOP 演習テスト(日本語)
本セクションにはAmazonアソシエイト・Udemyアフィリエイトのリンクが含まれます。