AWS Global Accelerator がエンドポイントのヘルスチェックに失敗するのはなぜですか?

所要時間2分
0

AWS Global Accelerator に登録されているエンドポイントが正常でない理由を知りたいです。

簡単な説明

標準アクセラレーターの場合、AWS Global Accelerator は静的 IP アドレスに関連付けられているエンドポイントの状態を自動的にチェックします。その後、ユーザートラフィックは正常なエンドポイントにのみ転送されます。

Global Accelerator では、Amazon Elastic Compute Cloud (EC2) インスタンス、Elastic IP アドレス、Application Load Balancer、Network Load Balancer の 4 種類のエンドポイントを標準アクセラレーターでサポートしています。

エンドポイントを設定するときに、Global Accelerator でヘルスチェックオプションを指定できます。ただし、アクセラレーターはこの設定を EC2 と Elastic IP のエンドポイントタイプにのみ使用します。Application Load Balancer と Network Load Balancer のエンドポイントについては、Global Accelerator はそれらのエンドポイントに関連付けられた設定済みのヘルスチェックを再利用します。

ただし、Global Accelerator がサポートするさまざまなエンドポイントタイプでは、ヘルスチェックが失敗する可能性があります。これらの失敗を回避するには、次の解決策をご覧ください。

解決方法

エンドポイントのタイプを確認します。次に、そのセクションの手順に従ってヘルスチェックのステータスを確認します。

エンドポイントタイプ: EC2 インスタンスまたは Elastic IP アドレス

1.    Global Accelerator コンソールにログインします。

2.    アクセラレーターのリストからヘルスチェック用のアクセラレーターを選択します。

3.    [リスナー] で、レビューするリスナーを選択します。

4.    [エンドポイントグループ] で、ヘルスチェックの詳細を開きます。

5.    ヘルスチェックの詳細 (エンドポイントグループに関連するパス、ポート、プロトコル) を確認します。

6.    [エンドポイント] というラベルの付いたセクションを探します。このセクションには、エンドポイントがヘルスチェックに合格したか失敗したかが表示されます。このセクションでは、ヘルスチェックが失敗したことを示すフラグが立てられます。

7.    エンドポイントのヘルスチェックに失敗した場合は、ファイアウォール、セキュリティグループ (SG)、Network Access Control List (NACL) が Amazon Route 53 ヘルスチェッカーの IP アドレスと適切なヘルスチェックポートにアクセスできることを確認します。

Global Accelerator では、ルーターとファイアウォールのルールで、Route 53 ヘルスチェッカーに関連付けられた IP アドレスからのインバウンドトラフィックを許可する必要があります。これにより、アクセラレーターは EC2 インスタンスまたは Elastic IP アドレスエンドポイントのヘルスチェックを完了できます。ポートまたは IP アドレスがブロックされている場合、ヘルスチェックは失敗します。アクセラレーターは、これらのエンドポイントを異常と報告します。承認された IP アドレスの詳細については、「Amazon Route 53 サーバーの IP アドレス範囲」を参照してください。

8.    UDP または TCP リスナーに関係なく、エンドポイントにヘルスチェック用の TCP、HTTP、または HTTPS サーバーがあることを確認します。その後、次の手順を実行します。

  • netstat コマンドを使用して、アプリケーションが必要なポートと IP アドレス (ヘルスチェックポートとアプリケーションポート用) でリッスンしているかどうかを確認します。アプリケーションが IP アドレスとポートでリッスンしていない場合は、アプリケーションを設定し、インスタンス上でローカルに動作していることを確認します。
On Windows: netstat -ano | findstr endpoint_IP_address:port
On Linux: netstat -anp | grep endpoint_IP_address:port

注: endpoint_IP_address:port をエンドポイントの IP アドレスとポート番号に置き換えてください。

  • これらのツールを使用して、ヘルスチェックポート上のエンドポイントへの接続を確認します。テストは、すべてのエンドポイントとターゲットアプリケーションインスタンスでエラーなしで成功する必要があります。アプリケーションが次の設定に従って設定されたヘルスチェックリクエストを受け取ることができることを確認します。
  • TCP ヘルスチェックの場合: telnet endpoint_IP_address health_check_port
  • HTTP ヘルスチェックの場合: curl -vko /dev/null http://endpoint_IP_address:port
  • HTTPS ヘルスチェックの場合: curl -vko /dev/null https://endpoint_IP_address:port

注: endpoint_IP_address はエンドポイントの IP アドレスに、health_check_port は関連するポート番号に置き換えてください。

  • iptables (Linux の場合) とファイアウォール (Windows の場合) がアプリケーショントラフィックをドロップしているかを確認します。

エンドポイントタイプ: Application Load Balancer または Network Load Balancer

エンドポイントタイプが Application Load Balancer または Network Load Balancer の場合、Global Accelerator はロードバランサーのヘルスチェック情報を使用してエンドポイントの状態を判断します。Global Accelerator がこれらのエンドポイントの正常性を計算する方法には、いくつか固有の考慮事項があります。

Application Load Balancer に関する考慮事項

1.    Global Accelerator がロードバランサーを正常と見なすには、Application Load Balancer のすべてのターゲットグループが正常である必要があります。Application Load Balancer でターゲットグループを設定する方法の詳細については、「ターゲットグループの状態」を参照してください。

2.    すべてのターゲットグループが空の場合、Global Accelerator は Application Load Balancer に異常があると見なします。

Network Load Balancer に関する考慮事項

1.    Global Accelerator がロードバランサーを正常と見なすには、Network Load Balancer のすべてのターゲットグループが正常である必要があります。Network Load Balancer でターゲットグループを設定する方法の詳細については、「ターゲットグループの状態」を参照してください。 

2.    いずれかのターゲットグループが空の場合、Global Accelerator は Network Load Balancer に異常があると見なします。

Elastic Load Balancing (ELB) のターゲットグループから異常な結果が報告された場合は、次の記事を参照してください。


関連情報

ヘルスチェックオプションの変更

AWS公式
AWS公式更新しました 1年前
コメントはありません

関連するコンテンツ