無限ノック › SOA 練習問題一覧 › 問題
SOAデプロイ、プロビジョニング、および自動化

ある企業はマイクロサービスアプリケーションのデプロイプロセスを以下の順序で自動化する必要があります:(1) 依存サービスのヘルスチェック、(2) 新バージョンのデプロイ、(3) 統合テストの実行、(4) エラーレートが 5% を超えた場合の自動ロールバック、(5) 成功時の Slack 通知。各ステップの実行状態を可視化し、失敗時に特定のステップから再実行できることも求められます。このワークフローを最も適切に実装するサービスはどれですか?

A
AWS Step Functions のステートマシンを使用する。各ステップを Task ステートとして定義し、Choice ステートでエラーレートを評価してロールバック分岐を実装する。実行状態の可視化と特定ステップからの再実行もネイティブにサポートされる。
✓ 正解
Step Functions はステートマシンとして複雑なワークフローを宣言的に定義でき、各ステートの実行状態・入出力・エラーをコンソールで視覚的に確認できる。Choice ステートによる条件分岐、Task ステートのリトライ・キャッチ設定が組み込み機能として提供される。長時間・複数ステップのデプロイワークフローに最適です。
B
AWS CodePipeline を使用し、各ステージにアクションを追加する。エラー検出はパイプライン失敗通知で対応し、問題発生時はロールバックステージを手動で承認して対処する。
(CodePipeline)単体では、動的なエラーレート評価と自動ロールバック分岐の実装が困難です。
C
EC2 上の Cron ジョブとシェルスクリプトでステップを順番に実行し、各ステップの結果を DynamoDB に記録する。エラー時は SNS でアラートを送信し、運用チームが手動でロールバックを実行する。
(EC2 上の Cron ジョブとシェルスクリプト)は、複数ステップの実行状態を視覚的に確認できず、手動対応の負荷が大きくなります。
D
すべてのロジックを 1 つの AWS Lambda 関数に実装し、各ステップを関数内の順次処理として定義する。Lambda の 15 分タイムアウト制限内に収まるよう設計し、エラー時は組み込みの再試行設定でリトライする。
(Lambda 関数)は、15 分のタイムアウト制限があるため、長時間のデプロイワークフローに不向きです。

解説

Step Functions はステートマシンとして複雑なワークフローを宣言的に定義でき、各ステートの実行状態・入出力・エラーをコンソールで視覚的に確認できる。Choice ステートによる条件分岐、Task ステートのリトライ・キャッチ設定が組み込み機能として提供される。長時間・複数ステップのデプロイワークフローに最適です。 選択肢B(CodePipeline)単体では、動的なエラーレート評価と自動ロールバック分岐の実装が困難です。 選択肢C(EC2 上の Cron ジョブとシェルスクリプト)は、複数ステップの実行状態を視覚的に確認できず、手動対応の負荷が大きくなります。 選択肢D(Lambda 関数)は、15 分のタイムアウト制限があるため、長時間のデプロイワークフローに不向きです。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでSOAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← SOA の問題一覧に戻る