目次
はじめに
AWS Lambdaのアップデートにより、エフェメラル(一時的)ストレージが10GBまで利用可能になりました。
公式ページはこちら↓になります。
AWS Lambda で Lambda 関数用に最大 10 GB のエフェメラルストレージの設定が可能に
これまでは512MBまで利用可能でしたが、今回のアップデートにより、大量のキャッシュデータや中間ファイルを処理できるようになります。
大量データの処理にS3やEFSを中継することなく、必要以上にLambdaのメモリを増やすことがなくなるため、コストの削減につながりそうです。
ここではエフェメラルストレージの設定と確認、および、料金やモニタリングについて紹介します。
実際にやってみた
エフェメラルストレージはAWS Lambda コンソール、AWS CLI、CloudFormationなどから設定が可能です。
それぞれの方法で実際にストレージを10GBに変更して確認を行います。
手順
- Lambda関数の作成
- エフェメラルストレージの設定
- ストレージ変更の確認
AWS Lambda コンソール
Lambda関数の作成
適当なLambda関数を作成します。
エフェメラルストレージの設定
[設定]タブの[一般設定] - [編集]を押下します。エフェメラルストレージを10GB(10240MB)に変更して、[保存]を押下します。
ストレージ変更の確認
下記のソースコードをLambdaにDeployして空JSONイベントで実行してみます。
import subprocess from subprocess import PIPE def lambda_handler(event, context): result = subprocess.run(‘df -h‘, shell=True, stdout=PIPE, stderr=PIPE, text=True) print(result.stdout)
実行結果は下記の通りです。
表記上、11GBとなっていますが、「/tmp」にマウントされているエフェメラルストレージの拡張に成功しています。
AWS CLI
下記コマンドにてエフェメラルストレージの変更ができます。
例) 10GBにエフェメラルストレージを変更する場合
aws lambda update-function-configuration\ --function-name functionName\ --ephemeral-storage ‘{“Size“: 10240}‘
Lambda関数の作成
適当なLambda関数を作成します。
エフェメラルストレージはデフォルト値(512MB)です。
エフェメラルストレージの設定
コマンドを実行します。
ストレージ変更の確認
コンソール上で確認すると10240MB(10GB)に変更されています。
CloudFormation
Lambda関数の作成と、エフェメラルストレージの設定
下記のCloudFormationテンプレートを展開します。
ストレージサイズは「EphemeralStorage」のSize値にて設定が可能です。(デフォルトは512)
参考:AWS CloudFormation - ユーザーガイド (LambdaFunction)
AWSTemplateFormatVersion: 2010-09-09 Description: Lambda function with cfn-response. Resources: ephemeralStorageLambdaCfn: Type: AWS::Lambda::Function Properties: Handler: “lambda_function.lambda_handler“ Code: S3Bucket: “xxxxxxxxxxxx-bucket“ S3Key: “xxxxxxxxxxxx.zip“ EphemeralStorage: Size: 10240 FunctionName: “ephemeral_storage_lambda_cfn“ Role: “arn:aws:iam::xxxxxxxxxxxx:role/service-role/ephemeral_storage_lambda-cfn-role-xxxxxxxx“ Runtime: “python3.9“
ストレージ設定の確認
コンソール上で確認すると10240MB(10GB)に設定されています。
料金について
従来通り、512MBのストレージ量にコストはかかりませんが、512MBを超える追加ストレージについて料金が発生します。
Lambda エフェメラルストレージの料金
リージョン | 1GB x 1秒 単価 |
---|---|
東京 | 0.000000037USD |
大阪 | 0.000000037USD |
バージニア北部 | 0.0000000309USD |
また、AWSが提供している料金計算ツールを使用することで料金の目安が分かります。
AWS Pricing Calculator
モニタリングについて
エフェメラルストレージの使用容量をモニタリングできます。
Lambda関数の拡張モニタリング(Lambda Insights)を有効にすることでモニタリングが可能になります。
[編集]を押下して…
[拡張モニタリング]をONに変更して[保存]を押下
tmp_usedで使用容量がメトリクスにて取得可能、モニタリングできるようになります。
参考:Lambda Insights によって収集されたメトリクス
また、CloudWatchアラームと連携して、使用容量の閾値を超えたらアラームを発報することもできます。
まとめ
- AWS Lambdaのエフェメラル(一時的)ストレージが上限10GBにアップデートされました。
- 512MBを超える追加ストレージに対して料金が発生します。
- ストレージの使用容量をモニタリングできます。
投稿者プロフィール
-
2021年4月からスカイアーチに中途入社しました。
AWSともっと仲良くなるべく日々勉強中です。