SOAデプロイ、プロビジョニング、および自動化
ある企業では、新しいアプリケーションバージョンのデプロイ時に以下のステップを順序どおりに実行する必要があります。
①AMI作成完了の待機、
②統合テストの実行、
③テスト成功時のみ本番環境への段階的ロールアウト、
④失敗時の自動ロールバック。このような複雑なマルチステップデプロイプロセスを最も低い運用負荷で自動化するサービスはどれですか?
AAWS CodePipeline + CodeDeployを使い、各ステージをLambda関数で制御する
CodePipeline+CodeDeployで各ステージをLambda制御することは可能ですが、待機・条件分岐・エラーハンドリングを自前実装する必要があり、Step Functionsより運用負荷が高くなります。
BAWS Step Functionsのステートマシンで各ステップをState(状態)として定義し、待機・条件分岐・エラーハンドリングをLambdaおよびCodeDeployと連携させる
✓ 正解
Step FunctionsはWait・Choice・Catch/Retryなどの状態を視覚的に定義でき、AMI作成待機から統合テスト、段階的ロールアウト、自動ロールバックまでを最小のコード量・低運用負荷でオーケストレーションできます。
CEventBridge Schedulerでcron式を使い、各ステップのLambda関数を一定間隔で順次実行する
EventBridge Schedulerは単純なスケジュール実行向けで、ステップ間の依存関係管理や条件分岐・エラーハンドリングには不向きであり、本要件のマルチステップ制御には適しません。
DAWS Batchのジョブキューで各ステップをジョブとして定義し、ジョブ依存関係を設定する
AWS Batchはバッチコンピューティングジョブ向けで、ジョブ依存は設定できますがデプロイの条件分岐・エラーハンドリングやCodeDeploy連携には設計されておらず不適切です。
解説
AWS Step Functionsのステートマシンで各ステップをState(状態)として定義し、待機・条件分岐・エラーハンドリングをLambdaおよびCodeDeployと連携させる
AWS Step Functionsはサーバーレスなワークフローオーケストレーションサービスで、Wait(待機)・Choice(条件分岐)・Parallel(並列)・Catch/Retry(エラーハンドリング)などの状態を視覚的に定義できます。AMI作成完了待機から自動ロールバックまでの複雑なフローを、コード量を最小化しながら実装できます。
選択肢Aは理由。AWS CodePipeline + CodeDeployを使う場合、各ステージをLambda関数で制御することは可能ですが、Step Functionsほど細かい制御ロジックを低運用負荷で管理できません。
選択肢Cは理由。EventBridge Schedulerは単純なスケジュール実行向けで、ステップ間の依存関係管理には不向きです。
選択肢Dは理由。AWS Batchはビッグデータ処理やシミュレーションなどのバッチコンピューティングジョブ向けサービスであり、デプロイフローの条件分岐・エラーハンドリング・CodeDeployとの連携には設計されていません。
ドメイン別正答率・予想スコアでリアルタイムに実力把握
無限ノックでSOAを徹底対策。全問AI生成のオリジナル問題。
無料で演習を始める →