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

ある金融サービス企業は、クリティカルな決済処理を担うLambda関数の新バージョンをデプロイしようとしています。以下の要件があります。 ①新バージョンへのトラフィックを段階的に移行する(最初は全体の10%を新バージョンへ、エラー率が上昇しなければ10分後に残りの90%も移行) ②エラー率がCloudWatchアラームのしきい値を超えた場合、自動的に旧バージョンへロールバックする ③運用チームの手動介入を最小化する これらの要件を最も効率的に満たすデプロイ構成はどれですか?

A
Lambdaエイリアスのルーティング設定と AWS CodeDeploy のLambdaデプロイグループ(CodeDeployDefault.LambdaCanary10Percent10Minutes)を使用し、デプロイグループにCloudWatchアラームを関連付けて自動ロールバックを有効化する
✓ 正解
AWS CodeDeployはLambdaデプロイをネイティブサポートしており、Canary(一定割合を先行投入→残りを一括移行)とLinear(均等に段階的移行)という2種類のデプロイ設定を提供します。CodeDeployDefault.LambdaCanary10Percent10Minutesを使用すると最初に10%を新バージョンに移行し、10分後に残りの90%を一括移行できます。デプロイグループにCloudWatchアラームを関連付けることで、エラー率上昇時にCodeDeployが自動でロールバック(Lambdaエイリアスのルーティングを元に戻す)する仕組みが組み込まれています。
B
Lambda関数を新旧2つ別々にデプロイし、Application Load Balancer(ALB)のターゲットグループウェイトを10%/90%に設定してトラフィックを分割する。CloudWatchアラームがしきい値を超えたらEventBridgeルールでLambdaを切り替える
ALBはHTTPリクエストのルーティング用途であり、Lambdaの内部バージョン管理とは設計思想が異なります。Lambda関数を2つ並列運用する構成は管理が煩雑です。
C
Lambda@Edgeを使用し、CloudFrontディストリビューションのビヘイビア設定で新旧バージョンへのトラフィック比率を制御する。エラーはCloudWatchダッシュボードで監視し、閾値超過時は手動でロールバックする
Lambda@EdgeはCloudFrontのエッジロケーションでコードを実行するサービスであり、Lambda関数のバージョン間トラフィック分割を管理するものではありません。また手動ロールバックが必要です。
D
AWS Step Functionsのステートマシンを使用して10分ごとにLambda関数のトラフィック設定を更新し、Catchステートでエラーを検知した場合に旧バージョンへの切り替え処理を実行する
Step Functionsで定期的にLambda設定を更新することは技術的に可能ですが、CodeDeployのような組み込みの自動ロールバック機能がなく、運用負荷が大幅に増加します。

解説

AWS CodeDeployはLambdaデプロイをネイティブサポートしており、Canary(一定割合を先行投入→残りを一括移行)とLinear(均等に段階的移行)という2種類のデプロイ設定を提供します。CodeDeployDefault.LambdaCanary10Percent10Minutesを使用すると最初に10%を新バージョンに移行し、10分後に残りの90%を一括移行できます。デプロイグループにCloudWatchアラームを関連付けることで、エラー率上昇時にCodeDeployが自動でロールバック(Lambdaエイリアスのルーティングを元に戻す)する仕組みが組み込まれています。 選択肢BのALBはHTTPリクエストのルーティング用途であり、Lambdaの内部バージョン管理とは設計思想が異なります。Lambda関数を2つ並列運用する構成は管理が煩雑です。 選択肢CLambda@EdgeはCloudFrontのエッジロケーションでコードを実行するサービスであり、Lambda関数のバージョン間トラフィック分割を管理するものではありません。また手動ロールバックが必要です。 選択肢DのStep Functionsで定期的にLambda設定を更新することは技術的に可能ですが、CodeDeployのような組み込みの自動ロールバック機能がなく、運用負荷が大幅に増加します。

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

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

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