▪️目的
AWSでWebシステムを構築していると、ELB(Elastic Load Balancing)と一緒に「ターゲットグループ」という言葉が登場します。
ELBは、ユーザーからの通信を複数のサーバーなどへ振り分けるロードバランサーです。
では、ELBはどのサーバーに通信を送ればよいのでしょうか?
そこで登場するのがターゲットグループです。
この記事では、AWS初心者向けにターゲットグループの役割や仕組みについて解説します。
この記事を読むことで、以下の内容が分かるようになります。
- ターゲットグループとは何か
- ELBとターゲットグループの関係
- ターゲットとは何か
- ヘルスチェックとの関係
- EC2をターゲットにする仕組み
- ECS/Fargateでのターゲットグループ
- リスナーとの関係
▪️ターゲットグループとは?
ターゲットグループとは、ELBが通信を転送する先をまとめたグループです。
例えば、EC2を3台用意してWebサービスを動かしているとします。
EC2-1
EC2-2
EC2-3
この3台をターゲットグループに登録すると、
ターゲットグループ
├── EC2-1
├── EC2-2
└── EC2-3
という形になります。
ELBは、このターゲットグループに登録されたターゲットの中から、条件に応じて通信を転送します。
つまり、簡単に言えば、
「ELBが通信を送る先をまとめて管理する場所」
と考えると分かりやすいでしょう。
▪️ELBとターゲットグループの関係
ELBを使ったWebシステムでは、以下のような構成がよく使われます。
ユーザー
↓
ELB
↓
ターゲットグループ
↓
EC2-1
EC2-2
EC2-3
ELBはユーザーから受け取った通信を、ターゲットグループに登録されたターゲットへ転送します。
ここで重要なのが、
ELBが直接「EC2-1」「EC2-2」といった個別のサーバーを管理するのではなく、ターゲットグループを介して転送先を管理する
という点です。
この仕組みによって、複数のサーバーをまとめて管理できます。
▪️ターゲットとは?
ターゲットグループに登録される通信先を**ターゲット(Target)**と呼びます。
例えばEC2を登録する場合、
ターゲットグループ
┌─────────────────┐
│ EC2-1 │
│ EC2-2 │
│ EC2-3 │
└─────────────────┘
これらのEC2がターゲットです。
ただし、ターゲットはEC2だけではありません。
ターゲットグループでは、構成に応じて以下のようなターゲットを利用できます。
- EC2インスタンス
- IPアドレス
- Lambda関数
- ECSタスクなど
特にAWSでコンテナを利用する場合は、ECSのタスクをIPベースのターゲットとして扱う構成がよく登場します。
▪️ターゲットグループにはポートも設定する
ターゲットグループでは、通信を転送するプロトコルやポートも設定します。
例えば、
Protocol : HTTP
Port : 80
と設定した場合、ELBからターゲットへHTTPの80番ポートを使って通信を転送します。
例えば、
ユーザー
↓ HTTPS : 443
ALB
↓ HTTP : 80
ターゲットグループ
↓
EC2
という構成が考えられます。
この場合、ALBがHTTPS通信を受け付け、バックエンドのEC2へHTTPで通信を転送しています。
もちろん、バックエンド側もHTTPSにする構成も可能です。
▪️ヘルスチェックとは?
ターゲットグループで非常に重要なのが、ヘルスチェックです。
ELBは、登録されているターゲットが正常に動作しているかを確認できます。
例えば、
ターゲットグループ
EC2-1 → Healthy
EC2-2 → Healthy
EC2-3 → Unhealthy
となっていたとします。
この場合、ELBは基本的に正常なターゲットへ通信を転送し、異常なターゲットを転送先から外すことができます。
これによって、障害が発生したサーバーへユーザーの通信が送られ続けることを防ぎます。
▪️ヘルスチェックの仕組み
例えば、ターゲットグループのヘルスチェックを以下のように設定したとします。
Protocol : HTTP
Port : 80
Path : /health
ELBは定期的にターゲットの /health へアクセスします。
ALB
↓
GET /health
↓
EC2
↓
HTTP 200
正常なレスポンスが返ってくれば、
Healthy
と判断します。
一方、正常なレスポンスが返らない状態が続くと、
Unhealthy
と判断されます。
ヘルスチェックの設定には、パスだけでなく、間隔やタイムアウト、正常・異常と判断するための条件などがあります。
▪️リスナーとターゲットグループ
ここで、前回の記事で紹介したリスナーも登場します。
ELBでは、
Listener
↓
Target Group
↓
Target
という関係で通信を処理することがあります。
例えばALBで、
HTTPS : 443
を受け付けるリスナーを作成します。
そして、そのリスナーのルールで、
受信したHTTPS通信
↓
Target Groupへ転送
という設定をします。
イメージすると、
ユーザー
│
│ HTTPS : 443
↓
┌───────────┐
│ ALB │
│ Listener │
│ HTTPS:443 │
└─────┬─────┘
│
↓
┌────────────────┐
│ Target Group │
│ │
│ EC2-1 │
│ EC2-2 │
│ EC2-3 │
└────────────────┘
となります。
▪️ALBではルールによって転送先を変えられる
ALBでは、リスナーにルールを設定することで、条件に応じて異なるターゲットグループへ転送できます。
例えば、
https://example.com/
へのアクセスは、
Target Group A
へ転送。
一方、
https://example.com/api/
へのアクセスは、
Target Group B
へ転送する、といった構成が可能です。
イメージすると、
┌─ Target Group A
│
ALB → Listener ─────┤
│
└─ Target Group B
このように、ALBではホスト名やパスなどの条件を利用して転送先を分けることができます。
▪️EC2をターゲットにする場合
EC2をターゲットにする場合は、例えば以下のような構成になります。
Internet
↓
ALB
↓
Target Group
↓
┌───────────────┐
│ EC2-1 │
│ EC2-2 │
│ EC2-3 │
└───────────────┘
例えばEC2がWebサーバーとして80番ポートで待ち受けている場合、
Target Type : Instance
Protocol : HTTP
Port : 80
といったターゲットグループを作成できます。
▪️ECS/Fargateでもターゲットグループを使う
ターゲットグループは、ECS/Fargateでも非常に重要です。
例えば、
Internet
↓
ALB
↓
Target Group
↓
ECS Service
↓
Fargate Task
という構成です。
ECSでは、サービスが起動しているタスクをターゲットグループへ登録・解除する仕組みと連携できます。
例えばタスクが3つ起動している場合、
Target Group
Task-1
Task-2
Task-3
という形で、タスクが通信先として扱われます。
さらに、タスクが停止した場合などには、ECSのサービスとロードバランサーの連携によって、ターゲット登録も変化します。
▪️ECSでターゲットグループを使うメリット
ECSでは、アプリケーションの負荷に応じてタスク数を増減させることがあります。
例えば、
通常時
Task-1
Task-2
から、
負荷増加
Task-1
Task-2
Task-3
Task-4
のようにタスクを増やしたとします。
ロードバランサーとECSサービスを連携しておけば、新しく起動したタスクを通信先として扱えるようになります。
そのため、
ユーザー
↓
ALB
↓
Target Group
├── Task-1
├── Task-2
├── Task-3
└── Task-4
のような構成を作れます。
これはECSを理解するうえでも重要なポイントです。
▪️ターゲットグループとAuto Scaling
EC2を利用する場合は、Auto Scaling Groupと組み合わせることもあります。
例えば、
ALB
↓
Target Group
↓
Auto Scaling Group
↓
EC2 × 複数台
という構成です。
EC2の台数が増減すると、それに合わせてターゲットグループへの登録・解除を連携させることができます。
これによって、アクセス量に応じてWebサーバーを増減させながら、ALBから通信を振り分けることができます。
▪️ターゲットグループとセキュリティグループ
ターゲットグループを作っただけでは、通信が必ず成功するわけではありません。
例えば、
Internet
↓
ALB
↓
EC2
という構成の場合、ALBからEC2へ通信できるようにネットワークやセキュリティグループを設定する必要があります。
よくある構成では、
ALBのSecurity Group
↓
EC2のSecurity Group
という関係を作ります。
例えばEC2側のSecurity Groupで、
HTTP : 80
Source : ALBのSecurity Group
とすることで、
ALBからのHTTP通信だけをEC2へ許可する
という構成にできます。
▪️ターゲットグループを使ったWebシステム全体像
ここまでの内容をまとめると、以下のような構成になります。
Internet
│
↓
┌─────────────┐
│ ALB │
│ Listener │
│ HTTPS : 443 │
└──────┬──────┘
│
↓
┌─────────────┐
│Target Group │
│ │
│ Health Check│
└──────┬──────┘
│
┌───────┼───────┐
↓ ↓ ↓
EC2-1 EC2-2 EC2-3
この構成では、
- ALB:ユーザーからの通信を受け取る
- Listener:どのポート・プロトコルで受け付けるかを決める
- Target Group:転送先をまとめる
- Target:実際の通信先
- Health Check:ターゲットが正常か確認する
という役割分担になっています。
▪️ELB・Listener・Target Group・Targetの違い
最後に、それぞれの役割を整理してみましょう。
| 用語 | 役割 |
|---|---|
| ELB | 通信を負荷分散する仕組み |
| ALB | HTTP/HTTPS向けのロードバランサー |
| Listener | どのポート・プロトコルで通信を受け付けるか設定 |
| Listener Rule | 条件に応じた転送先などを決める |
| Target Group | 通信の転送先をまとめる |
| Target | 実際の通信先 |
| Health Check | Targetが正常か確認する |
特に、
ALB
↓
Listener
↓
Target Group
↓
Target
という関係を覚えておくと、AWSのWebシステム構成を理解しやすくなります。
▪️まとめ
今回はAWSのターゲットグループについて解説しました。
ターゲットグループは、簡単に言えば、
ELBが通信を転送する先をまとめて管理する仕組み
です。
ターゲットグループにはEC2やIPアドレスなどのターゲットを登録でき、ヘルスチェックによって正常なターゲットを確認できます。
また、ALBのリスナーやルールと組み合わせることで、条件に応じて異なるターゲットグループへ通信を転送できます。
特にECS/Fargateでは、
Internet
↓
ALB
↓
Target Group
↓
Fargate Task
という構成がよく登場するため、ECSを学ぶうえでも重要な概念です。
AWSのWebシステムを理解するためにも、
ELB → Listener → Target Group → Target
という流れを押さえておきましょう。
次はサーバの負荷分散で使用する「Auto Scailing」について解説します。
*「Auto Scailing」の記事はこちら
→「https://lovelabengineer.com/2026/10/08/awsのauto-scalingとは?サーバーを自動で増減させる仕組み/」

No responses yet