無限ノック › DVA 練習問題一覧 › 問題
DVAデプロイ

開発チームがPythonで作成したデータ分析アプリケーションをAWS Lambdaでサーバーレス実行したいと考えています。このアプリケーションはPyTorchなどの機械学習ライブラリを使用しており、依存ライブラリを含めた合計サイズは3GBを超えます。Lambda関数としてデプロイするための最も適切なアプローチはどれですか?

A
アプリケーションと依存ライブラリをZIPファイルに圧縮してAmazon S3にアップロードし、Lambda関数のデプロイメントパッケージとして登録する
S3経由のZIPデプロイメントパッケージは展開後250MBの上限があります。依存ライブラリを含めて3GBを超えるアプリケーションにはこの方法では対応できません。
B
PyTorchなどの大型ライブラリを複数のLambdaレイヤーに分割し、各レイヤーのサイズを制限以下に抑えて関数にアタッチする
Lambdaレイヤーは最大5つまでアタッチ可能ですが、関数本体とすべてのレイヤーを合算した展開後の合計サイズ上限は250MBです。3GBを超えるライブラリを含むアプリケーションのデプロイには使用できません。
C
アプリケーションをDockerコンテナイメージとしてビルドしてAmazon ECRにプッシュし、コンテナイメージタイプのLambda関数としてデプロイする
✓ 正解
LambdaのコンテナイメージサポートではAmazon ECRに保存した最大10GBのDockerイメージを使って関数をデプロイでき、PyTorchなどの大型ライブラリを含む3GB超のアプリケーションに対応できます。
D
アプリケーションをAWS Fargateにデプロイし、LambdaはFargateタスクのトリガーのみを担当するアーキテクチャに再設計する
Fargateへのデプロイ変更は、Lambdaでサーバーレス実行するという要件に合いません。コンテナイメージ対応Lambdaを活用すれば、アーキテクチャを根本から変更せずに要件を満たすことができます。

解説

Lambdaはコンテナイメージをデプロイメントパッケージとしてサポートしており、Amazon ECRに保存したDockerイメージを使って関数を作成できます。コンテナイメージのサイズ上限は10GBで、PyTorchなどの大型ライブラリを含む3GB超のアプリケーションにも対応可能です。 デプロイ手順: ①Lambda Runtime Interface Client(RIC)を含むDockerfileを作成する ②`docker build`でイメージをビルドする ③Amazon ECRにイメージをプッシュする ④ECRのイメージURIを指定してLambda関数を作成する(パッケージタイプ: Image) コンテナイメージを使う場合もLambdaのイベント駆動・タイムアウト・メモリ設定などの実行モデルは通常の関数と同じです。 選択肢AのZIPデプロイは、S3経由でも展開後のサイズ上限が250MBであり、3GB超の依存ライブラリを含むアプリケーションには対応できません。 選択肢BのLambdaレイヤーは最大5つまでアタッチ可能ですが、関数本体とすべてのレイヤーを合わせた展開後の合計サイズ上限は250MBであり、3GBを超えるケースには対応できません。 選択肢DのFargate連携アーキテクチャは技術的には実現可能ですが、Lambdaでサーバーレス実行するという要件に反し、コンテナイメージ対応Lambdaで解決できる問題に対して不要な複雑さを加えます。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← DVA の問題一覧に戻る