Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2025年8月から始まるAWS Lambda INITフェーズ課金/AWS Lambda IN...

2025年8月から始まるAWS Lambda INITフェーズ課金/AWS Lambda INIT phase billing changes

.zipファイルアーカイブのAWS Lambda関数をオンデマンド実行する場合、2025年8月からINITフェーズの時間も課金されるようになります。

解説ブログ

https://dev.classmethod.jp/articles/aws-lambda-zip-ondemand-init-billing-change/

AWS公式案内

https://aws.amazon.com/blogs/compute/aws-lambda-standardizes-billing-for-init-phase/

登壇イベント

Serverless Meetup Fukuoka #5
https://serverless.connpass.com/event/348712/

Avatar for quiver

quiver

May 09, 2025
Tweet

More Decks by quiver

Other Decks in Technology

Transcript

  1. ⾃⼰紹介 2 • 名前 ◦ George Yoshida • ブログ ◦

    https://dev.classmethod.jp/author/quiver/ • 部署 ◦ クラスメソッドクラウド事業本部 ソリューションアーキテクト • Serverless Meetup参加歴 ◦ おそらくServerlessConf London 2016以来
  2. 2025年8⽉からのZipオンデマンド実⾏の課⾦仕様変更 6 • 前提 ◦ Lambdaの実⾏はメモリスペックx時間で課⾦される(GB-Second) ※ • 変更内容 ◦

    Lambda関数の初期化(INITフェーズ)時間も課⾦対象となる • 影響を調査 ◦ CloudWatch Logs InsightsクエリでLambdaのログを調査 • 改善策 ◦ コールドスタート対策と同様 • 備考 ◦ プロダクション環境のLambda実⾏でINIT発⽣率は1%未満(AWS談) ※ リクエスト数などでも課⾦されます
  3. CloudWatch Logsのログ出⼒から新課⾦仕様を計算 12 Billed Duration =切り上げ(Duration) REPORT RequestId: xxxxx Duration:

    250.06 ms Billed Duration: 251 ms Memory Size: 1024 MB Max Memory Used: 350 MB Init Duration: 100.77 ms Billed Duration = 切り上げ(Duration + Init Duration) REPORT RequestId: xxxxx Duration: 250.06 ms Billed Duration: 351 ms Memory Size: 1024 MB Max Memory Used: 350 MB Init Duration: 100.77 ms 現在の仕様 新仕様
  4. CloudWatch Log Insightsクエリで探索的調査 13 • CloudWatch Log Insightsを使うと、CloudWatch Logsに対して探索的に 分析可能

    • 推測せずに実際のワークロードを元に計測するのが良い • 期間やLambda関数の粒度をフィルタ可能
  5. CloudWatch Log Insightsクエリ:Initフェーズ発⽣率 14 Initフェーズの発生率(Ratio)を次のクエリで確認 filter @type = "REPORT" |

    fields @message like /Init Duration/ as coldStart | stats count(*) as totalInvocation, sum(coldStart) as coldInvocation, coldInvocation/totalInvocation as Ratio • totalInvocation : 呼び出された回数 • coldInvocation : Initフェーズが発⽣した回数 • Ratio : Initフェーズの発⽣率(0.0〜1.0)
  6. CloudWatch Log Insightsクエリ:利⽤費の増加率 15 Lambda関数ごとに割当メモリは設定可能なため、呼び出し時のメモリサイズを考慮し てGB-secondを計算 filter @type = "REPORT"

    | stats sum((@memorySize/1000000/1024) * (@billedDuration/1000)) as oldBilledGBs, sum((@memorySize/1000000/1024) * (ceil(@duration + @initDuration)/1000)) as newBilledGBs, newBilledGBs/oldBilledGBs as billedRatio • oldBilledGBs : 旧仕様で課⾦されるINVOKEフェーズだけの GB-second • newBilledGBs : 新仕様で課⾦されるINITフェーズも含めたGB-second • billedRatio : 新仕様での課⾦額増加率
  7. CloudWatch Log Insightsクエリ:1クエリにまとめる 16 initの発生率と新旧の金額の違いを1クエリにまとめる filter @type = "REPORT" |

    fields @message like /Init Duration/ as coldStart | stats sum((@memorySize/1000000/1024) * (@billedDuration/1000)) as oldBilledGBs, sum((@memorySize/1000000/1024) * (ceil(@duration + @initDuration)/1000)) as newBilledGBs, newBilledGBs/oldBilledGBs as billedRatio, count(*) as totalInvocation, sum(coldStart) as coldInvocation, coldInvocation/totalInvocation as coldRatio
  8. 2025年8⽉からのZipオンデマンド実⾏の課⾦仕様変更 19 • 前提 ◦ Lambdaの実⾏はメモリスペックx時間で課⾦ • 変更内容 ◦ Lambda関数の初期化時間も課⾦対象

    • 影響を調査 ◦ CloudWatch Log Insightsクエリでログを調査 • 改善策 ◦ コールドスタート対策を参考にする • 備考 ◦ プロダクション環境で初期化の発⽣率は低い 解説ブログ https://dev.classmethod.jp/articles/aws-lambda-zip-ondemand-init-billing-change/