あるチームがAWS Lambda関数の新バージョンをデプロイし、本番トラフィックの10%だけを新バージョンに送り、問題がなければ段階的に増やしたいと考えている。この要件を最小の運用負荷で実現するために使うべきLambdaの機能として最も適切なものはどれか。
- A. Lambda エイリアスの加重ルーティング(Weighted Routing)を使って新旧バージョンへのトラフィック割合を設定する
- B. Lambda関数URLの設定を変更して2つのエンドポイントを作成する
- C. Lambda@Edgeを使ってCloudFrontディストリビューションでトラフィックを分割する
- D. Application Load Balancerのターゲットグループを2つ作成し、それぞれのバージョンに重み付けする
解答と解説を見る
正解: A
Lambda エイリアスの加重ルーティングは、1つのエイリアス(例: production)に対して2つのバージョンとそれぞれのトラフィック割合(例: v1に90%、v2に10%)を設定できるネイティブ機能である。追加のインフラなしにカナリアデプロイを実現でき、問題発生時はすぐに割合を0%に戻せる。BのLambda関数URLを2つ作成する方法は、クライアント側でURLを切り替える必要があり運用負荷が高い。DのALBを使う方法は可能だが、ALBの設定・管理という追加の運用負荷が発生する。CのLambda@Edgeはエッジロケーションでの実行を目的としており、単純なカナリアデプロイには過剰かつ不適切な手法である。
📚 関連サービスの解説: AWS Lambda