勉強前イメージ
並列数を上げる?
調査
Provisioned Concurrency とは
2019年に発表された機能で、
初期化処理が完了したlambdaの環境をプロビジョニングしておくことが出来ます。
要するにすぐに使えるようなlambdaの環境を用意しておくことができる、ということです。
lambdaのコールドスタート(HWが初期化された状態の再起動)対策として他にも方法が取られていましたが、
この機能で簡単に対策を行うことが出来ます。
lambdaでリクエストが大量に来たとき、
同時実行数に関わらず、バースト制限までしか最初の段階は増えないのです。
例えば同時実行数が3000で、バースト制限が1000だとしたら
一気にアクセス来た際は1000までしか最初は増えないということです。
その後の同時実行数はすぐには増えず1分間に500ずつ増えていきます。
その際の一定量環境を用意しておくという対策が、Provisioned Concurrencyになります。
費用
Provisioned Concurrency には費用がかかり、
東京リージョンの場合には以下になります。
- Provisioned Concurrencyの有効時間
- 1GBの環境で、1秒あたり 0.0000053835USD
- リクエスト
- 100万件あたり 0.20USD
- 実行時間
- 1GBの環境で、1秒あたり 0.0000125615USD
例で計算してみると
1GBの環境でProvisioned Concurrencyを2時間有効にし、
用意した同時実行数は1000とする。
リクエストを100万回実行し、1リクエスト1秒間の稼働するとする。
- Provisioned Concurrencyの有効時間
- 1GBの環境で、1秒あたり 0.0000053835USD
- 2時間→7200秒
- 同時実行の合計容量(GB/s) : 1000(同時実行数)*7200(秒) = 7200000GB/s
- 7200000(GB/s) * 0.0000053835(USD) = 38.7612(USD)
- リクエスト
- リクエスト量 : 100万回
- 100万件あたり 0.20USD
- 0.20(USD)
- 実行時間
- 1GBの環境で、1秒あたり 0.0000125615USD
- 実行時間の合計 1000000(リクエスト) * 1(1リクエストの稼働時間) = 1000000秒
- 1000000(秒) * 0.0000125615(USD) = 12.5615(USD)
- 合計
- 38.7612(USD) + 0.20(USD) + 12.5615(USD) = 51.5227(USD)
- 1ドル110円だとすると、 51.5227(USD) * 110 = 5,667.497(円)
- 約5670円ほどになる
勉強後イメージ
バーストのリクエストの際は、それに応じるのが時間かかるから
ある程度環境を準備しておくってことか・・・