メニュー
Elastic Load Balancing
Application Load Balancer

Application Load Balancer の CloudWatch メトリクス

Elastic Load Balancing は、ロードバランサーとターゲットに関するデータポイントを Amazon CloudWatch に発行します。CloudWatch を使用すると、それらのデータポイントについての統計を、順序付けられた時系列データのセット (メトリクスと呼ばれる) として取得できます。メトリクスは監視対象の変数、データポイントは時間の経過と共に変わる変数の値と考えることができます。たとえば、指定した期間中のロードバランサーの正常なターゲットの合計数を監視することができます。各データポイントには、タイムスタンプと、オプションの測定単位が関連付けられています。

メトリクスを使用して、システムが正常に実行されていることを確認できます。たとえば、メトリクスが許容範囲外になる場合、CloudWatch アラームを作成して、指定されたメトリクスを監視し、アクション (E メールアドレスに通知を送信するなど) を開始することができます。

Elastic Load Balancing は、リクエストがロードバランサーを経由する場合のみ、メトリクスを CloudWatch に報告します。ロードバランサーを経由するリクエストがある場合、Elastic Load Balancing は 60 秒間隔でメトリクスを測定し、送信します。ロードバランサーを経由するリクエストがないか、メトリクスのデータがない場合、メトリクスは報告されません。

詳細については、「Amazon CloudWatch ユーザーガイド」を参照してください。

Application Load Balancer メトリクス

AWS/ApplicationELB 名前空間には、次のメトリクスが含まれます。

メトリクス 説明
ActiveConnectionCount

クライアントからロードバランサーへ、およびロードバランサーからターゲットへの、アクティブな同時 TCP 接続の総数。

統計: 最も有用な統計は Sum です。

ClientTLSNegotiationErrorCount

クライアントにより開始され、ロードバランサーとのセッションを確立しなかった、TLS 接続の数。暗号化またはプロトコルの不一致が原因である場合があります。

統計: 最も有用な統計は Sum です。

ConsumedLCUs

ロードバランサーが使用するロードバランサーキャパシティーユニット (LCU) の数です。1 時間当たりで使用する LCU 数の料金をお支払いいただきます。詳細については、「LCU の詳細」を参照してください。

HealthyHostCount

正常と見なされるターゲットの数。

統計: 最も有用な統計は AverageMinimum、および Maximum です。

HTTPCode_ELB_4XX_Count

ロードバランサーから送信される HTTP 4XX クライアントエラーコードの数。リクエストの形式が不正な場合、または不完全な場合は、クライアントエラーが生成されます。それらのリクエストはターゲットで受信されません。この数には、ターゲットによって生成される応答コードは含まれません。

統計: 最も有用な統計は Sum です。MinimumMaximum、および Average はすべては 1 を返すことに注意してください。

HTTPCode_ELB_5XX_Count

ロードバランサーから送信される HTTP 5XX サーバーエラーコードの数。この数には、ターゲットによって生成される応答コードは含まれません。

統計: 最も有用な統計は Sum です。MinimumMaximum、および Average はすべては 1 を返すことに注意してください。

HTTPCode_Target_2XX_CountHTTPCode_Target_3XX_CountHTTPCode_Target_4XX_CountHTTPCode_Target_5XX_Count

ターゲットによって生成された HTTP 応答コードの数。これには、ロードバランサーによって生成される応答コードは含まれません。

統計: 最も有用な統計は Sum です。MinimumMaximum、および Average はすべては 1 を返すことに注意してください。

IPv6ProcessedBytes

IPv6 を使用したロードバランサーによって処理される総バイト数。

統計: 最も有用な統計は Sum です。

IPv6RequestCount

ロードバランサーによって受信された IPv6 リクエストの数。

統計: 最も有用な統計は Sum です。MinimumMaximum、および Average はすべては 1 を返すことに注意してください。

NewConnectionCount

クライアントからロードバランサーへ、およびロードバランサーからターゲットへの、新たに確立された TCP 接続の総数。

統計: 最も有用な統計は Sum です。

ProcessedBytes

