Amazon CloudWatch と AWS Global Accelerator の併用
AWS Global Accelerator は、アクセラレーターのデータポイントを Amazon CloudWatch に公開します。CloudWatch では、それらのデータポイントについての統計を、(メトリクスと呼ばれる) 順序付けられた時系列データのセットとして取得できます。メトリクスは監視対象の変数、データポイントは時間の経過と共に変わる変数の値と考えることができます。例えば、アクセラレーターを通じて、トラフィックを指定した期間内でモニタリングできます。各データポイントには、タイムスタンプと、オプションの測定単位が関連付けられています。
注記
米国西部 (オレゴン) リージョンの Global Accelerator に関する CloudWatch メトリクスとログは、両方ともコンソール上または AWS CLI の使用時に表示する必要があります。AWS CLI を使用するときは、--region us-west-2
のパラメータを含めて、コマンドに米国西部 (オレゴン) リージョンを指定します。
メトリクスを使用して、最初の Global Accelerator のセットアップをトラブルシューティングし、トラフィックがエンドポイントに到着し、レスポンスが返るかどうかを判断するのに役立ちます。自動的にログに記録される CloudWatch メトリクスを表示して、トラフィックが Network Load Balancer などのエンドポイントに届いているかどうかを確認します。Global Accelerator からエンドポイントへのアウトバウンド、Global Accelerator からクライアントへのバック、ロードバランサーなどのエンドポイントについても同じメトリクスが必要です。Global Accelerator から流れ込むが、バックアウトしないトラフィック、またはロードバランサーに到達しないトラフィックは、設定でトラフィックが想定ポートを通過することを許可し、セキュリティグループ設定でアクセスを許可することを確認する必要がある可能性があります。
メトリクスを使用して、システムが予定通りにに実行されていることを確認できます。例えば、メトリクスが許容範囲外になる場合、CloudWatch アラームを作成して、指定されたメトリクスを監視し、アクション (E メールアドレスに通知を送信するなど) を実行することができます。
リクエストがアクセラレーターを経由する場合のみ、Global Accelerator はメトリクスを CloudWatch に報告します。アクセラレーターを経由するリクエストがある場合、Global Accelerator は 60 秒間隔でメトリクスを測定し、送信します。アクセラレーターを経由するリクエストがないか、メトリクスのデータがない場合、メトリクスは報告されません。
詳細については、「Amazon CloudWatch ユーザーガイド」を参照してください。
内容
Global Accelerator メトリクス
AWS/GlobalAccelerator
名前空間には、次のメトリクスが含まれます。
メトリクス | 説明 |
---|---|
ActiveFlowCount |
Global Accelerator のアクセラレーターのクライアントからエンドポイントへの並行 TCP および UDP 接続の合計数。TCP 接続はアクセラレーターで終了したため、ターゲットへの TCP 接続を開いているクライアントは単一のフローとして計算されます。 このメトリクスを使用して、エンドポイントにアクセスしているアクティブなユーザー (接続数) の数をよりよく理解したり、トラフィックを処理するためにリソースをスケーリングする必要があるかどうかを判断したりできます。 報告基準: 設定および有効化されているアクセラレーターについて報告されます。 統計: 使用できる統計は ディメンション
|
Flows_Dropped_No_Endpoint_Found |
IPv6 エンドポイントが利用できなかったためにドロップされた TCP IPv6 パケットフローの合計数。これは、デュアルスタック IP アドレスタイプのアクセラレーターがあり、アクセラレーターのエンドポイントの IP アドレスタイプを IPv4 に変更した場合などに発生する可能性があります。 報告基準: 次のいずれかが発生した場合に IPv6 トラフィックを受信しているデュアルスタック IP アドレスタイプのアクセラレーターについて報告されます。
統計: 使用できる統計は ディメンション
|
HealthyEndpointCount |
正常と見なされるエンドポイントの合計数。Global Accelerator は、標準アクセラレーターのエンドポイントのステータスを定期的にチェックします。これらのヘルスチェックは自動的に実行されます。これらのヘルスチェックの実行方法とタイミングは、エンドポイントのタイプとエンドポイントのヘルスチェックオプションによって異なります。詳細については、「アクセラレーターのヘルスチェックアクセスを確保する」を参照してください。 報告基準: 設定および有効化されているアクセラレーターについて報告されます。 統計値: 最も有用な統計値は ディメンション
|
NewFlowCount |
期間内にクライアントからエンドポイントに確立された新しい TCP と UDP フロー (または接続) の合計数。 レポート条件: ゼロ以外の値がある。 統計: 使用できる統計は ディメンション
|
ProcessedBytesIn |
TCP/IP ヘッダーを含む、アクセラレーターによって処理された受信バイトの合計数。この数には、エンドポイントへのすべてのトラフィックが含まれます。 レポート条件: ゼロ以外の値がある。 統計: 使用できる統計は ディメンション
|
ProcessedBytesOut |
TCP/IP ヘッダーを含む、アクセラレーターによって処理された送信バイトの合計数。この数には、エンドポイントからのトラフィックからヘルスチェックトラフィックを引いたものが含まれます。 レポート条件: ゼロ以外の値がある。 統計: 使用できる統計は ディメンション
|
PacketsProcessed |
ヘルスチェックトラフィックを含むエンドポイントとの間で送信および受信されるトラフィックを含む、アクセラレーターに対して Global Accelerator によって処理されたパケットの合計数。このメトリクスは、特定の期間内にトラフィックボリュームのきじゅんを設定するのに役立ちます。 報告基準: 設定および有効化されているアクセラレーターについて報告されます。 統計: 使用できる統計は ディメンション
|
UnhealthyEndpointCount |
異常とみなされるエンドポイントの数。Global Accelerator は、標準アクセラレーターのエンドポイントのステータスを定期的にチェックします。これらのヘルスチェックは自動的に実行されます。これらのヘルスチェックの実行方法とタイミングは、エンドポイントのタイプとエンドポイントのヘルスチェックオプションによって異なります。詳細については、「アクセラレーターのヘルスチェックアクセスを確保する」を参照してください。 報告基準: 設定および有効化されているアクセラレーターについて報告されます。 統計値: 最も有用な統計値は ディメンション
|
TCP_AGA_Reset_Count |
AWS Global Accelerator (「AGA」) によって生成されたリセット (RST) パケットの合計数。このメトリクスを使用すると、Global Accelerator がクライアント接続を終了し、クライアントエンドポイントにリセットを送信しているかどうかを確認できます。 Global Accelerator によって生成された TCP RST の評価とトラブルシューティングの詳細については、Global Accelerator TCP リセット問題のトラブルシューティング を参照してください。 報告基準: トラフィックがあり、値がゼロ以外の場合に報告されます。 統計: 使用できる統計は ディメンション
|
TCP_Client_Reset_Count |
クライアントからエンドポイントに送信されたリセット (RST) パケットの合計数。このメトリクスを使用すると、クライアントが Global Accelerator との接続を開いたままにできるかどうか、または接続が予期せず早期にリセットされるかどうかを判断できます。これは、最初に Global Accelerator を設定する場合や、接続のリセットを作成するクライアントに変更を加えるときに可視化するために便利です。 Global Accelerator によって生成された TCP RST の評価とトラブルシューティングの詳細については、Global Accelerator TCP リセット問題のトラブルシューティング を参照してください。 報告基準: トラフィックがあり、値がゼロ以外の場合に報告されます。 統計: 使用できる統計は ディメンション
|
TCP_Endpoint_Reset_Count |
エンドポイントからクライアントに送信されたリセット (RST) パケットの合計数。このメトリクスを使用すると、クライアントエンドポイントが過負荷になっている時期を判断するのに役立ちます。 Global Accelerator によって生成された TCP RST の評価とトラブルシューティングの詳細については、Global Accelerator TCP リセット問題のトラブルシューティング を参照してください。 報告基準: トラフィックがあり、値がゼロ以外の場合に報告されます。 統計: 使用できる統計は ディメンション
|
アクセラレーターのメトリクスディメンション
アクセラレーターのメトリクスをフィルタするには、次のディメンションを使用できます。
ディメンション | 説明 |
---|---|
Accelerator |
アクセラレーターによってメトリクスデータをフィルタリングします。アクセラレーター ID (アクセラレータ ARN の最後の部分) でアクセラレーターを指定します。例えば、ARN は |
Listener |
リスナーによってメトリクスデータをフィルタリングします。リスナー ID (リスナー ARN の最終部分) によってリスナーを指定します。例えば、ARN は |
EndpointGroup |
エンドポイントグループによってメトリクスデータをフィルタリングします。AWS リージョンによってエンドポイントグループを指定します。例えば、 |
SourceRegion |
アプリケーションエンドポイントが実行されている AWS リージョンの地理的領域であるソースリージョンによってメトリクスデータをフィルタリングします。ソースリージョンは次のいずれかです:
* 韓国とインドを除く |
DestinationEdge |
クライアントトラフィックに対応する AWS エッジロケーションの地理的な地域である送信先エッジによってメトリックデータをフィルタリングします。送信先エッジは、次のいずれかです:
* 韓国とインドを除く |
TransportProtocol |
トランスポートプロトコルによってメトリクスデータをフィルタリングします: UDP または TCP。 |
AcceleratorIPAddress |
アクセラレーターの IP アドレス、つまりアクセラレーターに割り当てられた静的 IP アドレスの 1 つでメトリクスデータをフィルタリングします。 |
Global Accelerator TCP リセット問題のトラブルシューティング
各アクセラレーターは、Global Accelerator から生成および送信された TCP リセット (TCP RST) の数を報告します。Global Accelerator が TCP リセットを送信する一般的な理由は次のとおりです:
Global Accelerator は、クライアントまたはエンドポイントが FIN ハンドシェイクまたはリセットを使用して接続を閉じると、TCP 接続を閉じたものとしてマークします。クライアントまたはエンドポイントが閉じた TCP 接続でデータパケットを送信すると、Global Accelerator は TCP リセットを生成して、接続が閉じられ、トラフィックを受け入れることができないことを示します。
アイドルタイムアウト期間の経過後にクライアントまたはエンドポイントがデータを送信した場合、Global Accelerator からの TCP リセットパケットを受信して、接続が無効になったことを示します。
TCP ハンドシェイク中にクライアントまたはエンドポイントとの接続を構築中に Global Accelerator が予期しないパケットを受信すると、Global Accelerator は TCP リセットを生成します。
アクセラレーターの AGA_Reset_Count
メトリクスが安定している場合、クライアントまたはエンドポイントがデータを Global Accelerator に閉じた接続または期限切れの接続に送信したためです。
もし AGA_Reset_Count
メトリクスに急激な増加が見られ、それがエンドポイント側の関連メトリクスの変化 (例えば、スケールアップ、スケールダウン、または非正常なエンドポイント) と一致する場合、エンドポイントが到達不能になり、Global Accelerator の TCP リセットがトリガーされた可能性があります。この問題の調査については、AWS サポートにお問い合わせください。
Global Accelerator メトリクスの統計
CloudWatch では、Global Accelerator で発行されたメトリクスのデータポイントに基づいた統計が提供されます。統計とは、指定された期間のメトリクスデータを集計したものです。統計を要求した場合、返されるデータストリームはメトリクス名とディメンションによって識別されます。ディメンションは、メトリクスを一意に識別する名前/値のペアです。例えば、ヨーロッパの AWS エッジロケーションからバイトが提供されるアクセラレーターに対して処理されたバイトをリクエストできます (送信先エッジは「EU」です)。
以下は、役に立つメトリクス/ディメンションの組み合わせの例です。
2 つのアクセラレーター IP アドレスごとにサービスされるトラフィック量 (ProcessedBytesOut など) を表示して、DNS 設定が正しいことを確認します。
ユーザートラフィックの地理的分布を表示し、ローカル (北米から北米など) またはグローバル (オーストラリアやインドから北米など) のトラフィックの量をモニタリングします。これを決定するには、ディメンション DestinationEdge と SourceRegion を特定の値に設定して、ProcessedBytesIn または ProcessedBytesOut のメトリクスを表示します。
アクセラレーター全体の異常なエンドポイントの数を表示し、それらが属するエンドポイントグループを決定します。エンドポイントグループが多数ある場合、これは特に問題が発生しているエンドポイントを持つエンドポイントグループをすばやく見つけるのに役立ちます。これを決定するには、ディメンション Accelerator、Listener、EndpointGroup を使用して、メトリクス UnhealthyEndpointCount を表示します。
アクセラレーターの CloudWatch メトリクスを表示する
アクセラレーターに関する CloudWatch メトリクスを表示するときは、CloudWatch コンソールまたは AWS CLI を使用します。コンソールでは、メトリクスはモニタリンググラフのように表示されます。アクセラレーターがアクティブでリクエストを受信しているときにのみ、モニタリング用のグラフにデータポイントが表示されます。
米国西部 (オレゴン) リージョンの Global Accelerator に関する CloudWatch メトリクスは、両方ともコンソール上または AWS CLI の使用時に表示する必要があります。AWS CLI を使用するときは、--region us-west-2
のパラメータを含めて、コマンドに米国西部 (オレゴン) リージョンを指定します。
CloudWatch コンソールを使用してメトリクスを表示するには、Amazon CloudWatch ユーザーガイドの手順に従って GlobalAccelerator ネームスペースを選択します。詳細について、「利用可能なメトリクスを表示する」を参照してください。
AWS CLI を使用してメトリクスの統計を取得するには
以下の get-metric-statistics コマンドを使用して、指定されたメトリクスとディメンションの統計情報を取得します。CloudWatch は、ディメンションの一意の組み合わせをそれぞれ別のメトリクスとして扱うことに注意してください。発行されていないディメンションの組み合わせを使用した統計を取得することはできません。メトリクス作成時に使用した同じディメンションを指定する必要があります。
次の例では、北米 (NA) 送信先エッジからサービスを提供するアクセラレーターの 1 分あたりの合計処理バイト数を一覧表示します。
aws cloudwatch get-metric-statistics --namespace AWS/GlobalAccelerator \ --metric-name ProcessedBytesIn \ --region us-west-2 \ --statistics Sum --period 60 \ --dimensions Name=Accelerator,Value=1234abcd-abcd-1234-abcd-1234abcdefgh Name=DestinationEdge,Value=NA \ --start-time 2019-12-18T20:00:00Z --end-time 2019-12-18T21:00:00Z
以下は、コマンドからの出力例です。
{
"Label": "ProcessedBytesIn",
"Datapoints": [
{
"Timestamp": "2019-12-18T20:45:00Z",
"Sum": 2410870.0,
"Unit": "Bytes"
},
{
"Timestamp": "2019-12-18T20:47:00Z",
"Sum": 0.0,
"Unit": "Bytes"
},
{
"Timestamp": "2019-12-18T20:46:00Z",
"Sum": 0.0,
"Unit": "Bytes"
},
{
"Timestamp": "2019-12-18T20:42:00Z",
"Sum": 1560.0,
"Unit": "Bytes"
},
{
"Timestamp": "2019-12-18T20:48:00Z",
"Sum": 0.0,
"Unit": "Bytes"
},
{
"Timestamp": "2019-12-18T20:43:00Z",
"Sum": 1343.0,
"Unit": "Bytes"
},
{
"Timestamp": "2019-12-18T20:49:00Z",
"Sum": 0.0,
"Unit": "Bytes"
},
{
"Timestamp": "2019-12-18T20:44:00Z",
"Sum": 35791560.0,
"Unit": "Bytes"
}
]
}