Amazon Elastic Load Balancing(ELB)監視

Amazon Elastic Load Balancing――概要

Elastic Load Balancing(ELB)は、AWSが提供するロードバランシングサービスです。AWS ELBは自動的に流入アプリケーショントラフィックを、EC2インスタンスなどのターゲットに分散し、トラフィック量に合わせてリソースのスケール管理を行います。
ELBにより、流入アプリケーションとネットワークトラフィックに合わせたキャパシティ調整を行えます。

ELBでは、Application Load Balancer、Network Load Balancer、Classic Load Balancerをサポートしています。

  • Application Load Balancer:高いトラフィックルーティング機能をもち、アプリケーションレベルで、別サービスやコンテナーからのトラフィックに対応できます。
  • Network Load Balancer:多数の要求に応えながら遅延を短く保てるため、TCPトラフィックのロードバランスを最適化できます。
  • Classic Load Balancer:上記2つは動的なマッピングですが、CLBは静的なマッピングです。
    旧型のロードバランサーですが、後方互換性のために残されています。

Amazon Elastic Load Balancing監視――メリット

Applications ManagerのAWS ELB監視を監視することで、トラフィックパターンとロードバランサーの問題分析や監視が可能なため、パフォーマンスの最適化に有効です。
Applications ManagerでAWS ELBを監視するメリットは次のとおりです。

  • パフォーマンスデータをリアルタイムで取得:正常なホストの数、遅延、リクエスト、エラー率などのデータを取得します。
  • 接続数の統計を分析:接続の拒否数を監視し、ロードバランサー機能を正常に保つことで、ターゲットへのリクエストルーティングを適切に行います。Application Load Balancerの処理ルール数やデータ量(バイト)を監視できます。
  • 正常なホストと異常なホストの数を追跡:Application Load Balancerに登録されている正常なターゲット数を監視します。
  • ターゲットのHTTPエラーレスポンスコードに関する監視とトラブルシュート:ロードバランサーで発生した、クライアントやサーバーのエラーの統計を収集します。ロードバランサーとターゲットインスタンスの間で確立できなかったTLS接続の数を監視します。グループ内のターゲットから発生したHTTP 4xx/5xxエラーも収集できます。
  • パフォーマンス低下をリアルタイムに検出して迅速に修正:ELBシステムの拡張性を検出し、拡張されたロードバランサーの監視を迅速に開始できます。ロードバランサーへのリクエスト詳細メトリックで、ELB設定を監視できます。
  • パフォーマンスの問題やボトルネックを、迅速に通知します。エンドユーザー体感に影響が及ぶ前に、直ちに修正アクションを行えます。

Amazon ALB/NLB監視の新規追加

監視のしくみ:CloudWatch、SDKを利用したAWS API

Amazon ELB監視設定の要件こちらのドキュメントを参照ください。

Amazon監視の追加方法は、次のとおりです。

  1. [新規監視]→[新規監視の追加]をクリックします。
  2. クラウドアプリケーションカテゴリの[Amazon]を選択します。
  3. Amazon監視の[表示名]を指定します。
  4. Amazonサービスで、[ALB]または[NLB]を選択します。
  5. AWSアカウントの情報を取得するための[アクセスキーID]を入力します。アクセスキーは20桁の英数字です。
  6. AWSの[シークレットアクセスキー]を入力します。シークレットキーは、40桁の英数字です。
  7. アカウントタイプを選択します。新規追加時のデフォルトのアカウントタイプは、[AWSグローバル]です。AWS中国リージョンのサービスを監視するには、[AWS中国]を選択してください。
  8. ポーリング間隔を分単位で指定します。
  9. Enterprise Editionで、Adminサーバーから監視を新規追加するには、Managedサーバーを選択します。
  10. AWSリソースを関連付ける監視グループを検索欄のドロップダウンから選択します(任意項目)。監視は複数のグループに関連付けられます。
  11. [監視の追加]をクリックすると、AWSリソースを検出し、監視が開始します。

監視パラメーター

[監視]タブをクリックし、監視のカテゴリビューへ移動します。クラウドアプリケーション欄の[ALB]または[NLB]をクリックします。一括設定ビューで、次のタブが表示されます。

  • [可用性]タブ:過去24時間または30日の可用性履歴を表示します。
  • [パフォーマンス]タブ:過去24時間または30日のステータスとイベントを表示します。
  • [リストビュー]タブ:監視の一括設定が可能です。

監視名をクリックすると、Amazon ALBメトリックが次のタブで表示されます。

監視名をクリックすると、Amazon NLBメトリックが次のタブで表示されます。

Application Load Balancerのメトリック

Applications Load Balancer:概要

