Open1

AWS Summit 2022 memo

dehio3dehio3

AWS Lambda Performance Tuning Deep Dive〜本当に知りたいのは”ここ”だった 〜(AWS-46)

https://summits-japan.virtual.awsevents.com/media/AWS Lambda Performance Tuning Deep Dive〜本当に知りたいのは”ここ”だった 〜(AWS-46)/1_tqba3c8f

同時実行数モニタリング

  • 同時実行数を確認する場合に、Concurrent executionsCloudWatchMetricsで確認すると分解能の最小単位が1分になる。(CustomMetoricsだと1秒単位の分解能)1分より分解能で分析したい場合はCloudWatchLogsInsightsでログデータを参照することで分析が可能。
fields @timestamp, @message
| filter @duration > 0
| stats pct(@duration,99.5) as duration, count(*) as count, 
   (count(*) * pct(@duration,99.5)/1000.0) as concurrency by bin(1s)
| sort concurrency desc

Lambdaの実装プラクティス

揮発性(Ephemeral)を意識

  • Lambdaサービスのトラフィックルーティングとして、イベントが終了するまで次のイベントは受け付けないが、実行環境は次のイベントにて再利用されるという特定を意識する。
  • Lambdaの実装にて外部AWSリソースを利用する場合に、利用するサービス側でのQuota制限の影響で、Lambda側の処理がThrottlingするパターンがある。
    • Secrets ManagerのQuotaは5000rps(緩和不可)なので、関数にてSecrets Managerを取得する場合に、関数の同時実行数の制限より前に、Secrets Manager側にて制限に達してしまう。Secrets Managerの取得処理をグローバールスコープに移動するとで対処ができる。