Classic Load Balancer (CLB) インスタンスにリクエストタイムアウトやスロットリングなどのネットワーク接続の問題が発生した場合、またはそのロードやパフォーマンスを把握する必要がある場合は、Cloud Monitor を使用してインスタンスの動作ステータスとメトリクスを表示できます。このデータは、コンソール、API、または SDK で表示できます。
前提条件
Classic Load Balancer (CLB) インスタンスが作成されており、少なくとも 1 つのリスナーが設定されている必要があります。 詳細については、次のトピックをご参照ください。
コンソールでのモニタリングデータの表示
CLB コンソールにログインします。
上部メニューで、CLB インスタンスのリージョンを選択します。
インスタンス ページでターゲットインスタンスを見つけ、次のいずれかの方法でそのモニタリング情報を表示します。
方法 1: モニタ 列で
をクリックします。モニタリング情報 パネルで、インスタンス または リスナー タブをクリックします。方法 2: インスタンス ID をクリックします。インスタンス詳細 タブで モニタリング タブをクリックします。次に、インスタンス または リスナー タブをクリックします。
インスタンス タブで、[帯域幅/トラフィック] サブタブをクリックして、CLB インスタンスのリクエストとレスポンスの [データ処理量] メトリックを表示します。
時間 を指定してチャートの時間範囲を設定できます。[自動更新] をオンにすると、モニタリングデータが 1 分ごとに更新されます。
次の表に、サポートされているモニタリングメトリクスを示します。
メトリック | 説明 |
[受信/送信トラフィック] |
|
[着信/送信パケット] |
|
[同時接続数] |
|
[新規接続] | 収集期間あたりのクライアントからロードバランサーへの新規接続の平均数。 |
[トラフィックロス] |
|
[パケットロス] |
|
[接続ロス] | 1 秒あたりに破棄される接続数。 |
以下のメトリックは、レイヤー 7 (HTTP/HTTPS) リスナーに固有のものです。 | |
[QPS] | 1 秒あたりに処理される HTTP または HTTPS リクエストの数。 |
[応答時間] | ロードバランサーの平均応答時間。 |
レイヤー 7 2xx/3xx/4xx/5xx/その他のステータスコード | リスナーが返す HTTP 応答コードの数。 |
レイヤー 7 アップストリームコード 4xx/5xx | バックエンドサーバーが返す HTTP 応答コードの数。 |
[UpstreamRt] | バックエンドサーバーの平均応答時間。 |
CLB のモニタリングは、インスタンスレベルとリスナーレベルの 2 つのディメンションでデータを提供します。インスタンスレベルのメトリクスは、CLB インスタンス全体のトラフィックと接続ステータスを反映します。リスナーレベルのメトリクスは、個々のリスナーポートのトラフィックと接続を反映します。CLB のモニタリングは、バックエンドの ECS インスタンスやアプリケーションごとのトラフィックデータのブレークダウンをサポートしていません。CLB コンソールを使用して、どのバックエンドアプリケーションまたは ECS インスタンスが最も多くのトラフィックを消費しているかを特定することはできません。
バックエンドサーバーにおける高トラフィックの原因を特定する必要がある場合は、次のいずれかの代替手段を使用してください。
ECS コンソールで、ECS インスタンスの詳細ページに移動し、モニタ タブでネットワーク帯域幅のモニタリングデータを表示します。
アプリケーションのアクセスログを分析して、高トラフィックの原因を特定してください。
バックエンドサーバーにログインし、
iftop -i eth0 -PnNを実行して、プロセスごとのトラフィック使用量を表示してください。
CLB モニタリングデータのデフォルトの統計期間は 60 秒です。つまり、モニタリングチャートの各データポイントは 60 秒間の集計値を表します。Cloud Monitor API を介してモニタリングデータをクエリする場合、このデフォルトの粒度に合わせるために、Period パラメーターを 60 に設定してください。
API を使用したモニタリングデータの表示
Cloud Monitor API を使用して、CLB インスタンスの監視メトリクスと詳細データを表示できます。
API を使用してモニタリングデータを表示するには:
名前空間をクエリします。
DescribeProjectMetaAPI を呼び出して、Cloud Monitor における CLB の名前空間をクエリします。任意: 利用可能なメトリクスを表示します。
DescribeMetricMetaListAPI を呼び出して、Cloud Monitor で利用可能な時系列メトリクスの説明をクエリします。詳細については、「CLB モニタリング」をご参照ください。特定のメトリックのモニタリングデータをクエリします。
DescribeMetricLastAPI を呼び出して、特定の CLB モニタリングオブジェクトの最新のモニタリングデータをクエリします。DescribeMetricListAPI を呼び出して、特定の時間範囲における CLB モニタリングオブジェクトの時系列データをクエリします。
DescribeProjectMeta
DescribeProjectMeta API を呼び出して、Cloud Monitor における CLB の名前空間をクエリします。
Labels パラメーターを
[{"name":"product","value":"SLB"}]に設定し、他のパラメーターはデフォルト値のままにします。Labels パラメーターは、製品タグによってリソースをフィルタリングします。レスポンスから、Cloud Monitor における CLB インスタンスの Namespace パラメーターの値を取得します。値は
acs_slb_dashboardです。
DescribeMetricMetaList
DescribeMetricMetaList API を呼び出して、Cloud Monitor で利用可能な時系列メトリクスの説明をクエリします。
Namespace パラメーターを acs_slb_dashboard に設定し、他のパラメーターはデフォルト値のままにします。
レスポンスで、ロードバランサーの時系列メトリクスを検索します。たとえば、[QPS] メトリックを確認します。
DescribeMetricLast
DescribeMetricLast API を呼び出して、ロードバランサーの特定のモニタリングオブジェクトの最新のモニタリングデータをクエリします。この例では、[QPS] メトリックの最新データをクエリします。
[QPS] をクエリするためのパラメーターを設定します。
次のパラメーターを設定し、他のパラメーターはデフォルト値のままにします。
MetricName:監視メトリックの名前。この例では、値を InstanceQps に設定します。
Dimensions:特定のリソースのモニタリングデータをクエリするためのディメンションマップ。この例では、値を
[{"instanceId":"lb-bp1r92vzpemy099f******"}]に設定します。Namespace:クラウドサービスの名前空間。この例では、値を acs_slb_dashboard に設定します。
レスポンスから、[QPS] の最新のモニタリングデータを表示します。
DescribeMetricList
DescribeMetricList API を呼び出して、特定の時間範囲におけるロードバランサーのメトリックの時系列データをクエリします。
特定の時間範囲における [QPS] のモニタリングデータをクエリするためのパラメーターを設定します。
次のパラメーターを設定し、他のパラメーターはデフォルト値のままにします。
MetricName:監視メトリックの名前。この例では、値を InstanceQps に設定します。
Namespace:クラウドサービスの名前空間。この例では、値を acs_slb_dashboard に設定します。
Dimensions:特定のリソースのモニタリングデータをクエリするためのディメンションマップ。この例では、値を
[{"instanceId":"lb-bp1r92vzpemy099f******"}]に設定します。StartTime:クエリする時間範囲の開始時刻。StartTime の値は、EndTime の値と同じか、それより後に設定することはできません。この例では、値を
2020-03-28 00:10:00に設定します。サポートされているフォーマット:
UNIX タイムスタンプ: 1970年1月1日00:00:00 UTCからのミリ秒数。
フォーマット: YYYY-MM-DDThh:mm:ssZ。
EndTime:クエリする時間範囲の終了時刻。フォーマットは StartTime と同じです。この例では、値を
2020-03-28 00:11:00に設定します。
レスポンスから、指定された時間範囲における [QPS] のモニタリングデータを表示します。
SDK を使用したモニタリングデータの表示
このセクションでは、SDK を使用して CLB の監視メトリクスと詳細データを表示する方法について説明します。次の例では、DescribeMetricList API を呼び出して、CLB インスタンスの 1 秒あたりの最大同時接続数をクエリする方法を示します。
次のパラメーターを設定し、他のパラメーターはデフォルト値のままにします:
MetricName:監視メトリクスの名前。この例では、このパラメーターを InstanceMaxConnection に設定します。
Namespace:クラウドサービスの名前空間。この例では、このパラメーターを acs_slb_dashboard に設定します。
Dimensions:特定のリソースのモニタリングデータをクエリするためのディメンションマップ。この例では、このパラメーターを [{"instanceId":"lb-bp1r92vzpemy099f**"}] に設定します。
StartTime:クエリする時間範囲の開始時刻。値は、EndTime の値と同じか、それ以降に設定することはできません。この例では、このパラメーターを
2022-10-13T20:45:03Zに設定します。サポートされているフォーマット:
UNIX タイムスタンプ:1970 年 1 月 1 日 00:00:00 UTC からのミリ秒数。
フォーマット: YYYY-MM-DDThh:mm:ssZ。
EndTime:クエリする時間範囲の終了時刻。サポートされているフォーマットは StartTime と同じです。この例では、このパラメーターを
2022-10-13T20:47:03Zに設定します。
[SDK サンプルコード] タブで、[Python] タブを選択し、[サンプルを実行] をクリックします。
表示されるパネルで結果を確認します。
よくある質問
CLB モニタリング:リクエストのない接続
インターネットスキャンツールが、お使いの CLB インスタンスのパブリック IP アドレスにアクセスすることがあります。これらのツールは、パブリック IP アドレスに直接 TCP 接続を開始します。これらの接続は、接続数と帯域幅メトリックに計上されます。しかし、スキャンツールは有効な HTTP リクエストを送信しないため、レイヤー 7 モニタリングのリクエスト数は 0 のままです。
これは、CLB モニタリングにおける想定内の統計的挙動です。
接続数と帯域幅のメトリックでは、スキャナーによって生成されたものを含め、すべての TCP レベルの接続がカウントされます。
リクエスト数 (QPS) は、有効なレイヤー 7 の HTTP/HTTPS リクエストのみを測定し、HTTP リクエストを伴わない TCP 接続は含まれません。
サービスを CLB から Application Load Balancer (ALB) に移行した後、CLB インスタンスに接続データと帯域幅データは表示されるもののリクエストが表示されない場合、これは通常、スキャンアクティビティが原因であり、移行したサービスには影響しません。
CLB モニタリングの QPS を使用して実際のリクエスト数を正確に推定できますか?
いいえ。CLB モニタリングの QPS は、分レベルの粒度で集計された統計であり、正確なリクエストごとのカウントとは異なります。これを正確なリクエスト数として扱うことはできず、リクエスト数に変換したり、QPS と実際の値との比率に基づいてインスタンス間の比率を推定したりすることもできません。
CLB に到達するリクエスト数を推定するには、レイヤー 7 QPS メトリックを使用してください。ステータスコードメトリックは、CLB がクライアントに返すステータスコードのみをカウントし、不完全な接続など、ステータスコードを生成しなかったリクエストは含まないため、この目的での使用は推奨されません。
CLB の過去の合計トラフィックとバックエンド ECS インスタンスのインバウンド帯域幅の表示方法
過去の合計トラフィック
CLB コンソールのモニタリングでは、トラフィックと帯域幅のリアルタイムのトレンドが表示されますが、これは特定の時点でのレートを反映するものです。特定の期間 (先月など) の合計トラフィックを直接集計することはできません。また、CLB のモニタリングデータは、過去 31 日間の履歴データしかクエリできません。月単位で過去のアウトバウンドトラフィックの合計を取得するには、請求書の使用量データを使用してください。
テーブルの右上隅にある [列のカスタマイズ] をクリックしてください。[使用量] の下で、[使用量] と [使用量単位] を選択し、[OK] をクリックしてください。
テーブルで、課金項目が [インターネット課金方法] である行を見つけてください。その [使用量] 列の値が、請求期間中のアウトバウンドパブリックトラフィックの合計です (通常は GB 単位)。
CLB はアウトバウンドパブリックトラフィックにのみ課金します。インバウンドトラフィックは無料であるため、請求書内のトラフィック関連の料金はすべてアウトバウンドトラフィックを表します。
バックエンド ECS のインバウンド帯域幅
リクエストが CLB によってバックエンド ECS インスタンスに転送されると、内部ネットワークトラフィックとして表示されます。したがって、バックエンド ECS インスタンスの受信トラフィックは、その内部帯域幅メトリックを使用して表示する必要があります。帯域幅は次の方法で表示できます。
対象の ECS インスタンスのインスタンス詳細ページで、[モニタリング] タブをクリックして、各バックエンドサーバーのパブリックおよび内部帯域幅の使用状況をインスタンスごとに表示します。
5 タプルごとのトラフィック詳細が必要な場合は、NIS Traffic Analyzer (有料機能) を設定してください。
CLB モニタリングの同時接続数メトリックは何を表しますか?
CLB モニタリングで表示される同時接続数の値は、アクティブな TCP/UDP セッション接続の数を表します。これは、クライアントから CLB への接続をカウントするものであり、CLB からバックエンド ECS インスタンスへの接続や、サービスにアクセスしているユーザーの数ではありません。
監視される値は、CLB インスタンスの仕様制限ではなく、実際の現在の接続数を反映します。制限に近づいているかどうかを判断するには、監視された値を「パフォーマンス仕様」で説明されている最大同時接続数と比較してください。
同時接続数が滑らかな曲線ではなく、定期的に高低を繰り返すパターンを示す場合、これは通常、一部のクライアントが定期的な接続操作を実行していることを示します。
CLB TCP リスナーはレスポンスタイム (RT) モニタリングをサポートしていますか?
いいえ。CLB の基本モニタリングでは、レイヤー 7 (HTTP/HTTPS) リスナーのみがレスポンスタイム (RT) メトリックをサポートします。レイヤー 4 (TCP/UDP) リスナーは、アプリケーションレイヤーのレスポンスタイムモニタリングをサポートしていません。TCP リスナーのレイテンシーを分析するには、Nginx ログなど、バックエンドサーバーのアクセスログを確認してください。
参考資料
CLB の監視メトリクスの詳細については、「CLB モニタリング」をご参照ください。