カテゴリ: AWS 更新日: 2026/01/31

AWS ELBでヘルスチェックを設定する方法とポイントを初心者向けに解説!

AWS ELBでヘルスチェックを設定する方法とポイント
AWS ELBでヘルスチェックを設定する方法とポイント

先生と生徒の会話形式で理解しよう

生徒

「先生、AWSのロードバランサーでヘルスチェックっていう設定があるんですが、これは何をするんですか?」

先生

「ヘルスチェックは、ターゲットのサーバーやEC2インスタンスが正常に動いているかを自動的に確認する仕組みですよ。ELBが定期的に確認して、問題があるサーバーにはリクエストを送らないようにしてくれます。」

生徒

「なるほど!じゃあ、もし一台のサーバーが落ちても、他のサーバーに振り分けてくれるんですね?」

先生

「その通りです。だから高可用性(コウカヨウセイ)や信頼性を確保するためにはヘルスチェックが欠かせないんです。」

1. ヘルスチェックとは?

1. ヘルスチェックとは?
1. ヘルスチェックとは?

ヘルスチェックは、AWS Elastic Load Balancer(エラスティックロードバランサー、略してELB)がターゲットグループ内のEC2(イーシーツー)インスタンスやコンテナの正常性を確認する機能です。設定されたエンドポイントに対して定期的にリクエストを送り、応答が正常かどうかを判断します。

これにより、異常が発生したサーバーを自動的に除外し、正常なサーバーだけにトラフィックを振り分けることができます。

2. ヘルスチェックの基本パラメータ

2. ヘルスチェックの基本パラメータ
2. ヘルスチェックの基本パラメータ

ELBで設定するヘルスチェックにはいくつかの重要なパラメータがあります。初心者でも理解しやすいように代表的なものを紹介します。

  • プロトコル:HTTP(エイチティーティーピー)、HTTPS(エイチティーティーピーエス)、TCP(ティーシーピー)など。
  • パス:例えば「/health」や「/index.html」など。サーバーが応答できるエンドポイントを指定します。
  • ヘルシーしきい値:サーバーが「正常」と判断されるまでに必要な連続成功回数。
  • アンヘルシーしきい値:サーバーが「異常」と判断されるまでに必要な連続失敗回数。
  • タイムアウト:応答を待つ時間。
  • 間隔:ヘルスチェックを実行する間隔。

3. ヘルスチェックを設定する手順

3. ヘルスチェックを設定する手順
3. ヘルスチェックを設定する手順

実際にAWSコンソールからヘルスチェックを設定する手順は以下の通りです。

  1. AWSマネジメントコンソールにログインし、「EC2」から「ロードバランサー」を選択。
  2. 対象のELBを選び、「ターゲットグループ」を確認。
  3. ターゲットグループの「ヘルスチェック」タブをクリック。
  4. プロトコル(HTTPやHTTPS)を選択し、パスを指定。
  5. タイムアウト、間隔、しきい値を適切に設定。
  6. 保存して設定を有効化。

4. ヘルスチェックのポイントと注意点

4. ヘルスチェックのポイントと注意点
4. ヘルスチェックのポイントと注意点

ヘルスチェックを正しく機能させるためには、いくつかのポイントを押さえておく必要があります。

  • 実際に稼働しているアプリケーションが応答できるパスを指定する。
  • ヘルスチェック専用のエンドポイントを用意すると管理しやすい。
  • しきい値は厳しすぎると正常なサーバーを外してしまうので注意。
  • タイムアウトや間隔はアプリケーションの応答時間に合わせて調整する。

5. 初心者でも分かる例え話

5. 初心者でも分かる例え話
5. 初心者でも分かる例え話

ヘルスチェックを人間の健康診断に例えるとわかりやすいです。会社が社員に定期的な健康診断を受けさせて、体調が悪い人には無理に仕事をさせないのと同じです。ロードバランサーも定期的に「サーバーは元気ですか?」と確認し、問題があるサーバーにはリクエストを振らないようにします。これにより、全体のシステムが安定して動作します。

6. ヘルスチェックでよくあるトラブル

6. ヘルスチェックでよくあるトラブル
6. ヘルスチェックでよくあるトラブル

初心者が設定でつまずきやすいポイントをまとめます。

  • セキュリティグループの設定が不十分で、ヘルスチェックの通信が通らない。
  • 指定したパスが存在しない、または正しいステータスコードを返さない。
  • アプリケーションの応答時間が長く、タイムアウトに引っかかる。

こうした問題は、セキュリティグループのルールを確認したり、アプリケーション側でヘルスチェック専用エンドポイントを準備することで解決できます。

まとめ

まとめ
まとめ

ここまでAWSのELB(Elastic Load Balancer)におけるヘルスチェックの基本から設定方法、注意点までを詳しく解説してきました。クラウドインフラを運用する上で、システムの「止まらない仕組み」を作ることは最も重要なミッションの一つです。その中核を担うのが、今回学んだヘルスチェック機能です。

ヘルスチェックの重要性を再確認

ウェブサイトやアプリケーションを公開していると、予期せぬエラーやサーバーの過負荷によって、一部のインスタンスが正常に動作しなくなることがあります。もしロードバランサーが異常なサーバーにユーザーを送り続けてしまったら、そのユーザーはエラー画面を目にすることになり、サービスの信頼性は大きく損なわれます。

ヘルスチェックを正しく設定しておくことで、ELBは「どのサーバーが元気で、どのサーバーが休憩が必要か」を24時間365日、休まずに監視し続けてくれます。この自動化された仕組みこそが、AWSを利用する大きなメリットの一つと言えるでしょう。