IPv4 および IPv6 を使用したロードバランサーによって処理される総バイト数。

統計: 最も有用な統計は Sum です。

RejectedConnectionCount

ロードバランサーが接続の最大数に達したため、拒否された接続の数。

統計: 最も有用な統計は Sum です。

RequestCount

ロードバランサーによって受信されたリクエストの数。これには、IPv4 および IPv6 経由のリクエストが含まれます。

統計: 最も有用な統計は Sum です。MinimumMaximum、および Average はすべては 1 を返すことに注意してください。

RequestCountPerTarget

ターゲットグループ内の各ターゲットによって受信されたリクエストの平均数。TargetGroup ディメンションを使用してターゲットグループを指定する必要があります。

統計: 有効な唯一の統計は Sum です。これは合計ではなく平均を表すことに注意してください。

RuleEvaluations

1 時間の平均リクエスト頻度に基づいてロードバランサーによって処理されるルールの数。

統計: 最も有用な統計は Sum です。

TargetConnectionErrorCount

ロードバランサーとターゲット間で正常に確立されなかった接続数。

統計: 最も有用な統計は Sum です。

TargetResponseTime

リクエストがロードバランサーから送信され、ターゲットからの応答を受信するまでの経過時間 (秒)。これは、アクセスログの target_processing_time フィールドに相当します。

統計: 最も有用な統計は Average および pNN.NN (パーセンタイル) です。

TargetTLSNegotiationErrorCount

ロードバランサーにより開始され、ターゲットとのセッションを確立しなかった、TLS 接続の数。暗号化またはプロトコルの不一致が原因である場合があります。

統計: 最も有用な統計は Sum です。

UnHealthyHostCount

異常と見なされるターゲットの数。

統計: 最も有用な統計は AverageMinimum、および Maximum です。

Application Load Balancer のメトリクスディメンション

Application Load Balancer のメトリクスをフィルタするには、次のディメンションを使用できます。

ディメンション 説明
AvailabilityZone

アベイラビリティーゾーン別にメトリクスデータをフィルタリングします。

LoadBalancer

ロードバランサーでメトリクスデータをフィルタリングします。ロードバランサーを次のように指定します。app/ロードバランサー名/1234567890123456 (ロードバランサー ARN の最後の部分)。

TargetGroup

ターゲットグループでメトリクスデータをフィルタリングします。ターゲットグループを次のように指定します。targetgroup/ターゲットグループ名/1234567890123456 (ターゲットグループ ARN の最後の部分)。

Application Load Balancer メトリクスの統計

CloudWatch では、Elastic Load Balancing で発行されたメトリクスのデータポイントに基づいて統計が提供されます。統計とは、メトリクスデータを指定した期間で集約したものです。統計を要求した場合、返されるデータストリームはメトリクス名とディメンションによって識別されます。ディメンションは、メトリクスを一意に識別する名前/値のペアです。たとえば、特定のアベイラビリティーゾーンで起動されたロードバランサーの配下のすべての正常な EC2 インスタンスの統計をリクエストできます。

Minimum 統計と Maximum 統計には、個々のロードバランサーノードによって報告される最小値と最大値が反映されます。たとえば、ロードバランサーノードが 2 つあるとします。一方のノードは、HealthyHostCountMinimum が 2、Maximum が 10、Average が 6 で、もう一方のノードは HealthyHostCountMinimum が 1、Maximum が 5、Average が 3 です。このため、ロードバランサーの Minimum は 1、Maximum は 10、Average は約 4 です。

Sum 統計は、すべてのロードバランサーノードにおける集計値です。メトリクスには期間あたり複数のレポートが含まれているため、Sum はすべてのロードバランサーノードで集計されたメトリクスのみに適用されます。

SampleCount 統計は測定されたサンプルの数です。メトリクスはサンプリング間隔とイベントに基づいて集計されるため、通常、この統計は有用ではありません。たとえば、HealthyHostCountSampleCount は、正常なホストの数ではなく各ロードバランサーノードが報告するサンプル数に基づいています。

