DOPインシデントとイベントへの対応
あるリテール企業は、CodeCommitへのコードプッシュをトリガーにAWS CodePipelineが自動デプロイを実行する仕組みを運用しています。ホリデーシーズン中は変更フリーズ(チェンジフリーズ)を実施し、自動デプロイを停止したいと考えています。ただし、オンコールエンジニアは緊急のホットフィックスデプロイをCodePipelineやEventBridgeルールの設定を変更せずに承認できる必要があります。また、フリーズの解除も設定変更なしでリアルタイムに行いたい考えです。この要件を最も適切に実現するアプローチはどれですか?
Aフリーズ期間中はCodePipelineの定義に手動承認アクションを追加し、シニアエンジニアの承認を必須にする。フリーズ解除後にアクションを削除する
手動承認アクションの追加・削除はパイプライン定義そのものの変更を伴い、設定変更なしでフリーズを制御・解除するという要件に反します。緊急デプロイのたびに構成を触る必要があります。
BEventBridgeとCodePipelineの間にLambdaを挟み、SSM Change CalendarがOPENの時のみパイプラインを起動する。オンコールはカレンダー状態変更で緊急デプロイを許可する
✓ 正解
SSM Change CalendarはOPEN/CLOSEDをGetCalendarStateで取得でき、Lambdaが判定して起動制御します。緊急時や解除はカレンダー状態を変えるだけで、CodePipelineやEventBridgeの設定変更が不要です。
CEventBridgeルールにフリーズ期間を除外するcronベースのスケジュールパターンを設定し、緊急時はコンソールからパイプラインを手動起動する
cronベースのEventBridgeスケジュールは事前定義した期間でしか制御できず、リアルタイムなフリーズ解除や緊急デプロイの即時許可ができず、設定変更なしという要件を満たしません。
DAWS OrganizationsのSCP(サービスコントロールポリシー)を使用して、フリーズ期間中はcodepipeline:StartPipelineExecutionを拒否する
SCPでStartPipelineExecutionを拒否すればフリーズは実現できますが、解除や緊急デプロイの許可のたびにSCPの変更が必要となり、設定変更なしでリアルタイム制御する要件に反します。
解説
SSM Change CalendarはOPEN/CLOSEDの期間を定義でき、`GetCalendarState` APIで現在の状態を取得できます。Lambda関数がEventBridgeイベントを受け取った後にカレンダー状態を確認し、CLOSEDであればパイプラインを起動しません。緊急時はオンコールエンジニアがSSMコンソールでカレンダーをOPENに変更するだけでよく、CodePipeline・EventBridgeの設定変更は一切不要です。
選択肢Aの手動承認アクション追加はパイプライン定義の変更が必要です。
選択肢CのcronベースのEventBridgeスケジュールはリアルタイムのトグル操作ができません。
選択肢DのSCPは特定のパイプラインのみを制御することが困難です。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでDOPを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →