Amazon Web Services ブログ
AWS Lambda で最大 10 GB のエフェメラルストレージをサポート可能に
サーバーレスアプリケーションはイベント駆動型で、ウェブ API、モバイルバックエンド、ストリーミング分析から機械学習 (ML) や高性能アプリケーションのデータ処理段階まで、エフェメラルなコンピューティング関数を使用します。AWS Lambda には、コード用に 512 MB の一時ファイルシステム (/tmp
) が含まれていますが、これは Amazon Elastic File System (Amazon EFS) などの耐久性のあるストレージ向けではない一時的なスクラッチリソースです。
しかし、抽出、変換、ロード (ETL) ジョブのほか、PDF ファイルの作成やメディアトランスコーディングなどのコンテンツ生成ワークフローでは、大量のデータを迅速に処理するために、高速でスケーラブルなローカルストレージが必要です。データ集約型のアプリケーションでは、呼び出しに固有の大量の一時データ、または同じ実行環境内のすべての呼び出しで高いパフォーマンスを発揮して再利用できるキャッシュデータが必要です。従来の 512 MB という制限では、Amazon S3 からダウンロードされた大きなオブジェクトを処理するためだけに、Amazon Simple Storage Service (Amazon S3) と Amazon EFS からデータを選択的に読み込むか、割り当てられた関数メモリを増やす必要があったため、コストの増加につながっていました。Lambda 実行環境では大きなデータをローカルにキャッシュできないため、関数の呼び出しごとにデータを並行して読み取る必要があり、お客様にとってスケールアウトが難しくなっていました。
2022 年 3 月 24 日(米国時間)、AWS Lambda で 512 MB~10,240 MB のエフェメラルストレージ (/tmp
) を設定できるようになったことをお知らせします。データの読み取りまたは書き込みの際に関数が取得するエフェメラルストレージの量を制御できるようになり、ETL ジョブ、ML 推論、またはその他のデータ集約型のワークロードに AWS Lambda を利用できるようになりました。
AWS Lambda のエフェメラルストレージの増加により、最大 10 GB の安全で低レイテンシーのエフェメラルファイルシステムにアクセスできるようになりました。512 MB までは引き続き無料で利用することができ、呼び出し期間中に無料分の上限を超えて設定したストレージ容量に対して課金されます。
Lambda 関数用により大きなエフェメラルストレージを設定可能に
Lambda 関数により大きなエフェメラルストレージを設定するには、AWS Lambda コンソールの [一般設定] セクションにある [設定] タブを選択します。エフェメラルストレージの設定がデフォルトで 512 MB になっていることが確認できます。
[編集] ボタンをクリックすると、Lambda 関数のエフェメラルストレージを 512 MB から 10,240 MB の範囲で 1 MB 刻みで設定することができます。
AWS コマンドラインインターフェイス (AWS CLI) では、update-function-configuration
コマンドを使用して、エフェメラルストレージの希望のサイズを更新することができます。
$ aws lambda update-function-configuration --function-name PDFGenerator \
--ephemeral-storage '{"Size": 10240}'
AWS SDK および AWS CloudFormation を介して、Lambda API を使用してエフェメラルストレージを設定することができます。詳細については、AWS ドキュメントの関数オプションの設定に関する記事を参照してください。
総括として、AWS Lambda は包括的なストレージオプションを提供しています。詳細については、同僚の James Beswick 氏が執筆した素晴らしいブログ記事「Choosing between AWS Lambda data storage options in web apps」をご覧ください。この表を引用して、これらのオプションと一般的なユースケースの違いをご紹介します。独自のアプリケーションに適したオプションを選択できるようお役立てください。
機能 | エフェメラルストレージ (/tmp) | Lambda Layers | Amazon EFS | Amazon S3 |
最大サイズ | 10,240 MB | 50 MB (直接アップロード) | 調整可能 | 調整可能 |
永続性 | エフェメラル | 耐久性 | 耐久性 | 耐久性 |
コンテンツ | 動的 | 静的 | 動的 | 動的 |
ストレージタイプ | ファイルシステム | アーカイブ | ファイルシステム | オブジェクト |
Lambda イベントソース統合 | 該当なし | 該当なし | 該当なし | ネイティブ |
サポート対象のオペレーション | 任意のファイルシステムオペレーション | イミュータブル | 任意のファイルシステムオペレーション | バージョニングによるアトミック |
オブジェクトのタグ付けとメタデータ |
なし | なし | なし | あり |
料金体系モデル | Lambda に内包 (512MB 以上で請求) |
Lambda に内包 | ストレージ + データ転送 + スループット | ストレージ + リクエスト + データ転送 |
すべての呼び出しで共有 | なし | あり | あり | あり |
共有/許可モデル | 関数のみ | IAM | IAM + NFS | IAM |
AWS Glue と Amazon Quicksight のソース |
なし | なし | なし | あり |
Lambda の相対的なデータアクセス速度 | 最速 | 最速 | 非常に速い | 速い |
今すぐ利用可能
AWS Lambda が提供されているすべてのリージョンで、Lambda 関数インスタンスごとに最大 10 GB のエフェメラルストレージを設定できるようになりました。10 GB のコンテナーイメージのサポート、10 GB の関数メモリ、10 GB のエフェメラル関数ストレージにより、大きな一時ファイル、データおよびメディア処理、機械学習推論、財務分析などのワークロードをサポートできます。
Datadog、HashiCorp (Terraform)、Lumigo、Thundra、Slalom、Contino など、多くの AWS Lambda パートナーを通じたサポートもご利用いただけます。
この機能では、関数の呼び出し期間中に 512 MB の無料分の上限を超えて設定したストレージに対して課金されます。詳細については、AWS Lambda の製品および料金体系ページを参照してください。また、AWS Lambda 用 AWS re:Post もしくは通常の AWS Support の担当者を通じて、フィードバックをお寄せください。
– Channy
更新情報。一般的なユースケースを学び、Lambda のエフェメラルストレージでビデオファイルのサイズを変更するサンプルアプリケーションをデプロイするには、AWS コンピューティングブログの「Using larger ephemeral storage for AWS Lambda 」を参照してください。
原文はこちらです。