パーセンタイルは、データセットにおける値の相対的な位置を示します。小数点以下最大 2 桁を使用して、任意のパーセンタイルを指定できます (p95.45 など)。たとえば、95 パーセンタイルは、95 パーセントのデータがこの値を下回っており、5 パーセントがこの値を上回っていることを意味します。パーセンタイルは、異常を分離するためによく使用されます。たとえば、アプリケーションがほとんどのリクエストをキャッシュから 1 ~ 2 ミリ秒で処理するのに、キャッシュが空の場合は 100 ~ 200 ミリ秒になるとします。最大値は最も速度が遅い場合を反映し、約 200 ミリ秒になります。平均値はデータの分散を示してはいません。パーセンタイルで、アプリケーションのパフォーマンスのより有益なビューが得られます。99 番目のパーセンタイルを Auto Scaling のトリガーあるいは CloudWatch アラームとして使用すると、2 ミリ秒以上の処理時間がかかるリクエストが 1% を超えないようターゲットを設定できます。

ロードバランサーの CloudWatch メトリクスを表示する

Amazon EC2 コンソールを使用して、ロードバランサーに関する CloudWatch メトリクスを表示できます。これらのメトリクスは、モニタリング用のグラフのように表示されます。ロードバランサーがアクティブでリクエストを受信しているときにのみ、モニタリング用のグラフにデータポイントが表示されます。

または、CloudWatch コンソールを使用してロードバランサーのメトリクスを表示できます。

Amazon EC2 コンソールを使用してメトリクスを表示するには

  1. https://console.aws.amazon.com/ec2/) にある Amazon EC2 コンソールを開きます。

  2. ターゲットグループによってフィルタリングされたメトリクスを表示するには、以下の作業を実行します。

    1. ナビゲーションペインで、[Target Groups] を選択します。

    2. ターゲットグループを選択し、[Monitoring] タブを選択します。

    3. (オプション) 結果を時間でフィルタリングするには、[Showing data for] から時間範囲を選択します。

    4. 1 つのメトリクスの大きいビューを取得するには、グラフを選択します。以下のメトリクスが利用可能です。

      • 正常なホスト — HealthyHostCount

      • 非正常なホスト — UnHealthyHostCount

      • 平均レイテンシー — TargetResponseTime

      • 合計リクエスト数 — RequestCount

      • ターゲット接続エラー — TargetConnectionErrorCount

      • 却下された接続の合計 — RejectedConnectionCount

      • 合計 ELB 4XXs — HTTPCode_ELB_4XX_Count

      • 合計 ELB 5XXs — HTTPCode_ELB_5XX_Count

      • 合計 HTTP 2XX — HTTPCode_Target_2XX_Count

      • 合計 HTTP 3XX — HTTPCode_Target_3XX_Count

      • 合計 HTTP 4XX — HTTPCode_Target_4XX_Count

      • 合計 HTTP 5XX — HTTPCode_Target_5XX_Count

      • ターゲット TLS ネゴシエーションエラー — TargetTLSNegotiationErrorCount

      • クライアント TLS ネゴシエーションエラー — ClientTLSNegotiationErrorCount

      • 有効接続数 — ActiveConnectionCount

      • 新規接続数 — NewConnectionCount

      • プロセスされたバイト数 — ProcessedBytes

  3. ロードバランサーでフィルタリングされたメトリクスを表示するには、以下の操作を実行します。

    1. ナビゲーションペインで、[Load Balancers] を選択します。

    2. ロードバランサーを選択し、[Monitoring] タブを選択します。

    3. (オプション) 結果を時間でフィルタリングするには、[Showing data for] から時間範囲を選択します。

    4. 1 つのメトリクスの大きいビューを取得するには、グラフを選択します。以下のメトリクスが利用可能です。

      • 平均レイテンシー — TargetResponseTime

      • 合計リクエスト数 — RequestCount

      • 新規接続数 — NewConnectionCount

      • 有効接続数 — ActiveConnectionCount

      • プロセスされたバイト数 — ProcessedBytes

      • ルールの評価 — RuleEvaluations

      • 消費されたロードバランサーキャパシティーユニット — ConsumedLCUs

      • ターゲット接続エラー — TargetConnectionErrorCount

      • 却下された接続の合計 — RejectedConnectionCount

      • クライアント TLS ネゴシエーションエラー — ClientTLSNegotiationErrorCount

      • ターゲット TLS ネゴシエーションエラー — TargetTLSNegotiationErrorCount

      • 合計 HTTP 2XX — HTTPCode_Target_2XX_Count

      • 合計 HTTP 3XX — HTTPCode_Target_3XX_Count

      • 合計 HTTP 4XX — HTTPCode_Target_4XX_Count

      • 合計 HTTP 5XX — HTTPCode_Target_5XX_Count

      • Sum ELB HTTP 4XXs — HTTPCode_ELB_4XX_Count

      • Sum ELB HTTP 5XXs — HTTPCode_ELB_5XX_Count

