[アップデート]Lambdaの同時実行数がよりきめ細かく確認できるようになりました

Lambdaの同時実行数メトリクスがよりきめ細かく確認できるようになりました。関数単位/バージョン単位/エイリアス単位/エイリアス×バージョン単位 で確認できます。
2020.02.20

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Lambdaの同時実行数メトリクスがよりきめ細かく確認できるようになりました!

Lambdaの同時実行数について

Lambda関数の同時実行数は、アカウント単位で制限があります。アカウント単位ですので、その下に関数が複数あれば、関数跨ぎで制限がかかることになります。デフォルトだとこの上限はリージョンごと1,000です。 また、特定の関数に同時実行数制限をかけることもできます。このことにより、例えば関数Aがスケールしてアカウント全体の同時実行数をすべて消費してしまった結果、関数Bの実行に失敗する、といったことを防ぐことができます。

これまで

同時実行数メトリクスは

  • アカウント全体のもの
  • 実行数に制限をかけた関数のもの

このふたつしか提供されていませんでした。

これから

上記に加え、以下のメトリクスも提供されるようになりました!

  • 関数単位
  • バージョン単位
  • エイリアス単位
  • エイリアス×バージョン単位(エイリアスに紐づくバージョンが変わると、別値になる)※ 実行バージョン別

Lambda関数コンソールにも表示されてます

モニタリングタブに表示されます。

CloudWatch メトリクス コンソール

以下はある関数において

  • エイリアスfirstにバージョン3を紐付けて200回実行
  • エイリアスfirstのバージョンを4に更新して200回実行

した際のCloudWatchメトリクスです。

  • 下2つ(緑丸の3、赤丸の4)はエイリアス×バージョン(実行バージョン)単位の同時実行数です。
  • 上から二つ目はエイリアス単位の同時実行数です。バージョンを気にしていないので緑丸の3、赤丸の4の合計値になります。
  • 一番上は関数全体の同時実行数です。エイリアスfirst以外の実行はしていないので、上から2つ目のエイリアス単位の同時実行数と同値になります。

何が嬉しいか

そのまんまですが、より詳細にLambdaの実行状況を把握することができます。

  • どの関数が同時実行数を(大量に)消費しているか
  • 各関数の実行ピーク時間帯はいつか
  • 関数単位の同時実行数制限を設定すべきか、するとすればその値はどの程度が適切か

また、Provisioned Concurrency(プロビジョニングされた同時実行)の値を検討する際にも有用かと思います。

このメトリクスを活用してより良いLambdaライフをお過ごし下さい!

参考情報