AI作成・独立検証済(有資格者監修なし)DVA-C02 対応
バージョン/エイリアス(加重ルーティング)難易度 標準無料

本番稼働中のバージョン5(prodエイリアスが100%指している)に対し、新しいバージョン6を段階的に検証しながらリリースしたい。まずトラフィックの10%だけを新バージョンへ流し、エラー率に問題がなければ徐々に100%へ引き上げる、というカナリアリリースを実現する設定として最も適切なものを選べ。(単一選択)

  1. Aprodエイリアスのルーティング設定で、プライマリをバージョン5、追加バージョンとしてバージョン6に10%の重みを設定する。問題が無ければ重みを段階的に引き上げ、最終的にプライマリをバージョン6へ切り替える
  2. Bエイリアスは1つのバージョンしか指せないため、10%のトラフィック分岐を実現するにはprodとは別に新しいエイリアスを作り、クライアント側のコードで10%だけ新エイリアスを呼ぶよう乱数分岐を実装する
  3. Cバージョン6を$LATESTとして保存し、$LATESTへの呼び出しを10%だけAPI Gateway側でルーティングする
  4. D本番用の関数をもう1つ複製して新バージョンを別関数としてデプロイし、Route 53の加重レコードでALB経由のトラフィックを振り分ける
正解・解説・誤答理由・ひっかけを見る▼ open
✓ 正解:AAI作成・独立検証済

解説

エイリアスの加重ルーティング(weighted alias)を使うと、1つのエイリアスに対して 2つのバージョンとその重み(パーセンテージ)を設定でき、呼び出しトラフィックをその比率で振り分けられる。

  • prodエイリアスの追加バージョン設定でバージョン6に10%の重みを割り当てると、 呼び出しの約10%がバージョン6へ、残り90%がバージョン5(プライマリバージョン)へルーティングされる。
  • CloudWatchメトリクス(エラー率・レイテンシ等)を監視しながら、問題なければ重みを段階的に引き上げ、最終的に100%を新バージョンへ切り替える。
  • この手動での重み調整に加え、AWS CodeDeployと連携すると、Canary(一定割合を流し一定時間後に残りを一括切替)・ Linear(一定間隔で均等に切替)といった設定済みパターンで自動化し、CloudWatchアラームと連動した自動ロールバックも組める。
各誤答が違う理由
  • Bエイリアスは最大2バージョンに重みを設定して振り分けられるため、クライアント側で乱数分岐ロジックを自前実装する必要はない。運用と一貫性の観点でも劣る。
  • C$LATESTは発行されたバージョンではなく常に可変であるため加重ルーティングの対象にできない。加重の対象は発行済みバージョンである。
  • D別関数への複製はバージョン管理の考え方から外れ、運用が複雑化する。Lambdaのエイリアス加重ルーティングという標準機能で完結できる要件に対し過剰な設計。
ひっかけ: 「エイリアスは1つのバージョンしか指せない(B)」という誤解に注意。エイリアスは最大2つのバージョンに重みを付けて割り当てられる点が カナリア/線形デプロイを実現する鍵である。
AIが作成し、独立した検証を経た解説です(有資格者による監修は経ていません)
この分野をもっと解いて、得点源に
Lambda開発 を含む問題を分野別に演習できます。
演習する →