目次
- はじめに
- ゴール
- 料金計算方法
はじめに
個人的にLambdaは太っ腹なサービスだと思ってます。
- サーバーのプロビジョニングなしにコードの実行が可能
- 課金はコードが実行されたときのみ発生
- マネージドサービスで勝手にスケーリング
※実行時間が900秒最大で、かつ1秒あたりの同時実行数の制限という制限には注意です。 - 月100万リクエストは無料(すごい)
- 1 か月あたり 400,000 GB 秒無料(よくわからないけどすごい)
ただ、Lambdaコスト算出にあたり「1 か月あたり 400,000 GB 秒無料」がよくわからなかったので、良い機会だと思って整理することにしました。
ゴール
- Lambdaのコスト見積ができるようになる
Lambda料金の求め方
結論:公式が出しているAWS Lambda Pricing Calculatorがすべてを解決する
赤枠の必要箇所を入力するだけで、勝手にLambda月間コストを計算してくれます。
ちなみに私がこの存在を知ったのは、Lambdaコスト見積が終わった後でした。
なぜ数時間前に君に出会えなかったのか・・・
ただ、これでは1 か月あたり 400,000 GB 秒無料が謎のままなので、公式ドキュメントに基づいて手動で計算していこうと思います。
Lambdaのコスト見積において公式ドキュメントによると、主に以下2点を考慮する必要があるようです。
※Lambdaが他のサービスを利用する場合は、以下に加えて追加料金がかかります。
リクエスト料金
無料利用枠: 1 か月あたり 100 万件のリクエスト、1 か月あたり 400,000 GB 秒のコンピューティング時間
その後は 0.20 USD/1,000,000 件のリクエスト(0.0000002 USD/リクエスト)
期間料金
1 か月あたり 400,000 GB 秒無料、最大 320 万秒のコンピューティング時間
その後の使用には 0.00001667 USD/GB 秒
では早速、月間コストを計算していきます。
今回はLambdaを以下のように設定してみました。
- 月あたりの実行数:1,500,000
- メモリ割り当て:512MB
- 実行時間:3秒
※実行時間については、設定というよりもログを見て判断した次第です。
リクエスト料金の算出
1 か月あたり 100 万件のリクエストが無料なので課金対象のリクエストは500,000回になります。
1,000,000回リクエストあたり0.20 USDなので、リクエスト料金は0.10 USDになります。
期間料金の算出
まず「1 か月あたり 400,000 GB 秒無料」で言われているGB秒/月を明確にします。
参考にしたのがAmazon Lambdaの料金で、要するにGB秒/月は1か月間で関数に割り当てたメモリと実行時間の積の合計です。
つまり期間料金算出のアプローチは以下のようになります。
①GB秒/月を計算
②上記と無料枠の差分を計算し、課金対象となるGB秒を算出
③課金対象となるGB秒に0.00001667 USD/GB 秒を掛け合わせる
GB秒/月
1,500,000(月あたりの実行数)*3(実行時間)*512/1024=2,250,000 GB秒
課金対象GB秒
2,250,000 GB秒-400,000 GB秒=1,850,000 GB秒
期間料金
1,850,000 GB秒*0.00001667=30.8395
このLambdaにおいては、1か月あたりの期間料金は30.8395 USDとなりました。
ここまでで必要な情報はそろったので後はリクエスト料金と期間料金を合計します。
- リクエスト料金:0.10 USD
- 期間料金:30.8395 USD
合計:30.9395 USD
ちなみに、AWS Lambda Pricing Calculatorでも同じ結果でした。
以上、Lambdaの月間コスト算出でした。