Q21 — AWS DVA-C02 第3章

第 21/100 問 | ← 第3章

開発者がサーバーレスアプリケーションを設計しており、2つのAWS Lambda関数を用いて画像を処理します。1つ目のLambda関数はオブジェクトをAmazon S3バケットに保存し、関連するメタデータをAmazon DynamoDBテーブルに保存します。もう1つのLambda関数はDynamoDBテーブル内のメタデータを用いてS3バケットからオブジェクトを取得します。両方のLambda関数は複雑な計算を実行する同じPythonライブラリを使用しており、圧縮デプロイパッケージの最大サイズ制限に近づいています。開発者は、Lambdaデプロイパッケージのサイズを最小限に抑えつつ、運用上のオーバーヘッドを最も小さくするにはどうすればよいですか?

正解: B. 必要なPythonライブラリを用いてLambdaレイヤーを作成します。2つのLambda関数の両方でこのLambdaレイヤーを使用します。

解説

正解はBです。2つのLambda関数が同一のPythonライブラリを使用し、かつデプロイパッケージの最大サイズに近づいている場合、共通ライブラリをLambdaレイヤーとして抽出することで、各関数が重複してライブラリを含むことを回避できます。これにより、各関数のデプロイパッケージサイズが削減され、運用上のオーバーヘッドも最小限に抑えられます。選択肢Aはデプロイの複雑性と管理コストを増加させます。選択肢Cは関数の論理を複雑化し、保守性・拡張性を損ないます。選択肢Dは実行時の遅延と複雑性を増加させます。よって、Bが最適解です。