Lambda 関数のエフェメラルストレージを設定する - AWS Lambda

Lambda 関数のエフェメラルストレージを設定する

Lambda は、 /tmp ディレクトリ内の関数にエフェメラルストレージを提供します。このストレージは一時的なものであり、各実行環境に固有のものです。エフェメラルストレージ設定で、関数に割り当てられるエフェメラルストレージの容量を変更できます。エフェメラルストレージの容量は、512 MB から 10,240 MB まで、1-MB 単位で設定できます。/tmp に保存されているすべてのデータは、AWS によって管理されるキーを使用して保管時に暗号化されます。

このページでは、一般的なユースケースと、Lambda 関数のエフェメラルストレージを更新する方法について説明します。

エフェメラルストレージを増やす一般的なユースケース

エフェメラルストレージを増やすことでメリットを得られる一般的なユースケースを以下に示します。

  • 抽出/変換ロード (ETL) ジョブ: コードが中間計算を実行するか、他のリソースをダウンロードして処理を完了すると、エフェメラルストレージが増加します。一時スペースが多いほど、Lambda 関数でより複雑な ETL ジョブを実行できます。

  • 機械学習 (ML) 推論: 多くの推論タスクは、ライブラリやモデルを含む大規模なリファレンスデータファイルに依存しています。エフェメラルストレージを使用すると、Amazon Simple Storage Service (Amazon S3) から /tmp により大きなモデルをダウンロードして、処理に使用できます。

  • データ処理: Amazon S3S3 からオブジェクトをダウンロードするワークロードの場合、/tmp領域を増やすと、インメモリ処理を考慮せずに大きなオブジェクトを処理できます。PDF を作成したり、メディアを処理したりするワークロードも、より一時的なストレージの恩恵を受けます。

  • グラフィック処理: 画像処理は Lambda ベースのアプリケーションの一般的なユースケースです。大きな TIFF ファイルまたは衛星画像を処理するワークロードの場合、エフェメラルストレージを使用すると、ライブラリの使用と Lambda での計算の実行が容易になります。

エフェメラルストレージの設定 (コンソール)

Lambda コンソールでエフェメラルストレージを設定できます。

関数のエフェメラルストレージを変更するには
  1. Lambda コンソールの [関数ページ] を開きます。

  2. 関数を選択します。

  3. [設定] を選択してから、[一般設定] を選択します。

    Lambda コンソールで、[設定] タブを選択します。
  4. [全般設定] で、[編集] を選択します。

  5. エフェメラルストレージ の場合、512 MB から 10,240 MB までの値を 1-MB 単位で設定します。

  6. [Save] を選択します。

エフェメラルストレージの設定 (AWS CLI)

update-function-configuration コマンドを使用して、エフェメラルストレージを設定できます。

aws lambda update-function-configuration \ --function-name my-function \ --ephemeral-storage '{"Size": 1024}'

エフェメラルストレージの設定 (AWS SAM)

AWS Serverless Application Model を使用して、関数のエフェメラルストレージを設定できます。template.yaml ファイル内の EphemeralStorage プロパティを更新し、sam deploy を実行します。

例 template.yaml
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: An AWS Serverless Application Model template describing your function. Resources: my-function: Type: AWS::Serverless::Function Properties: CodeUri: . Description: '' MemorySize: 128 Timeout: 120 Handler: index.handler Runtime: nodejs20.x Architectures: - x86_64 EphemeralStorage: Size: 10240 # Other function properties...