AWS ELBでターゲットグループを設定する方法を初心者向けに解説!
生徒
「先生、AWSのロードバランサーでターゲットグループという言葉を見たんですが、どういうものなんですか?」
先生
「ターゲットグループ(Target Group、ターゲットグループ)は、ELB(イーエルビー:Elastic Load Balancingの略)が振り分ける先のサーバーをまとめたグループのことです。EC2(イーシーツー)やIPアドレスなどを登録して、リクエストを分散させます。」
生徒
「なるほど!じゃあターゲットグループを設定しないと、ロードバランサーがどこにリクエストを送ればいいか分からないんですね?」
先生
「その通りです。では実際に、ターゲットグループの基本と設定方法を見ていきましょう。」
1. ターゲットグループとは?
AWSのElastic Load Balancing(エラスティックロードバランシング、読み方はイーエルビー)で使われるターゲットグループとは、ロードバランサーがリクエストを転送する宛先のまとまりを指します。
具体的には、Amazon EC2(イーシーツー)、IPアドレス、Lambda(ラムダ)関数などをターゲットとして登録できます。ロードバランサーは受け取ったリクエストをターゲットグループに割り当てられたサーバーへと自動的に振り分けます。
例えば「Webサーバー用ターゲットグループ」や「APIサーバー用ターゲットグループ」といった形で用途ごとに分けることができ、運用や管理を効率化できます。
2. ターゲットグループが必要な理由
ターゲットグループを設定することで、以下のメリットがあります。
- 負荷分散:複数のEC2インスタンスに均等にトラフィックを分散できる。
- ヘルスチェック:サーバーの稼働状況を監視し、異常があるターゲットを自動的に外せる。
- 柔軟なルーティング:ALB(アプリケーションロードバランサー)の場合は、URLパスやホスト名に応じて異なるターゲットグループに振り分け可能。
- 高可用性:障害時でも正常なターゲットに切り替わるため、システム全体の停止を防げる。
つまり、ターゲットグループはELBの心臓部とも言える存在です。
3. ターゲットグループの種類
ターゲットグループには大きく分けて以下の種類があります。
- インスタンスベース:EC2インスタンスを直接登録。
- IPアドレスベース:特定のIPアドレスをターゲットとして利用。
- Lambdaベース:AWS Lambda関数を直接呼び出す構成。
用途やシステム構成に応じて選択することができます。たとえばWebアプリケーションではEC2を登録するケースが一般的です。
4. ターゲットグループの作成手順
実際にAWSマネジメントコンソールからターゲットグループを作成する流れを見てみましょう。
- AWSマネジメントコンソールにログイン。
- 「EC2」サービスを選択し、左メニューから「ターゲットグループ」をクリック。
- 「ターゲットグループの作成」を押す。
- ターゲットタイプ(インスタンス / IP / Lambda)を選択。
- 名前やポート番号、プロトコル(HTTP / HTTPS / TCPなど)を設定。
- ヘルスチェックの条件を設定。
- 最後に「作成」をクリックして完了。
作成後はロードバランサーと関連付けることで、実際にトラフィックを分散させることができます。
5. ヘルスチェックの重要性
ターゲットグループには必ずヘルスチェック(稼働監視)の設定が必要です。ヘルスチェックとは、ターゲットとなるサーバーやサービスが正常に動作しているかを定期的に確認する仕組みです。
例えば、HTTPリクエストを送って「200 OK」が返ってくるかを確認するのが一般的です。もし異常が検出された場合、そのターゲットは自動的にトラフィックの対象から外されます。
これにより、利用者は常に正常なサーバーへアクセスできるようになり、システム全体の信頼性が向上します。
6. ユースケースの具体例
ターゲットグループの使い方を具体例で見てみましょう。
- ECサイト:商品ページ用と会員情報ページ用でターゲットグループを分け、異なるEC2インスタンス群へ振り分け。
- マイクロサービス構成:APIごとに別のターゲットグループを作成し、ALBのルーティング機能で切り替え。
- 金融システム:NLBを利用して低遅延で大量のTCPリクエストを特定サーバーへ分散。
このように、用途に合わせてターゲットグループを分けることで、管理のしやすさとシステムの安定性が大きく向上します。
7. 初心者に分かりやすい例え
ターゲットグループは「飲食店のホール担当がキッチンに注文を振り分けるイメージ」に似ています。お客さん(リクエスト)が注文した料理を、ホールスタッフ(ロードバランサー)がピザ担当や寿司担当などのキッチン(ターゲットグループ)に振り分けます。さらに、もし寿司担当が体調不良で休んでいたら、その担当には注文を回さず、別の担当に送ります。これがヘルスチェックの役割です。
まとめ
AWSのElastic Load Balancingにおけるターゲットグループは、複数のEC2インスタンスやIPアドレス、さらにLambdaなどのターゲットを効率よく束ねてリクエストを振り分ける重要な仕組みであり、安定したアプリケーション運用を実現するために欠かせない役割を担っています。とくに、Webアプリケーションやマイクロサービスのように複数のサービスや処理が分かれている環境では、ターゲットグループを用途ごとに整理することで、負荷分散・稼働監視・柔軟なルーティングを自然に実現できます。ヘルスチェックによって稼働状態を常に監視し、異常があるターゲットを自動的に切り離すことで、高可用性と安定性を保ちながらサービスを継続できる点は大きな強みです。 また、ターゲットグループはALBならHTTP/HTTPSベースの細かいルーティング、NLBなら高速で安定したTCPベースの処理、Gateway Load Balancerならネットワーク機能の分散など、多様なシーンで活用できます。AWS環境で複数のサーバーを扱う場合、ターゲットグループは必ず理解すべき基盤要素といえるでしょう。実際の設定作業ではターゲットタイプの選択、ポート番号の指定、プロトコルの定義、ヘルスチェックURLの指定などを段階的に進めていきます。これにより、状況に応じた最適な動作をロードバランサーに指示でき、ユーザーは常に快適なアクセスを体験できるようになります。 さらに、ターゲットグループは運用時にも役立ちます。例えば、ローリングデプロイで順番にサーバーを更新するとき、ターゲットグループから古いサーバーを外して新しいサーバーを追加していく構成が一般的です。これにより、サービスを止めずに安全な更新作業ができ、システム運用の信頼性が格段に向上します。実際の現場でもこうした構成は頻繁に利用されており、ターゲットグループの理解は運用管理にも直結する大切な知識です。 下記はターゲットグループ設定のイメージを簡易XMLで表したものです。実際のAWSコンソールでは画面操作が中心ですが、構造理解として参考になります。
ターゲットグループ設定イメージ(XML例)
<TargetGroup>
<Name>web-target-group</Name>
<Protocol>HTTP</Protocol>
<Port>80</Port>
<HealthCheck>
<Path>/health</Path>
<Interval>30</Interval>
<Timeout>5</Timeout>
<HealthyThreshold>3</HealthyThreshold>
<UnhealthyThreshold>2</UnhealthyThreshold>
</HealthCheck>
<Targets>
<EC2Instance>
<Id>i-abcde12345</Id>
<Port>80</Port>
</EC2Instance>
<EC2Instance>
<Id>i-xyz9876543</Id>
<Port>80</Port>
</EC2Instance>
</Targets>
</TargetGroup>
また、AWS CLIを使いターゲットグループの登録状況を確認する場合、以下のようなコマンドで状態を取得できます。このように確認することで、ターゲットが正しくヘルスチェックを通過しているかを素早く把握できます。
aws elbv2 describe-target-health --target-group-arn arn:aws:elasticloadbalancing:ap-northeast-1:xxxxx:targetgroup/web-target-group/abc123
TARGETHEALTHDESCRIPTIONS: healthy
ターゲットグループはAWSのロードバランシング設計の中心にあり、システムの可用性や安全性を高め、柔軟なルーティングやスケールにも対応できるため、Webサービス運用の基盤知識としてしっかり理解しておく価値があります。今回の内容を通して、ターゲットグループの役割、種類、設定方法、ヘルスチェックの重要性などを総合的に整理できるようになれば、AWSでのアプリケーション構築の幅が大きく広がります。
生徒
「ターゲットグループはただのサーバーリストだと思っていましたが、ヘルスチェックやルーティング機能など、もっと広い役割があることを知って驚きました!」
先生
「そうですね。AWSではターゲットグループが負荷分散の中心であり、正常なサーバーへ確実にリクエストを届けるための土台になっています。」
生徒
「EC2、IPアドレス、Lambdaなどいろいろ登録できるのも便利ですね。場面に合わせて柔軟に使えるのが魅力です。」
先生
「用途ごとにターゲットグループを分けることで管理もしやすくなりますし、マイクロサービス構成にも相性が良いですよ。」
生徒
「今回のXML例やコマンドも参考になりました。実際に触るときのイメージがつかみやすいです!」
先生
「よく理解できていますね。ターゲットグループを学ぶと、ロードバランサー全体の動作理解も深まり、AWS設計の基礎力がしっかり身につきますよ。」