サーバーレスアプリケーションのパフォーマンスを監視・最適化するための重要指標
Lambda関数の実行に関する様々な指標を測定し、アプリケーションの健全性、パフォーマンス、コストを最適化するための重要なデータです。
Lambda関数が呼び出された回数を示します。APIゲートウェイ、S3イベント、定期的なスケジュールなど、様々なソースからの呼び出しがカウントされます。
重要度: ⭐⭐⭐⭐⭐
単位: Count
確認ポイント: 想定外の呼び出し回数の急増や減少は、問題の兆候かもしれません。
関数の実行中に発生したエラーの数を示します。コード内の例外、タイムアウト、権限の問題などが含まれます。
重要度: ⭐⭐⭐⭐⭐
単位: Count
確認ポイント: エラー率(Errors/Invocations)を監視し、通常は5%未満に保つべきです。
関数がコードの実行に費やした時間を測定します。初期化時間は含まれず、純粋なコード実行時間のみです。
重要度: ⭐⭐⭐⭐
単位: ミリ秒
確認ポイント: タイムアウト制限に近づいていないか、また実行時間の急な増加はパフォーマンスの問題を示す可能性があります。
同時実行の制限によりスロットルされた呼び出しの数です。AWSはアカウントごとにデフォルトで1000の同時実行数を設定しています。
重要度: ⭐⭐⭐⭐
単位: Count
確認ポイント: スロットルが発生する場合は、同時実行制限の引き上げをリクエストするか、関数のアーキテクチャを見直す必要があります。
特定の時点で同時に実行されているLambda関数のインスタンス数を示します。
重要度: ⭐⭐⭐
単位: Count
確認ポイント: 予約済み同時実行数を設定している場合は、その使用率を監視します。
ストリームベースの呼び出し(KinesisやDynamoDB Streams)において、レコードがストリームに追加されてからLambdaで処理されるまでの時間です。
重要度: ⭐⭐⭐
単位: ミリ秒
確認ポイント: 処理が遅れている場合は、関数のパフォーマンスか、シャードの数を見直す必要があります。
昼のピーク時(12:00頃)に、呼び出し回数が急増し、それに伴いエラーとスロットルも増加しています。これはリソース制限に達している可能性を示唆しています。
エラー率が5%を超えた場合や、スロットルが発生した場合に通知を受け取るようにCloudWatchアラームを設定しましょう。
関連するメトリクスを一覧できるカスタムダッシュボードを作成し、定期的に確認する習慣をつけましょう。
重要な関数には、予約済み同時実行数を設定して、スロットルを防止しましょう。
Duration メトリクスに大きなばらつきがある場合は、予備容量(Provisioned Concurrency)の設定を検討しましょう。
非同期呼び出しの場合、適切なリトライ回数と最大経過時間を設定しましょう。
Created by SSuzuki1063
AWS SAP Learning Resources