パラメーター 説明
平均遅延
平均ターゲット遅延 リクエストがロードバランサーから送信されてから、ターゲットからのレスポンスを受信するまでの経過時間を表示します(秒)。アクセスログのtarget_processing_timeに相当します。
リクエスト
リクエスト総数 IPv4とIPv6のリクエスト処理件数を表示します。この数には、ロードバランサーのターゲットからのレスポンス内にあるリクエストのみ該当します。
リクエスト/分 IPv4とIPv6のリクエスト処理速度を表示します(数/分)。
接続
アクティブな接続 現在のアクティブなTCP接続で、クライアントからロードバランサー、およびロードバランサーからターゲットへの接続数の合計を表示します。
新しい接続 クライアントからロードバランサー、およびロードバランサーからターゲットへの新規接続数の合計を表示します。
拒否された接続 ロードバランサーの接続上限のため、拒否された接続数の合計を表示します。
処理済みバイト数
処理済みデータ ロードバランサーがIPV4とIPv6で処理した総データ量を表示します(バイト)。
処理済みデータ/分 ロードバランサーのIPv4とIPv6のデータ処理速度を表示します(バイト/分)。
ルール評価
ルール評価 1時間平均のリクエストレートが指定されているロードバランサーの場合、ロードバランサーが処理したルール数を表示します。
消費済みLBキャパシティユニット
消費済みキャパシティユニット ロードバランサーが使用しているLCU(ロードバランサーキャパシティユニット)の数です。

Applications Load Balancer:エラー

パラメーター 説明
接続エラー
クライアントTLSネゴシエーションエラー クライアントからロードバランサーへ、セッションを確立できなかったTLS接続数を表示します。
ターゲットTLSネゴシエーションエラー ロードバランサーからターゲットへ、セッションを確立できなかったTLS接続数を表示します。
ターゲット接続エラー ターゲットとの間で確立できなかった接続数を表示します。
ロードバランサーエラー
ELBクライアントエラー ロードバランサーに起因するクライアントエラーの数を示します。
ELBサーバーエラー ロードバランサーに起因するサーバーエラーの数を示します。

Applications Load Balancer:ターゲットグループ

パラメーター 説明
設定情報
ターゲットグループ ターゲットグループの名前です。
ポート ターゲットとの接続に使うポートを表示します。
プロトコル ターゲットとの接続に使うプロトコルを表示します。
ターゲットタイプ ターゲットをターゲットグループに登録する際に指定するターゲットのタイプを表示します。
タイムアウト(秒) ターゲットからのレスポンスがあるまで、待機する時間を表示します(秒)。
間隔(秒) 個々のターゲットのステータスチェックの間隔を、およその時間で表示します(秒)。
正常なホストと異常なホスト
正常ホストの数 ステータスチェックで正常と判定されたターゲットの数を表示します。
異常ホストの数 ステータスチェックで異常と判定されたターゲットの数を表示します。
ターゲットグループのリクエスト
リクエスト総数 ロードバランサーが受信したIPv4とIPv6のリクエストの数を表示します。
パフォーマンスメトリック
ターゲットグループ ターゲットグループの名前です。
正常ホスト ステータスチェックで正常と判定されたターゲットの数を表示します。
非正常ホスト ステータスチェックで異常と判定されたターゲットの数を表示します。
平均ターゲット遅延(秒) ロードバランサーでリクエストが行われてから、ターゲットからのレスポンスを受信するまでの経過時間を表示します(秒)。アクセスログのtarget_processing_timeに該当します。
リクエスト総数 IPv4とIPv6のリクエスト処理件数を表示します。この数には、ロードバランサーのターゲットからのレスポンス内にあるリクエストのみ該当します。
ターゲットあたりのリクエスト ターゲットグループ内の各ターゲットが受信した、リクエスト数の平均を表示します。単一のターゲットグループディメンジョンを指定してください。このメトリックはターゲットがLambda関数の場合、適用されません。
エラー
ターゲットグループ ターゲットグループの名前です。
ターゲット接続エラー ターゲットとの間で確立できなかった接続数を表示します。
ターゲットTLS
ネゴシエーションエラー
ロードバランサーからターゲットへセッションを確立できなかったTLS接続数を表示します。
ターゲットHTTP 5XXエラー ロードバランサーに起因するHTTP 5XXサーバーエラーコード数を表示します。
ターゲットHTTP 4XXエラー ロードバランサーに起因するHTTP 4XXクライアントエラーコード数を表示します。
ターゲットHTTP 3XXエラー ロードバランサーに起因する、HTTP 3XXリダイレクトコード数を表示します。
ターゲットHTTP 2XXエラー ターゲットから発生したHTTPレスポンスコード数を表示します。

Applications Load Balancer:ターゲット

