はじめに
こんにちは。アメリカ在住で独学エンジニアを目指している Taira です。
Web アプリのアクセスが増えてきたとき、EC2 サーバー 1 台では対応しきれなくなります。
そんなときに活躍するのが、ELB (Elastic Load Balancing) です。
本日はそんな AWS の ELB について記事を書いていこうと思います。
1. ELB とは?
Elastic Load Balancing (ELB) は、AWS が提供するロードバランサーサービスです。
複数の EC2 などにアクセスを分散し、可用性やスケーラビリティを高めます。
例えば、次のような構成ができます:
[ユーザー]
↓
[ELB]
├―― EC2 #1
└―― EC2 #2
アクセスが ELB に集まり、ELB が健康な EC2 に均等に振り分けることで、負荷が分散されます。
2. なぜ ELB が必要なの?
| 課題 | 解決策 |
|---|---|
| EC2 が 1 台だと負荷に弱い | 複数台で処理を分抽したい |
| EC2 が落ちたときに自動切り替えしたい | ELB のヘルスチェックで異常を検知し、自動で除外 |
| ドメインは 1 つにしたい | ELB がひとつの公開エンドポイントになる |
3. ELB の種類 (2025 年時点)
| 種類 | 用途 |
|---|---|
| ALB (Application Load Balancer) | HTTP/HTTPS ベース。Web アプリに最適 |
| NLB (Network Load Balancer) | TCP/UDP。高速、低レイテンシー向け |
| CLB (Classic Load Balancer) | 古いタイプ (非推奨) |
一般的な Web アプリなら ALB を使えば OK です。
4. ELB 実践時の基本構成
構成イメージ (ALB + EC2)
インターネット
↓ HTTPS
[Application Load Balancer]
↓ HTTP
[ターゲットグループ (EC2インスタンス群)]
- ELB ⇒ EC2 の通信プロトコルは HTTP or HTTPS
- ターゲットグループに EC2 を登録
5. 実際に導入する際のポイント
✅ 1. セキュリティグループの設定
-
ELB のセキュリティグループ:
- ポート 80, 443 (HTTP, HTTPS)を許可
-
EC2 のセキュリティグループ:
- ポート 80
- 送信元:ELB の SG or 0.0.0.0/0
✅ 2. ターゲットグループの設定
-
タイプ:
instance(EC2 単体) orip -
ポート:アプリが待機するポート (80 etc)
-
ヘルスチェック
- パス:
/や/health - HTTP レスポンスが 200 を返すように
- パス:
✅ 3. EC2 が常常応答しない場合の対処
-
EC2 に SSH して curl で確認
curl -I http://localhost/ -
DB が起動しているか確認
-
アプリケーションログ/エラーログ確認
-
ELB のヘルスチェックパスが、実際のパスと一致しているか
✅ 4. パブリック/プライベートサブネットの配置
-
ELB は パブリックサブネット に配置
-
EC2 はパブリックでもプライベートでも OK
- プライベートにする場合は NAT Gateway やルート設定に要注意
6. ELB の利点まとめ
| 利点 | 説明 |
|---|---|
| 負荷分散 | 複数 EC2 へ均等に振り分ける |
| 高可用性 | 落ちた EC2 を自動除外、復活時に再登録 |
| スケーリング対応 | オートスケーリングと連携して EC2 を効率的に増減 |
| HTTPS 対応 | ACM + WAF でセキュアな入口を実現 |
おわりに
ELB は可用性・拡張性・保守性を高めるために不可欠な仕組みです。
最初は設定項目が多く感じられるかもしれませんが、構造と役割を理解すれば、とても強力な機能になります。