AWSは先ごろ、Lambdaファンクションが実行環境の存続期間中に保持される最大10GBのエフェメラルストレージをサポートするようになったと発表した。この機能は、メディア処理、機械学習の推論、財務分析などのデータワークロードを実行する顧客を支援する。
AWSのプリンシパルデベロッパアドボケイトである Channy Yun 氏は、今までの課題について次のように説明している:
データ集約型のアプリケーションの呼び出しでは固有の大量の一時データやキャッシュされた同じ実行環境ですべての呼び出しに高いパフォーマンスで再利用できるデータが必要です。(...) 顧客は、Lambda実行環境で大きなデータをローカルにキャッシュできないため、すべてのファンクション呼び出しは顧客にとって困難なスケールアウトによって並行して読み取る必要がありました。
Lambda実行環境は、呼び出し間のデータの一時キャッシュとして使用できるエフェメラル (一時的) な /tmp ファイルシステムを提供する。デフォルトでは、プラットフォームはファンクションの一時ディレクトリに 512MB を割り当てるが、最大 10GB にコンソール、CLI、または SDK を使用して増やすことができる。Swim の CTO である Simon Crosby 氏は、この利点について納得していないようだ:
ステートフルWebサービスを使用してストレージへの遅いラウンドトリップ時間を捨てるだけです! 別名「メモリはあなたの一時的なストア」。
出典: https://aws.amazon.com/blogs/aws/aws-lambda-now-supports-up-to-10-gb-ephemeral-storage/
AWSのプリンシパルデベロッパアドボケイトである James Beswick 氏がカバーしているように、Lambda は他に3つのデータストレージオプションをサポートしている: S3、Lambda レイヤ、Elastic File System (EFS)。Jamf software のテックリードである Bryson Tyrrell 氏は、次のような質問をした:
Lambdaファンクションの 10GB のユースケースは何ですか? これは AI/ML を対象としていますか?
Tyrrell 氏は、ビデオのトランスコーディングから AI/ML ワークロードまで、既存アプリケーションのリフト・アンド・シフトからAWSでの収益の増加まで、多くの提案を受けた。Caylent のクラウド戦略およびソリューション担当副社長である Randall Hunt 氏は、AWS でサーバレスファンクションとコンテナを実行するコストを比較している:
AWS Lambda は、最大 10GB のデプロイサイズ、10GB RAM (6vCPU)、10GB の /tmp、15分のランタイムで構成できるようになりました。したがって、最も高価な呼び出しごとの Lambda コストは最終的に 約 0.13 ドルまでになります。スポットではない Fargate (4vCPU) では、同じタスクで 0.07 ドルまでです。価値があるだろうか? 完全にワークロードに依存するでしょう。
PostNL のリードエンジニアである Luc van Donkersgoed 氏は、代わりに一時的ストレージのコストに焦点を当てている:
一時的ストレージの価格設定について、いくつか計算しましたが、私は言わなければなりません。これはとても、とてもリーズナブルです。極端 (512MB メモリ、10GB ストレージ) な場合、ストレージは実行コストの 3.73% です。メモリとストレージが等しい値で構成されている場合、ストレージのコストはわずか 0.19% です。
デベロッパは、AWS Lambda が利用可能なすべての AWS リージョンでエフェメラルストレージのサイズを設定でき、ファンクションの実行中に 512MB の無料制限を超えるストレージに対して課金される。