AWS Lambda の同時実行使用率の確認が簡単にできるようになりました!

2023.12.13

こんにちは、森田です。

以下のアップデートで同時実行メトリクスである ClaimedAccountConcurrency を提供するようになりました。

ClaimedAccountConcurrency とは

ClaimedAccountConcurrency とは、オンデマンド呼び出しでは使用できない同時実行数(すでに使用済みの同時実行数)を指します。

ClaimedAccountConcurrency は以下で計算されます。

ClaimedAccountConcurrency = 予約済みの同時実行数 + プロビジョニング済みの同時実行数 + オンデマンド呼び出しの同時実行数

この ClaimedAccountConcurrency と同時実行数のクォータ(ConcurrentExecutions)を用いることで、AWS Lambda 同時実行使用率の確認が簡単にできます。

やってみる

では、実際に AWS Lambda の同時実行使用率の確認を行ってみます。

前準備として、予約済みの同時実行数をプロビジョニングされた同時実行数を表示させるために、AWS Lambdaを作成します。

予約済みの同時実行数を設定した AWS Lambda を作成

AWS Lambda をコンソールから作成を行います。

作成後、以下のように予約された同時実行を100に設定します。

プロビジョニングされた同時実行数を設定した AWS Lambda を作成

同様にAWS Lambda をコンソールから作成を行います。

作成後は、まずバージョンの作成を行います。

バージョン作成後、以下の箇所からプロビジョニングされた同時実行数を30に設定を行います。

CloudWatch Metrics でグラフ作成

前準備が終わったので、CloudWatch Metrics から AWS Lambda の同時実行使用率を確認します。

予約済みの同時実行数:100プロビジョニングされた同時実行数:30 ですので、ClaimedAccountConcurrencyは、130となります。

また、現在使用している同時実行数のクォータは1000ですので、同時実行使用率は、13%となります。

CloudWatch Metrics → AWS/Lambda → ClaimedAccountConcurrency を確認すると、以下のように130が表示されています。

同時実行使用率を表示させるためには、クォータ数の取得が必要なため、名前空間:AWS/Lambda、メトリクス名:ConcurrentExecutions を追加します。

数式に入れやすいように各メトリクスにIDを付与します。

メトリクス名 ID
ClaimedAccountConcurrency claimed_account_concurrency
ConcurrentExecutions usage_data

右上の数式を追加→空の数式で始まるを選択し、以下の数式を入力します。

claimed_account_concurrency/SERVICE_QUOTA(usage_data)*100

数式を入力すると、以下のようにグラフが表示され、期待した13%となっていることが確認できました。

最後に

今回は、新たに追加された ClaimedAccountConcurrency を使用して、AWS Lambda 同時実行の使用率を求めてみました。

このメトリクスをもとに、Cloudwatch アラームを設定すると便利ですので、ぜひ試してみてください。