AWSでロードバランサー(ALB)を学習していると、必ず登場するのが「Targetグループ」です。
しかし、
- ロードバランサーとの関係が曖昧
- ヘルスチェックとの違いが分からない
- なぜ直接EC2に振り分けないのか理解できない
という状態になりやすいポイントでもあります。
この記事では、Targetグループの役割・必要性・動作の仕組みを、設計イメージとあわせて分かりやすく解説します。
① Targetグループとは何か?
Targetグループとは、ロードバランサーがトラフィックを振り分ける「宛先の集合」です。
例えば、以下のようなEC2があったとします。
- 10.0.1.10
- 10.0.1.11
- 10.0.1.12
これらをひとまとめにしたグループが「Targetグループ」です。
構造は必ず次のようになります。
インターネット
↓
ALB
↓
Targetグループ
↓
EC2インスタンス群
超重要ポイント
ロードバランサーは 直接EC2へ振り分けていません。
必ず
ALB → Targetグループ → EC2
という構造になっています。
この「間に挟まる存在」が、設計上とても重要になります。
② なぜTargetグループが必要なのか?
Targetグループがあることで、設計の柔軟性が一気に上がります。
1. ヘルスチェックの管理
ヘルスチェックは Targetグループ単位で設定 します。
例:
- プロトコル:HTTP
- ポート番号:80
- パス:
/health - 成功コード:200
- チェック間隔:30秒
もしEC2(10.0.1.10)が異常になった場合、そのインスタンスは 自動的に振り分け対象から除外 されます。
つまり、
正常なターゲットのみにトラフィックを流す仕組みを持っている
のがTargetグループです。
2. 機能ごとの振り分けが可能
1つのALBに対して、複数のTargetグループを紐づけることができます。
例:
-
/api/*→ API用Targetグループ -
/admin/*→ 管理画面用Targetグループ -
/image/*→ 画像配信用Targetグループ
この仕組みにより、
- マイクロサービス構成
- 機能別のスケーリング
- 独立した障害管理
が可能になります。
③ Targetグループの動作イメージ
具体的な流れを見てみましょう。
ユーザーアクセス
↓
ALB (HTTP:80)
↓
TargetグループA
↓
EC2(10.0.1.10)
EC2(10.0.1.11)
通信の流れ
- ユーザーがブラウザからアクセス
- ALBがリクエストを受信
- ALBがTargetグループへ転送
- Targetグループ内のEC2へ振り分け
振り分け方式は基本的に ラウンドロビン方式 です。
さらに重要なのは、
ヘルスチェックで正常と判定されたインスタンスだけにトラフィックを流す
という点です。
例えば:
- 10.0.1.10 → 異常
- 10.0.1.11 → 正常
この場合、すべてのリクエストは10.0.1.11へ送られます。
④ まとめ
Targetグループは、
ロードバランサーとEC2の間にある「制御レイヤー」 です。
重要ポイントまとめ
- ロードバランサーは直接EC2へ振り分けない
- ヘルスチェックはTargetグループで管理する
- 正常なターゲットにのみトラフィックを流す
- 複数グループで柔軟な設計が可能
ロードバランサーを正しく理解するには、
- ALB
- ヘルスチェック
- Targetグループ
この3つを セットで理解することが重要 です。
Targetグループを理解できると、AWSのネットワーク設計が一段レベルアップします。