0
0

AWS Lambda - Provisioned Concurrency設定時の振る舞い

Posted at

AWS LambdaにProvisioned Concurrencyを設定した際、不可解な現象に遭遇したため、原因を調査した。

発生した現象

Provisioned Concurrencyを設定したLambda関数について、同時実行がないにも関わらず下記のような Init Duration を含むログが出力され、コールドスタートが発生してしているように見える。さらに Init Duration の数値がOn-Demand Concurrencyの場合に比べて大幅に増加している。

REPORT RequestId: xxxx	Duration: xx ms	Billed Duration: xx ms	Memory Size: xx MB	Max Memory Used: xx MB	Init Duration: xx ms

解析結果

  • 結論としては、ログに Init Duration が出力されているが、実際にはコールドスタートは発生していない。
  • Provisioned Concurrencyを設定した場合も定期的にインスタンスの破棄・再構築が行われる。設定したConcurrency数を常に維持するように、インスタンスの破棄・再構築はLambda関数実行とは非同期に実行されるが、再構築直後の関数実行時のREPORTログに再構築時のInit処理時間が Init Duration として記録される。
  • On-Demand ConcurrencyではInit処理にCPU burstが適用されるが、Provisioned Concurrencyでは適用されない。このためInit処理時間が長くなる。

参考

0
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
0
0