Lambda関数のReserved Concurrencyは100である。CloudWatchで当該関数の同時実行数を監視する。
1分間の最大同時実行数が80以上になった段階で、上限への接近をSNSへ通知したい。拒否発生後の通知だけでは要件を満たさない。
最も適切なメトリクス・統計値・しきい値はどれか。
ConcurrentExecutionsの1分間のMaximumを80以上でアラームにし、Reserved Concurrency 100への接近をSNSへ通知する。
詳細解説
拒否済みの呼び出し件数を検知するアラームであり、上限に近づいた時点を知らせる指標にはならない。
実行時間の長さを測る値で、同時実行数80という条件を表さない。
期間内の呼び出し件数であり、同時に処理中の実行数ではない。短時間に完了する80回と80並列を区別できない。
処理中の同時実行数を直接測定する。上限100より低い80をしきい値にすると、拒否が起きる前の接近を監視できる。
公式資料で確認する
以下の項目を公式資料の記述と照合して確認します。
リンク先のConcurrency metricsとThrottles、Reserved Concurrencyの役割を比較する。
参考にした公式資料
確認できる内容
ConcurrentExecutionsは処理中の数、Throttlesは拒否済み件数である。80/100の事前警告と拒否検知を区別できる。
理解のポイント
- ConcurrentExecutions
- Reserved Concurrency
- Throttles
確認時の注意
- 確認環境: AWS公式SOA-C03試験ガイドとAWS公式ドキュメントの確認
- AWS公式SOA-C03試験ガイドと各サービスの公式ドキュメントを確認する。
基礎のおさらい
上限への接近と拒否を分ける
Reserved Concurrencyは関数の同時実行枠を確保すると同時に、その関数の上限を設定する。ConcurrentExecutionsは処理中の数、Throttlesは拒否済み件数である。事前警告には関数単位のMaximumを上限より低い値で評価する。
警告は拒否ゼロの保証ではない
期間内のInvocationsが多くても、短い処理なら同時実行数は少ない場合がある。今回の80/100は運用上の余裕を示すしきい値で、メトリクス反映・通知の間に急増すればスロットルは起こり得る。拒否検知も別途監視して対応する。