Q12 — AWS DVA-C02 第1章

第 12/100 問 | ← 第1章

ある会社が、Amazon API Gateway APIから受信した入力要求を処理するAWS Lambda関数を保有しています。APIはLambdaエイリアスを使用してLambda関数を呼び出しています。開発者は、入力要求に関連するより詳細な情報を処理するためにLambda関数のコードを更新しました。開発者は、他の開発者がテストできるよう新しいLambda関数をデプロイしたいと考えており、APIを利用する顧客に影響を与えないようにしたいです。この要件を最小限の運用コストで満たす解決策はどれですか?

正解: A. Lambda関数の新バージョンを作成する。API Gateway上で新しいステージを作成し、そのステージを新しいLambdaバージョンと統合する。新しいAPI Gatewayステージを使用してLambda関数をテストする。

解説

A. Lambda関数の新バージョンを作成し、API Gateway上で新しいステージを作成してそれを新しいLambdaバージョンと統合する。新しいAPI Gatewayステージを使ってLambda関数をテストする。 この方法では、新しいLambda関数バージョンを作成し、API Gateway上で新しいデプロイステージを作成します。これにより、新しいステージ経由で新バージョンをテストでき、本番ステージの顧客には影響を与えません。 運用コストは低く、API Gateway上で新しいデプロイステージを作成し、新バージョンと統合するだけで済みます。 B. API Gatewayで使用されている既存のLambdaエイリアスを加重エイリアスに更新し、新しいLambdaバージョンを追加のLambda関数として重み10%で追加する。既存のAPI Gatewayステージを使用してテストする。 この方法では、既存のLambdaエイリアスを加重エイリアスに更新し、新バージョンを少量のトラフィックで導入できます。ただし、重み調整には注意深いモニタリングが必要であり、本番環境への影響リスクがあります。 C. Lambda関数の新バージョンを作成し、API Gatewayからの入力要求をフィルタリングする第2のLambda関数を作成・デプロイする。フィルタリングLambda関数がテスト要求を検出すると新しいLambdaバージョンを呼び出し、それ以外の場合は古いLambdaバージョンを呼び出す。API Gateway APIをフィルタリングLambda関数を使用するよう更新する。 この方法では、新旧バージョンの振り分けを担う追加のフィルタリングLambda関数を導入するため、システムの複雑性と管理コストが増加し、最小運用コストという要件を満たしません。 D. Lambda関数の新バージョンを作成し、テスト目的で新しいAPI Gateway APIを作成する。新しいAPIを新しいLambdaバージョンと統合する。新しいAPIを使用してテストする。 この方法では、テスト専用の新しいAPIをAPI Gateway上で作成します。これによりテストトラフィックを分離できますが、テスト用と本番用の2つのAPIを管理・維持する必要があり、運用コストが高くなります。 結論: 上記の分析から、選択肢Aが最も適した解決策です。Lambda関数の新バージョンとAPI Gatewayの新しいデプロイステージを作成することで、開発者は新バージョンを安全にテストでき、既存の本番環境および顧客に影響を与えません。この方法は操作が単純で運用コストが低く、機能テストを効果的に行えます。