CloudWatch コンソールを使用してメトリクスを表示するには

  1. https://console.aws.amazon.com/cloudwatch/にある CloudWatch コンソールを開きます。

  2. ナビゲーションペインで メトリクスを選択します。

  3. 名前空間に [ApplicationELB] を選択します。

  4. (オプション) すべてのディメンションでメトリクスを表示するには、検索フィールドに名称を入力します。

  5. (オプション) ディメンション別に検索するには、次のいずれかを選択します。

    • ロードバランサーにレポートされるメトリクスのみを表示するには、[Per AppELB Metrics] を選択します。1 つのロードバランサーのメトリクスを表示するには、検索フィールドにその名前を入力します。

    • ターゲットグループにレポートされるメトリクスのみを表示するには、[Per AppELB, per TG Metrics] を選択します。1 つのターゲットグループのメトリクスを表示するには、検索フィールドにその名前を入力します。

    • アベイラビリティーゾーン別に、ロードバランサーにレポートされるメトリクスのみを表示するには、[Per AppELB, per AZ Metrics] を選択します。1 つのロードバランサーのメトリクスを表示するには、検索フィールドにその名前を入力します。1 つのアベイラビリティーゾーンのメトリクスを表示するには、検索フィールドにその名前を入力します。

    • アベイラビリティーゾーンとターゲットグループ別にロードバランサーにレポートされるメトリクスのみを表示するには、[Per AppELB, per AZ, per TG Metrics] を選択します。1 つのロードバランサーのメトリクスを表示するには、検索フィールドにその名前を入力します。1 つのターゲットグループのメトリクスを表示するには、検索フィールドにその名前を入力します。1 つのアベイラビリティーゾーンのメトリクスを表示するには、検索フィールドにその名前を入力します。

AWS CLI を使ってメトリクスを表示するには

使用可能なメトリクスを表示するには、次の list-metrics コマンドを使用します。

Copy
aws cloudwatch list-metrics --namespace AWS/ApplicationELB

AWS CLI を使用してメトリクスの統計を取得するには

get-metric-statistics コマンドを使用して、指定されたメトリクスとディメンションの統計情報を取得します。 CloudWatch は、ディメンションの一意の組み合わせをそれぞれ別のメトリクスとして扱うことに注意してください。特に発行されていないディメンションの組み合わせを使用した統計を取得することはできません。メトリクス作成時に使用した同じディメンションを指定する必要があります。

Copy
aws cloudwatch get-metric-statistics --namespace AWS/ApplicationELB \ --metric-name UnHealthyHostCount --statistics Average --period 3600 \ --dimensions Name=LoadBalancer,Value=app/my-load-balancer/50dc6c495c0c9188 \ Name=TargetGroup,Value=targetgroup/my-targets/73e2d6bc24d8a067 \ --start-time 2016-04-18T00:00:00Z --end-time 2016-04-21T00:00:00Z

出力例を次に示します。

{
    "Datapoints": [
        {
            "Timestamp": "2016-04-18T22:00:00Z",
            "Average": 0.0,
            "Unit": "Count"
        },
        {
            "Timestamp": "2016-04-18T04:00:00Z",
            "Average": 0.0,
            "Unit": "Count"
        },
        ...
    ],
    "Label": "UnHealthyHostCount"
}