AWS ELBでヘルスチェックを設定する方法とポイントを初心者向けに解説!
生徒
「先生、AWSのロードバランサーでヘルスチェックっていう設定があるんですが、これは何をするんですか?」
先生
「ヘルスチェックは、ターゲットのサーバーやEC2インスタンスが正常に動いているかを自動的に確認する仕組みですよ。ELBが定期的に確認して、問題があるサーバーにはリクエストを送らないようにしてくれます。」
生徒
「なるほど!じゃあ、もし一台のサーバーが落ちても、他のサーバーに振り分けてくれるんですね?」
先生
「その通りです。だから高可用性(コウカヨウセイ)や信頼性を確保するためにはヘルスチェックが欠かせないんです。」
1. ヘルスチェックとは?
ヘルスチェックは、AWS Elastic Load Balancer(エラスティックロードバランサー、略してELB)がターゲットグループ内のEC2(イーシーツー)インスタンスやコンテナの正常性を確認する機能です。設定されたエンドポイントに対して定期的にリクエストを送り、応答が正常かどうかを判断します。
これにより、異常が発生したサーバーを自動的に除外し、正常なサーバーだけにトラフィックを振り分けることができます。
2. ヘルスチェックの基本パラメータ
ELBで設定するヘルスチェックにはいくつかの重要なパラメータがあります。初心者でも理解しやすいように代表的なものを紹介します。
- プロトコル:HTTP(エイチティーティーピー)、HTTPS(エイチティーティーピーエス)、TCP(ティーシーピー)など。
- パス:例えば「/health」や「/index.html」など。サーバーが応答できるエンドポイントを指定します。
- ヘルシーしきい値:サーバーが「正常」と判断されるまでに必要な連続成功回数。
- アンヘルシーしきい値:サーバーが「異常」と判断されるまでに必要な連続失敗回数。
- タイムアウト:応答を待つ時間。
- 間隔:ヘルスチェックを実行する間隔。
3. ヘルスチェックを設定する手順
実際にAWSコンソールからヘルスチェックを設定する手順は以下の通りです。
- AWSマネジメントコンソールにログインし、「EC2」から「ロードバランサー」を選択。
- 対象のELBを選び、「ターゲットグループ」を確認。
- ターゲットグループの「ヘルスチェック」タブをクリック。
- プロトコル(HTTPやHTTPS)を選択し、パスを指定。
- タイムアウト、間隔、しきい値を適切に設定。
- 保存して設定を有効化。
4. ヘルスチェックのポイントと注意点
ヘルスチェックを正しく機能させるためには、いくつかのポイントを押さえておく必要があります。
- 実際に稼働しているアプリケーションが応答できるパスを指定する。
- ヘルスチェック専用のエンドポイントを用意すると管理しやすい。
- しきい値は厳しすぎると正常なサーバーを外してしまうので注意。
- タイムアウトや間隔はアプリケーションの応答時間に合わせて調整する。
5. 初心者でも分かる例え話
ヘルスチェックを人間の健康診断に例えるとわかりやすいです。会社が社員に定期的な健康診断を受けさせて、体調が悪い人には無理に仕事をさせないのと同じです。ロードバランサーも定期的に「サーバーは元気ですか?」と確認し、問題があるサーバーにはリクエストを振らないようにします。これにより、全体のシステムが安定して動作します。
6. ヘルスチェックでよくあるトラブル
初心者が設定でつまずきやすいポイントをまとめます。
- セキュリティグループの設定が不十分で、ヘルスチェックの通信が通らない。
- 指定したパスが存在しない、または正しいステータスコードを返さない。
- アプリケーションの応答時間が長く、タイムアウトに引っかかる。
こうした問題は、セキュリティグループのルールを確認したり、アプリケーション側でヘルスチェック専用エンドポイントを準備することで解決できます。