Open1
AWS Summit 2022 memo
AWS Lambda Performance Tuning Deep Dive〜本当に知りたいのは”ここ”だった 〜(AWS-46)
同時実行数モニタリング
- 同時実行数を確認する場合に、
Concurrent executions
CloudWatchMetricsで確認すると分解能の最小単位が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の取得処理をグローバールスコープに移動するとで対処ができる。