0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS】ロードバランサーを運用する上で重要!ターゲットグループのヘルスチェックの基本と設定方法

Posted at

はじめに

ロードバランサーは、複数のサーバー(ターゲット)に対して負荷を分散する仕組みです。高い可用性と拡張性を実現する上で欠かせないツールですが、その運用には注意が必要です。特に重要なのが、ターゲットの健全性を監視する「ヘルスチェック」の設定です。今回は、ヘルスチェックの基本的な仕組みから、具体的な設定方法、ベストプラクティスまでを解説します。

ターゲットグループとヘルスチェックの役割

ロードバランサーの構築では、まず負荷分散の対象となるターゲット(EC2インスタンスなど)を「ターゲットグループ」としてまとめます。ターゲットグループには、同じ役割を持つターゲットを登録します。
ロードバランサーは、ターゲットグループ内の「正常な」ターゲットにのみトラフィックを転送します。つまり、どのターゲットが正常で、どのターゲットが異常かを常に把握しておく必要があります。ここで活躍するのが「ヘルスチェック」です。
ヘルスチェックは、ロードバランサーからターゲットに対して定期的に行われるリクエストです。応答内容に基づいて、各ターゲットの状態が「正常」か「異常」か判定されます。異常と判定されたターゲットには、ロードバランサーからのトラフィックが流れなくなります。

ヘルスチェックの仕組み

ヘルスチェックの具体的な流れは次のようになります。

1. ロードバランサーが、指定されたプロトコル(HTTP、HTTPS、TCP)とポートを使ってターゲットにリクエストを送信
2. ターゲットからの応答を一定時間(タイムアウト)待つ
3. 応答内容に基づいてターゲットの状態を判定
 a. 正しい応答があった場合は「正常」
 b. タイムアウトしたり、指定されたHTTPステータスコード以外の応答があった場合は「異常」
4. 一定回数の成功/失敗に基づいて、最終的なターゲットの状態を決定

つまり、ヘルスチェックの設定では、リクエスト先のプロトコルやポート、パス(HTTP/HTTPSの場合)、タイムアウト値、実行間隔、異常/正常と判断する基準(しきい値)などを指定します。

ヘルスチェック設定の変更方法

ヘルスチェックの設定は、ターゲットグループの作成時に行いますが、後からの変更も可能です。変更手順は以下の通りです。

1. EC2管理コンソールにログインし、左ペインの「ロードバランシング」から「ターゲットグループ」を選択
2. 設定を変更したいターゲットグループをクリック
3. 「ヘルスチェック」タブを開き、「編集」ボタンをクリック
4. 必要な項目(プロトコル、パス、タイムアウト値など)を変更
5. 「変更内容の保存」ボタンをクリック

変更内容は数分以内に反映されます。なお、コマンドラインから設定変更する場合は、modify-target-groupコマンドを使用します。

ターゲットのヘルスステータス

ヘルスチェックの結果は、各ターゲットの「ヘルスステータス」として表示されます。主なステータスは以下の通りです。

initial:ターゲット登録直後、またはヘルスチェック開始直後の状態
healthy:ヘルスチェックに成功した状態
unhealthy:ヘルスチェックに失敗した状態
unused:ターゲットがターゲットグループに登録されていない状態
draining:ターゲットの登録解除作業中の状態

これらのステータスは、EC2管理コンソールのターゲットグループ詳細画面や、describe-target-healthコマンドで確認できます。ステータスがhealthy以外の場合は、その理由を示すエラーコードも表示されます。

ヘルスチェック設定のベストプラクティス

最後に、ヘルスチェックを効果的に活用するためのポイントをまとめます。

ターゲットの用途に合ったプロトコルとポートを使う
 → 例えばWebサーバーならHTTP/80、APIサーバーならHTTP/8080など

HTTP/HTTPSの場合、ヘルスチェック専用のエンドポイントを用意する
 → 処理の軽いシンプルなパスにする。レスポンスで過剰な処理が走らないよう注意

間隔は長めに設定する
 → ターゲットに過剰な負荷がかからないよう、60秒以上の間隔がおすすめ

異常しきい値は小さめに設定する
 → 2~3回の連続失敗で異常とみなすのが一般的

正常しきい値は大きめに設定する
 → 異常から復帰したターゲットを安全に運用に戻すため、5回以上の連続成功を条件とする

以上を踏まえつつ、実際のトラフィックパターンに合わせて設定値を微調整するのが理想的です。状況に合わせて柔軟に設定を見直し、ターゲットの状態変化を的確に捉えられるよう努めましょう。
ヘルスチェックはロードバランサーを運用する上で重要な機能ですが、設定次第で大きな効果を発揮します。本記事を参考に、ぜひ最適なヘルスチェック設定を見つけてください。適切なヘルスチェックは、ロードバランサーの安定運用に大きく役立つはずです。

参考

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?