DVA-C02:AWS Certified Developer - Associate デプロイ 問8
デプロイ/デプロイするアプリ成果物の準備Lambda 関数の依存関係が大きく、zip デプロイパッケージのサイズ上限を超えてしまいます。最も適切な対処はどれですか。
当サイトのオリジナル問題(DVA-C02:AWS Certified Developer - Associateの出題範囲「デプロイ」に対応。実際の試験問題ではありません)
- A必要な依存関係を無理に削って zip のサイズに収める
- BLambda を使うのを諦める
- C依存関係をすべて S3 から関数の実行時にダウンロードする
- DLambda のコンテナイメージ形式(最大 10 GB)でパッケージングしてデプロイする
正解:D
解説
Lambda の zip パッケージにはサイズ上限が複数あります。(1) Lambda の API・SDK・コンソールからの直接アップロードは圧縮時 50 MB まで(これを超える zip は S3 経由にします)、(2) 展開後(関数コード+レイヤーの合計)は 250 MB までです。依存関係が大きいと、この展開後 250 MB を超えて収まらないことがあります。Lambda はコンテナイメージ形式(非圧縮で最大 10 GB)でのパッケージングに対応しており、展開後 250 MB を超え 10 GB 以内に収まる大きな依存関係を含む関数は、コンテナイメージとしてデプロイするのが適切です。
下線の用語は 用語集 で意味を確認できます。
選択肢ごとの解説
- A誤り。必要な依存を無理に削るのは、機能を損なうおそれがあり根本的な解決になりません。
- B誤り。要件(大きな依存を持つ関数のデプロイ)を満たさず、Lambda を諦める必要はありません。
- C誤り。実行時に毎回ダウンロードするのは、コールドスタート遅延と信頼性の問題を招きます。
- D正しい。展開後 250 MB を超える依存関係でも、コンテナイメージ形式(非圧縮で最大 10 GB)でパッケージングすれば、Lambda 関数としてデプロイできます。