パラメーター 説明
ターゲット詳細
ターゲットID ターゲットのIDです。ターゲットグループのターゲットタイプがインスタンスの場合、インスタンスIDを表示します。
ターゲットグループ ターゲットグループの名前です。
ポート ターゲットがリスニングを行うポートです。
ステータス ターゲットのステータスを表示します。初期状態、正常、異常、未使用、ドレイン中、利用不能があります(initial、healthy、unhealthy、unused、draining、unavailable)。
理由
  • 正常:ターゲットのステータスが正常であれば、 理由は表示されません。
  • 初期状態 :ターゲットのステータスが初期状態であれば、理由は次のいずれかで表示されます。
    • Elb.RegistrationInProgress:ターゲットがロードバランサーの登録タスクが進行中です。
    • Elb.InitialHealthChecking:ロードバランサーがステータスチェック中のため、最低限のステータスチェックをターゲットに実行しています。
  • 異常:ターゲットのステータスが異常であれば、理由は次のいずれかで表示されます。
    • Target.ResponseCodeMismatch:ステータスチェックで期待したHTTPコードが返って来ません。
    • Target.Timeout:ステータスチェックのリクエストがタイムアウトしました。
    • Target.FailedHealthChecksターゲットタイムアウト、ターゲットレスポンスの形式不正、理由不明なステータスチェック失敗により、ステータスチェックができません。
    • Elb.InternalError:ステータスチェックが内部エラーで失敗しました。
  • Unused:ターゲットのステータスが未使用であれば、理由は次のいずれかで表示されます。
    • Target.NotRegistered:ターゲットがターゲットグループに登録されていません。
    • Target.NotInUse:ターゲットグループを利用しているロードバランサーが存在しないか、ターゲットがロードバランサーが無効のアベイラビリティゾーンに存在します。
    • Target.IpUnusable:ターゲットIPアドレスが、ロードバランサーでの利用に予約されています
    • Target.InvalidState:ターゲットが停止しているか削除されています。
  • Draining:ターゲットのステータスがドレイン中であれば、理由は次のように表示されます。
    • Target.DeregistrationInProgress:ターゲットが登録解除中であり、解除タイムアウトがまだ発生していません。
  • Unavailable:ターゲットのステータスが利用不能であれば、理由は次のように表示されます。
    • Target.HealthCheckDisabled:ターゲットグループでステータスチェックが無効になっています。

Applications Load Balancer:設定

パラメーター 説明
設定詳細
ロードバランサーID ロードバランサーのIDです。
リージョン ロードバランサーが設定されているAWSリージョンです。
ステータス ロードバランサーのステータスです。(アクティブ、プロビジョニング中、アクティブ損傷あり、失敗[active、provisioning、active_impaired、failed]).
タイプ ロードバランサーのタイプです。ApplicationかNetworkで表示します。
DNS名 ロードバランサーのパブリックDNS名です。
スキーム Internet-facingまたはInternalで表示します。Internet-facingはクライアントからインターネットを経由してアクセスするロードバランサー、InternalはクライアントからVPCを経由してでアクセスするロードバランサーに該当します。
IPアドレスタイプ ロードバランサーのサブネットで用いるIPアドレスのタイプです。
VPC ID ロードバランサーのVPC IDです。
アベイラビリティゾーン ロードバランサーのアベイラビリティゾーンです。
セキュリティグループ ロードバランサーのセキュリティグループIDです。
作成時刻 ロードバランサーが作成された日時です。

Network Load Balancerのメトリック

Network Load Balancer:概要

パラメーター 説明
TCP接続数
アクティブ接続 現在のアクティブなTCP接続で、クライアントからロードバランサー、およびロードバランサーからターゲットへの接続数の合計を表示します。
新しい接続 クライアントからロードバランサー、およびロードバランサーからターゲットへの新規接続数の合計を表示します。
TLS接続数
アクティブTLS接続 クライアントからターゲットへの同時TLS接続数の合計を表示します。
新規TLS接続 クライアントからターゲットへの一定期間における新規TLS接続の合計を表示します。
処理データ(TCP)
処理済みデータ(TCP) ロードバランサーの総データ処理量を表示します(バイト)。
データ処理レート(TCP) ロードバランサーのデータ処理速度を表示します(バイト/秒)。.
消費済みLBキャパシティユニット
消費済みキャパシティユニット ロードバランサーが使用しているLCU(ロードバランサーキャパシティユニット)の数です。支払いは1時間ごとの使用したLCU数で算出されます。

Network Load Balancer:エラー

