DVA-C02:AWS Certified Developer - Associate AWS サービスを用いた開発 問10
AWS サービスを用いた開発/AWS Lambda のコード開発複数の Lambda 関数で共通のライブラリを使い回し、各関数のデプロイパッケージを小さく保ちたいと考えています。最も適切なのはどれですか。
当サイトのオリジナル問題(DVA-C02:AWS Certified Developer - Associateの出題範囲「AWS サービスを用いた開発」に対応。実際の試験問題ではありません)
- A各関数の zip に毎回同じライブラリを同梱する
- BLambda レイヤーに共通ライブラリをまとめ、複数の関数から共有して参照する
- Cライブラリを S3 から関数の起動のたびにダウンロードする
- D共通化せず、関数ごとにライブラリを個別実装する
正解:B
解説
Lambda レイヤーは、共通のライブラリや依存関係を 1 つのレイヤーにまとめ、複数の関数から共有して参照できる仕組みです。各関数のデプロイパッケージからライブラリを分離できるため、パッケージを小さく保ち、共通部分の更新も一元化できます。
選択肢ごとの解説
- A誤り。各 zip に同じライブラリを同梱すると、パッケージが肥大化し、更新のたびに全関数を作り直す必要があります。
- B正しい。Lambda レイヤーに共通ライブラリをまとめれば、複数関数で共有でき、各パッケージを小さく保てます。
- C誤り。起動のたびに S3 からダウンロードするのは、コールドスタートの遅延や複雑さを増やします。
- D誤り。共通化しない個別実装は、重複と保守負担を増やします。