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

あるEコマース企業はAWS Lambdaで決済処理関数を運用しています。新バージョンへのデプロイにあたり以下の要件があります: ① 最初は新バージョンに全体の10%のトラフィックのみを流す ② 5分間エラーが発生しなければ残り90%も新バージョンに切り替える ③ エラーレートが閾値を超えた場合は自動的に旧バージョンに切り戻す ④ デプロイ担当者の手動操作なしに上記を完全に自動化する。この要件を最も効率的に満たす構成はどれですか?

A
LambdaエイリアスのルーティングでVersion1に90%・Version2に10%の重み付けを設定し、5分後にCloudWatchアラームを手動確認して100%の切り替えを行う
Lambda エイリアスのルーティングで重み付けを設定し、5 分後にCloudWatch アラームを手動確認して100% の切り替えを行う方法は、CloudWatch アラームの手動確認と切り替えが必要であり「手動操作なしに自動化」という要件を満たしません。
B
AWS CodeDeployのLambdaデプロイグループでデプロイ設定「CodeDeployDefault.LambdaCanary10Percent5Minutes」を使用し、CloudWatchアラームを紐付けて自動ロールバックを有効化する
✓ 正解
AWS CodeDeploy は Lambda 関数のトラフィックシフティングを自動化できます。「CodeDeployDefault.LambdaCanary10Percent5Minutes」は最初の5 分間に新バージョンへ10% のトラフィックを流し、問題がなければ残り90% を自動的に切り替えるカナリアデプロイ設定です。CloudWatch アラームを設定することでエラーレートが閾値を超えた場合に自動ロールバックが実行され、手動操作なしで要件をすべて満たします。
C
Route 53の加重ルーティングポリシーでLambda Version1に90%・Version2に10%のトラフィックを振り分け、CloudWatchアラームで重みを自動更新するLambda関数を実行する
Route 53 の加重ルーティングポリシーは DNS ベースのルーティングサービスであり、Lambda 関数に直接トラフィックをルーティングする機能はありません。実現するには複数のAPI Gateway エンドポイントが必要になり、構成が不必要に複雑になります。
D
AWS Step Functionsでデプロイワークフローを定義し、Wait Stateで5分間待機した後にLambdaエイリアスの重みを自動更新するタスクを実行する
AWS Step Functions によるデプロイワークフロー実装は技術的に可能ですが、CodeDeploy に比べて設計・実装の工数が大きく、エラーレートに基づく自動ロールバック機能も別途実装が必要になるため「最も効率的」ではありません。

解説

AWS CodeDeploy は Lambda 関数のトラフィックシフティングを自動化できます。「CodeDeployDefault.LambdaCanary10Percent5Minutes」は最初の5 分間に新バージョンへ10% のトラフィックを流し、問題がなければ残り90% を自動的に切り替えるカナリアデプロイ設定です。CloudWatch アラームを設定することでエラーレートが閾値を超えた場合に自動ロールバックが実行され、手動操作なしで要件をすべて満たします。 選択肢A の Lambda エイリアスのルーティングで重み付けを設定し、5 分後にCloudWatch アラームを手動確認して100% の切り替えを行う方法は、CloudWatch アラームの手動確認と切り替えが必要であり「手動操作なしに自動化」という要件を満たしません。 選択肢C の Route 53 の加重ルーティングポリシーは DNS ベースのルーティングサービスであり、Lambda 関数に直接トラフィックをルーティングする機能はありません。実現するには複数のAPI Gateway エンドポイントが必要になり、構成が不必要に複雑になります。 選択肢D の AWS Step Functions によるデプロイワークフロー実装は技術的に可能ですが、CodeDeploy に比べて設計・実装の工数が大きく、エラーレートに基づく自動ロールバック機能も別途実装が必要になるため「最も効率的」ではありません。

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

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

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