1
0

More than 3 years have passed since last update.

LambdaのProvisioned Concurrency とは

Posted at

勉強前イメージ

並列数を上げる?

調査

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円ほどになる

勉強後イメージ

バーストのリクエストの際は、それに応じるのが時間かかるから
ある程度環境を準備しておくってことか・・・

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0