Q10 — AWS SAP-C02 第2章

第 10/75 問 | ← 第2章

Q160. ある会社では、カスタムアプリケーションからユーザーが画像をアップロードできる機能を提供しています。このアップロード処理は、AWS Lambda関数を呼び出し、その関数が画像を処理してAmazon S3バケットに保存します。アプリケーションは、特定の関数バージョンのARNを用いてLambda関数を呼び出します。Lambda関数は、環境変数を用いて画像処理パラメータを受け取ります。同社では、最適な画像処理結果を得るために、Lambda関数の環境変数を頻繁に調整しています。異なるパラメータをテストし、検証が完了した後に、更新された環境変数を含む新しい関数バージョンを公開しています。この更新プロセスでは、アプリケーション側でも新しい関数バージョンのARNへの変更が必要となり、ユーザーに中断が発生しています。ソリューションアーキテクトは、ユーザーへの影響を最小限に抑えつつ、このプロセスを簡素化する必要があります。これらの要件を満たす、運用オーバーヘッドが最も少ない解決策はどれですか?

正解: D. Lambda関数のエイリアスを作成します。クライアントアプリケーションを変更し、関数エイリアスのARNを使用するようにします。テスト完了後に、エイリアスを新しい関数バージョンを指すように再設定します。

解説

Lambda関数のエイリアス(Alias)は、特定の関数バージョン(例:1, 2, $LATESTなど)を論理的な名前で参照できるようにする機能です。アプリケーションがエイリアス(例:PRODUCTION)のARNを呼び出すようにすれば、パラメータ変更や新バージョンのデプロイ時に、エイリアスを新しいバージョンに切り替えるだけで済み、アプリケーション側の変更や再デプロイは不要になります。これにより、ユーザーへの中断がなく、運用オーバーヘッドも最小限です。一方、選択肢Aは、公開済みバージョンの環境変数は変更できない(不変)ため無効です。選択肢Bは追加のサービス(DynamoDB)とコード変更を必要とし、オーバーヘッドが増加します。選択肢Cは、コード変更と再デプロイを伴い、バージョン管理やテストの柔軟性が低下します。したがって、最も適切なのは選択肢Dです。