実践的な設定例:Python (Flask) でのヘルスチェック用エンドポイント

記事の中でも触れましたが、ヘルスチェックには「専用のエンドポイント」を用意するのがベストプラクティスです。例えば、Pythonの軽量フレームワークであるFlask(フラスク)を使用して、ヘルスチェック専用のパスを作成する場合のコード例を見てみましょう。


from flask import Flask, jsonify

app = Flask(__name__)

# メインのコンテンツ
@app.route('/')
def index():
    return "こんにちは!これはメインページです。"

# ヘルスチェック用のエンドポイント
# ELBはこのURL(/health)に定期的にアクセスします
@app.route('/health')
def health_check():
    # データベースの接続確認など、内部のステータスチェックをここで行うのが理想
    # 正常な場合は HTTP 200 OK を返却する
    return jsonify({"status": "healthy"}), 200

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=80)

サーバー側での確認方法(Linuxコマンド)

実際にELBからのヘルスチェックが届いているかどうかは、Webサーバー(ApacheやNginx)のアクセスログを確認することで把握できます。Linuxサーバーにログインして、リアルタイムでログを追跡するコマンドを実行してみましょう。


tail -f /var/log/nginx/access.log
10.0.1.50 - - [29/Jan/2026:12:00:01 +0900] "GET /health HTTP/1.1" 200 20 "-" "ELB-HealthChecker/2.0"
10.0.1.50 - - [29/Jan/2026:12:00:31 +0900] "GET /health HTTP/1.1" 200 20 "-" "ELB-HealthChecker/2.0"

このように、「ELB-HealthChecker」というユーザーエージェントからのアクセスが、設定した間隔(この例では30秒おき)で届いていれば、ヘルスチェックは正常に機能しています。もしログが全く流れてこない場合は、セキュリティグループ(ファイアウォール)の設定で、ELBからの通信を許可しているか(ポート80番など)を再確認してください。

運用のコツ:しきい値のチューニング

最後に、運用におけるアドバイスです。ヘルスチェックの設定値は、厳しすぎても緩すぎてもいけません。

  • 判定が厳しすぎる場合: ネットワークの一時的なゆらぎで、正常なサーバーが切り離されてしまい、残ったサーバーに負荷が集中する恐れがあります。
  • 判定が緩すぎる場合: 実際に故障しているのに「正常」と判断され続け、ユーザーにエラーを返し続けてしまいます。

まずはデフォルト値で運用を開始し、アプリケーションの特性に合わせて、タイムアウト時間やしきい値を微調整していくのが、安定稼働への近道です。AWSのCloudWatch(クラウドウォッチ)などの監視ツールも併用しながら、最適な設定を見つけていきましょう。

先生と生徒の振り返り会話

生徒

「先生、詳しい解説ありがとうございました!ヘルスチェック専用のプログラムをわざわざ用意する理由がよくわかりました。単にトップページを確認するだけじゃなくて、プログラムが本当に正常に動いているかを確認させるのが大事なんですね。」

先生

「その通り!素晴らしい気づきですね。例えば、トップページは表示できても、データベースへの接続が切れている場合は、そのサーバーは『異常』として扱いたいですよね。そういった細かい制御が、/health などの専用エンドポイントなら可能になります。」

生徒

「あと、Linuxのコマンドで実際にELBがアクセスしてきているのを確認する方法も勉強になりました。ログを見れば、設定が正しいか一目瞭然ですね。セキュリティグループの設定ミスでハマりそうだったので、先に教えてもらえてよかったです。」

先生

「そうですね。クラウドではネットワークのつながりが目に見えないので、ログを確認する癖をつけるのはとても良いことです。これでELBの基本的な運用はバッチリですね。次は、複数のアベイラビリティゾーンをまたいだ冗長構成についても学んでいきましょうか。」

生徒

「はい!もっとAWSを使いこなせるように頑張ります!」

カテゴリの一覧へ
新着記事
New1
AWS PrivateLink
AWS PrivateLinkのユースケースと業界別活用事例|セキュアな通信の決定版
New2
AWS PrivateLink
AWS PrivateLinkのログ取得とトラブル対応手順を完全ガイド!初心者でもわかるセキュアな接続確認方法
New3
ファイル・ディレクトリ構造
Linuxの/etcディレクトリとは?設定ファイルの役割を初心者向けに徹底解説
New4
AWS Lambda
AWS Lambdaでログを確認する方法を完全解説!CloudWatch Logsで初心者でも安心運用
人気記事
No.1
Java&Spring記事人気No1
S3(オブジェクトストレージ)
AWS S3の料金体系をわかりやすく解説
No.2
Java&Spring記事人気No2
Linux ディストリビューション
Linuxディストリビューションとは?OSとの関係や初心者におすすめの種類を徹底解説!
No.3
Java&Spring記事人気No3
ELB(ロードバランサー)
AWS ELBでターゲットグループを設定する方法を初心者向けに解説!
No.4
Java&Spring記事人気No4
シェルとターミナル基礎
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.5
Java&Spring記事人気No5
Linux ディストリビューション
Ubuntuとは何か?特徴と向いている用途を初心者向けに徹底解説!
No.6
Java&Spring記事人気No6
AWS 基本
AWSのサービスのステータス確認方法(AWS Health Dashboard)
No.7
Java&Spring記事人気No7
RDS(データベース)
AWS RDSのセキュリティグループ設定方法を解説!初心者でも安心のクラウドデータベース対策
No.8
Java&Spring記事人気No8
ELB(ロードバランサー)
AWSのNetwork Load Balancer(NLB)の特徴と使い方を解説!初心者向けロードバランサー入門