【AWS】ELBのヘルスチェックとは?

2019年3月13日

本稿ではAWSのELBの機能の一つであるヘルスチェックについて解説していきます。

 

 

ヘルスチェックとは?

簡潔にいうとELBと対象サーバーが正常に接続しているかを自動で確認する機能です。

ELB経由で対象サーバーに設置されているWebページが見れるかどうかを一定時間ごとにチェックしてくれます。

 

 

ヘルスチェックの設定

ヘルスチェックの設定

ヘルス設定には、登録されているインスタンスのヘルス状態を判断するめに、ロードバランサーが使用する情報が含まれています。

次の表は、ヘルスチェック設定のフィールドの説明を示しています。

フィールド 説明
ping プロトコル インスタンスと接続するために使用するプロトコル。

有効な値: TCPHTTPHTTPS、および SSL

コンソールのデフォルト: HTTP

CLI/API のデフォルト: TCP

ping ポート インスタンスに接続するために使用するポート (protocol:port ペアなど)。ロードバランサーが、設定された応答タイムアウト期間内に指定されたポートでインスタンスに接続できない場合、インスタンスは異常と見なされます。

Ping プロトコル: TCPHTTPHTTPS、および SSL

Ping ポート範囲: 1 ~ 65535

コンソールのデフォルト: HTTP:80

CLI/API のデフォルト: TCP:80

ping パス HTTP または HTTPS リクエストの送信先。

HTTP または HTTPS GET リクエストが ping ポートと ping パス上のインスタンスに発行されます。ロードバランサーが応答タイムアウト時間内に “200 OK” 以外の応答を受信した場合、インスタンスは異常と見なされます。応答に本文が含まれている場合、アプリケーションは Content-Length ヘッダーを 0 以上の値に設定するか、値を “chunked” に設定した Transfer-Encoding を指定する必要があります。

デフォルト: /index.html

応答タイムアウト ヘルスチェックからの応答を受け取るまで待つ時間 (秒単位)。

有効な値: 2 ~ 60

デフォルト: 5

HealthCheck 間隔 個々のインスタンスのヘルスチェックの間隔 (秒単位)。

有効な値: 5 ~ 300

デフォルト: 30

非正常のしきい値 EC2 インスタンスで異常が発生していることを宣言する前に連続して失敗したヘルスチェックの数。

有効な値: 2 ~ 10

デフォルト: 2

正常のしきい値 EC2 インスタンスが正常であることを宣言する前に連続して成功したヘルスチェックの数。

有効な値: 2 ~ 10

デフォルト: 10

ロードバランサーは、指定されたポート、プロトコル、および ping パスを使用して、Interval 秒ごとに、登録された各インスタンスにヘルスチェックリクエストを送信します。各ヘルスチェックリクエストは独立しており、間隔全体で存続します。インスタンスが応答するまでにかかる時間は、次のヘルスチェックまでの間隔に影響を与えません。ヘルスチェックが UnhealthyThresholdCount 連続失敗数のしきい値を超えると、ロードバランサーはインスタンスをサービス停止中の状態にします。ヘルスチェックが HealthyThresholdCount 連続成功数のしきい値を超えると、ロードバランサーはインスタンスを実行中の状態に戻します。

インスタンスがヘルスチェックの間隔内に 200 応答コードを返せば、HTTP/HTTPS ヘルスチェックは正常です。TCP 接続が成功すれば、TCP ヘルスチェックは正常です。SSL ハンドシェイクが成功すれば、SSL ヘルスチェックは正常です。

出典:ヘルスチェックの設定

 

 

NetworkAWS

Posted by Hiro