パラメーター 説明
接続エラー
クライアントTLSネゴシエーションエラー クライアントとTLSリスナーのネゴシエーション中に失敗したTLSハンドシェイクの合計を表示します。
ターゲットTLSネゴシエーションエラー TLSリスナーとターゲットのネゴシエーション中に失敗したTLSハンドシェイクの合計を表示します。
パケット統計のリセット
クライアントリセットパケット クライアントがターゲットに送ったRST(リセット)パケットの合計を表示します。
ロードバランサーリセットパケット ロードバランサーから発生したRST(リセット)パケットの合計を表示します。
ターゲットリセットパケット ターゲットがクライアントに送ったRST(リセット)パケットの合計を表示します。

Network Load Balancer:ターゲットグループ

パラメーター 説明
正常なホストと異常なホスト
正常ホストの数 ステータスチェックで正常と判定されたターゲットの数を表示します。
異常ホストの数 ステータスチェックで異常と判定されたターゲットの数を表示します。
ターゲットグループデータ
ターゲットグループ ターゲットグループの名前です。
ポート ターゲットとの接続に使用するポートです。
プロトコル ターゲットとの接続に使用するプロトコルです。
ターゲットタイプ ターゲットをターゲットグループに登録する際に指定するターゲットのタイプです。
タイムアウト(秒) ターゲットからのレスポンスがあるまで待機する時間です(秒)。
間隔(秒) 個々のターゲットのステータスチェックの間隔をおよその時間で表示します(秒)。
正常ホスト 正常と判定されているターゲットの数を示します。
非正常ホスト 異常と判定されているターゲットの数を示します。

Network Load Balancer:ターゲット

パラメーター 説明
ターゲット詳細
ターゲットID ターゲットのIDを指します。ターゲットグループのターゲットタイプがインスタンスの場合、インスタンスIDを表示します。
ターゲットグループ ターゲットグループの名前です。
ポート ターゲットがリスニングを行うポートです。
ステータス ターゲットのステータスを表示します。初期状態、正常、異常、未使用、ドレイン中、利用不能があります(initial、healthy、unhealthy、unused、draining、unavailable)。
理由
  • 正常:ターゲットのステータスが正常であれば、 理由は表示されません。
  • 初期状態 :ターゲットのステータスが初期状態であれば、理由は次のいずれかで表示されます。
    • Elb.RegistrationInProgress:ターゲットがロードバランサーの登録タスクが進行中です。
    • Elb.InitialHealthChecking:ロードバランサーがステータスチェック中のため、最低限のステータスチェックをターゲットに実行しています。
  • 異常:ターゲットのステータスが異常であれば、理由は次のいずれかで表示されます。
    • Target.ResponseCodeMismatch:ステータスチェックで期待したHTTPコードが返って来ません。
    • Target.Timeout:ステータスチェックのリクエストがタイムアウトしました。
    • Target.FailedHealthChecksターゲットタイムアウト、ターゲットレスポンスの形式不正、理由不明なステータスチェック失敗により、ステータスチェックができません。
    • Elb.InternalError:ステータスチェックが内部エラーで失敗しました。
  • Unused:ターゲットのステータスが未使用であれば、理由は次のいずれかで表示されます。
    • Target.NotRegistered:ターゲットがターゲットグループに登録されていません。
    • Target.NotInUse:ターゲットグループを利用しているロードバランサーが存在しないか、ターゲットがロードバランサーが無効のアベイラビリティゾーンに存在します。
    • Target.IpUnusable:ターゲットIPアドレスが、ロードバランサーでの利用に予約されています
    • Target.InvalidState:ターゲットが停止しているか削除されています。
  • Draining:ターゲットのステータスがドレイン中であれば、理由は次のように表示されます。
    • Target.DeregistrationInProgress:ターゲットが登録解除中であり、解除タイムアウトがまだ発生していません。
  • Unavailable:ターゲットのステータスが利用不能であれば、理由は次のように表示されます。
    • Target.HealthCheckDisabled:ターゲットグループでステータスチェックが無効になっています。

Network Load Balancer:設定

パラメーター 説明
設定詳細
ロードバランサーID ロードバランサーのIDです。
リージョン ロードバランサーが設定されているAWSリージョンです。
ステータス ロードバランサーのステータスです。(アクティブ、プロビジョニング中、アクティブ損傷あり、失敗[active、provisioning、active_impaired、failed]).
タイプ ロードバランサーのタイプです。ApplicationまたはNetworkで表示されます。
DNS名 ロードバランサーのパブリックDNS名です。
スキーム Internet-facingまたはInternalで表示します。Internet-facingはクライアントからインターネットを経由してアクセスするロードバランサー、InternalはクライアントからVPCを経由してロードバランサーアクセスするロードバランサーに該当します。
IPアドレスタイプ ロードバランサーのサブネットで使用するIPアドレスのタイプです。
VPC ID ロードバランサーのVPC IDです。
アベイラビリティゾーン ロードバランサーのアベイラビリティゾーンです。
作成時刻 ロードバランサーが作成された日時です。