ある企業はマイクロサービスアプリケーションのデプロイプロセスを以下の順序で自動化する必要があります:(1) 依存サービスのヘルスチェック、(2) 新バージョンのデプロイ、(3) 統合テストの実行、(4) エラーレートが 5% を超えた場合の自動ロールバック、(5) 成功時の Slack 通知。各ステップの実行状態を可視化し、失敗時に特定のステップから再実行できることも求められます。このワークフローを最も適切に実装するサービスはどれですか?
Step Functions はステートマシンとして複雑なワークフローを宣言的に定義でき、各ステートの実行状態・入出力・エラーをコンソールで視覚的に確認できる。Choice ステートによる条件分岐、Task ステートのリトライ・キャッチ設定が組み込み機能として提供される。長時間・複数ステップのデプロイワークフローに最適です。 選択肢B(CodePipeline)単体では、動的なエラーレート評価と自動ロールバック分岐の実装が困難です。 選択肢C(EC2 上の Cron ジョブとシェルスクリプト)は、複数ステップの実行状態を視覚的に確認できず、手動対応の負荷が大きくなります。 選択肢D(Lambda 関数)は、15 分のタイムアウト制限があるため、長時間のデプロイワークフローに不向きです。