AWS認定資格 WEB問題集&徹底解説
CloudOpsエンジニア -アソシエイト
Elastic Load Balancing (ELB) の概要と試験出題ポイントは?
AWSサービスの一つであるElastic Load Balancing (ELB)はどんな内容なのでしょうか?また、AWS認定資格のSysOpsアドミニストレーター -アソシエイト(SOA)に合格するためには、サービスのどんなポイントを押さえておけばよいのでしょうか?
ここでは、そんなあなたの疑問に回答していきたいと思います
1. サービス概要
Elastic Load Balancing (ELB) は、AWS のフルマネージドな負荷分散サービスです。 受信トラフィックを複数の EC2 インスタンス・コンテナ・Lambda 関数・IP アドレスに自動的に分散し、 単一障害点をなくして高可用性とスケーラビリティを提供します。
ELB は複数 AZ にまたがって動作し、障害 AZ のターゲットへのルーティングを自動的に停止します。 Auto Scaling と組み合わせることで、負荷に応じたインスタンス数の増減と負荷分散を自動化できます。 現在提供されているロードバランサーは ALB・NLB・GWLB の 3 種類です(CLB は旧世代で非推奨)。
2. 主な特徴と機能
2.1 Application Load Balancer(ALB)— L7 負荷分散
- 対応プロトコル: HTTP / HTTPS / WebSocket / gRPC(レイヤー 7)。
- 高度なルーティング: パスベース(/api/* → API サービス)・ホストベース(api.example.com → API TG)・HTTPヘッダー/クエリパラメータ・送信元 IP ベースのルールを設定可能。
- ターゲット: EC2・ECS タスク・Lambda 関数・プライベート IP アドレス。
- 認証: Cognito または OIDC プロバイダーと統合したユーザー認証を ALB で直接実行可能。
- スティッキーセッション: ALB 生成 Cookie または アプリケーション Cookie で同一ターゲットへ固定(持続時間は設定可能)。
- リダイレクト: HTTP → HTTPS への自動リダイレクトをルール 1 つで設定可能。
- AWS WAF 統合: ALB にアタッチして Web アプリをリクエストフィルタリングで保護。
2.2 Network Load Balancer(NLB)— L4 負荷分散
- 対応プロトコル: TCP / UDP / TLS(レイヤー 4)。
- 超低レイテンシ・超高スループット: 秒間数百万リクエスト処理。ALB より高速。
- 静的 IP/Elastic IP: AZ ごとに固定 IP を割り当て可能。ファイアウォールのホワイトリスト登録や DNS 固定に有効。
- クライアント IP 保持: バックエンドがクライアントの実 IP を直接受信できる。
- TLS 終端: NLB で TLS を終端し、バックエンドは平文 TCP で受信可能。
- PrivateLink: NLB をバックエンドに VPC PrivateLink でサービスを安全に公開できる。
2.3 Gateway Load Balancer(GWLB)— L3 仮想アプライアンス透過挿入
- 仮想ファイアウォール・IDS/IPS・深層パケット検査(DPI)などのサードパーティアプライアンスをトラフィック経路に透過的に挿入。
- GENEVE プロトコル(ポート 6081)でカプセル化してアプライアンスへ転送。
- AWS Marketplace のアプライアンス AMI と組み合わせるユースケースが試験頻出。
2.4 共通機能
- ヘルスチェック: HTTP/HTTPS/TCP でターゲットの死活を定期確認。異常ターゲットへのルーティングを自動停止。
- クロスゾーン負荷分散: 有効にすると全 AZ のターゲットに均等分散。ALB はデフォルトで有効(追加料金なし)。NLB/GWLB はデフォルト無効(AZ 間データ転送料が発生)。
- 接続ドレイニング(登録解除の遅延): ターゲットをグループから外す際、進行中リクエストが完了するまで待機(デフォルト 300 秒)。
- SSL/TLS 終端 + ACM: ACM(AWS Certificate Manager)で証明書を無料発行・自動更新し、ELB にアタッチ。
- アクセスログ: S3 に詳細ログを出力(ALB/NLB/CLB 対応)。
3. アーキテクチャおよび技術要素
- クライアントは ELB の DNS 名(またはNLBの固定IP)にリクエストを送信。
- ELB は各 AZ に配置されたロードバランサーノードでリクエストを受け、ルーティングルールを評価。
- ターゲットグループ内のヘルシーなターゲットにリクエストを転送(ALB はコンテンツベース、NLB は接続ベース)。
- クロスゾーン負荷分散が有効な場合、別 AZ のターゲットにもトラフィックを均等分散。
- ヘルスチェック失敗ターゲットはグループから自動除外。接続ドレイニングで既存接続を保護。
- Auto Scaling グループと連動し、スケールアウト時に新インスタンスを自動登録。
ALB は「リスナー → ルール → ターゲットグループ」の 3 層構造。1 つの ALB に複数リスナー(ポート 80/443 等)を設定し、各リスナーに複数ルールを追加できます。 ターゲットグループには重み付け(加重ランダム・Least-Outstanding-Requests)も設定可能です。
4. セキュリティと認証・認可
- セキュリティグループ(ALB): ALB にセキュリティグループを設定し、許可する送信元 IP・ポートを制御。バックエンド EC2 のセキュリティグループは「ALB のセキュリティグループからのみ」許可するのがベストプラクティス。
- NLB のセキュリティグループ: NLB 自身にはセキュリティグループを設定できないため、ターゲット(EC2 等)のセキュリティグループで制御。
- SSL/TLS 証明書(ACM 連携): ACM でプロビジョニングした証明書を ELB リスナーにアタッチ。更新は自動。SNI(Server Name Indication)で 1 つのリスナーに複数証明書をホスト可能。
- AWS WAF(ALB 連携): SQL インジェクション・XSS・レートベースルールなどを ALB でブロック。NLB への WAF 適用は不可。
- AWS Shield: ALB/NLB は標準で DDoS 保護(Shield Standard)。Shield Advanced で高度な保護と DDoS コスト保護。
- CloudTrail: ELB の API 呼び出し(CreateLoadBalancer 等)を記録。
- アクセスログ: S3 に転送し、各リクエストの詳細を保存・監査。
5. 料金形態
- ロードバランサー時間: ELB が稼働している時間(時間単位)に課金。
- LCU(Load Balancer Capacity Units)— ALB/NLB/GWLB: 新しい接続数、アクティブ接続数、処理バイト数、ルール評価数の中で最大の消費量に基づく従量課金単位。CLB はデータ処理量(GB)課金。
- クロスゾーン負荷分散のデータ転送: ALB は追加料金なし。NLB/GWLB はクロスゾーン通信に AZ 間データ転送料が発生。
6. よくあるアーキテクチャ・設計パターン
- 標準的な Web 3 層構成: Internet-facing ALB → EC2 Auto Scaling グループ(プライベートサブネット)→ RDS Multi-AZ。ALB のセキュリティグループから EC2 のみ受け付ける構成でセキュリティを担保。
- マイクロサービス: 1 つの ALB に複数のターゲットグループを設定し、パスルールで各サービスへ振り分け(/api → APIサービス TG、/ → フロントエンド TG)。コンテナ(ECS/EKS)と組み合わせることが多い。
- 低レイテンシ・固定 IP が必要な場合: NLB を採用。オンプレミスのファイアウォールへの IP ホワイトリスト登録や UDP ベースゲームサーバーに有効。
- ALB + NLB の多段構成: 静的 IP が必要だが L7 ルーティングもしたい場合は NLB の後ろに ALB を配置(NLB → ALB)。
- サードパーティセキュリティアプライアンス挿入: GWLB で IDS/IPS・ファイアウォール AMI をトラフィック経路に透過挿入し、全トラフィックを検査。
- Blue/Green デプロイ: ALB の加重ターゲットグループルールで Blue TG と Green TG へのトラフィック比率を段階的に切り替え(AWS CodeDeploy と連携)。
7. 設定・デプロイ手順(ハンズオン例)
- ターゲットグループを作成(タイプ: インスタンス/IP/Lambda、ヘルスチェックパスを設定)。
- ALB を作成(Internet-facing か Internal かを選択、対象の VPC とサブネットを 2 AZ 以上指定)。
- セキュリティグループを設定(ALB はアタッチ可能、ポート 80/443 を開放)。
- リスナー設定(ポート 443 に ACM 証明書をアタッチ、デフォルトアクションでターゲットグループへ転送)。
- ルールを追加(パスベース: /api/* → API ターゲットグループ、その他 → デフォルトグループ)。
- EC2 のセキュリティグループで「ALB のセキュリティグループからの 80/443 のみ」を許可。
- CloudWatch でターゲット別のリクエスト数・レイテンシ・5xx エラー率を監視。
8. 試験で問われやすいポイント
8.1 ALB・NLB・GWLB の選択(最頻出)
- Q: HTTP/HTTPS でパスベース・ホストベースルーティングが必要な場合は?
A: ALB(L7)。コンテンツベースルーティング、Lambda ターゲット、Cognito 認証に対応。 - Q: TCP/UDP の超低レイテンシや固定 IP(Elastic IP)が必要な場合は?
A: NLB(L4)。ファイアウォールの IP ホワイトリスト登録、UDP ゲームサーバー、PrivateLink バックエンドに。 - Q: トラフィックをサードパーティのファイアウォール/IDS/IPS に透過的に流したい場合は?
A: GWLB(L3)。GENEVE でカプセル化して仮想アプライアンスへ転送。 - Q: CLB(Classic Load Balancer)の扱いは?
A: 旧世代で新規利用は非推奨。ALB または NLB への移行が推奨。
8.2 ALB のルーティングルール
- Q: URL パスごとに異なるマイクロサービスへ振り分けるには?
A: ALB リスナールールでパスベースルーティング(/api/* → API TG、/* → フロントエンド TG)を設定。 - Q: サブドメインごとに異なるバックエンドへ振り分けるには?
A: ALB リスナールールでホストベースルーティング(api.example.com → API TG、www.example.com → Web TG)を設定。 - Q: ALB で HTTP を HTTPS にリダイレクトするには?
A: ポート 80 のリスナールールで「リダイレクト → HTTPS 443」を設定。
8.3 スティッキーセッションと接続ドレイニング
- Q: セッション情報をサーバー側に持つアプリで同一サーバーへ固定したい場合は?
A: スティッキーセッション(ALB Cookie または App Cookie)を有効化。ElastiCache 等でセッションを外部化する方法がよりスケーラブル。 - Q: インスタンスをスケールイン時に進行中リクエストを壊さないようにするには?
A: 接続ドレイニング(登録解除の遅延)を設定(デフォルト 300 秒)。
8.4 クロスゾーン負荷分散
- Q: AZ 間でターゲット数が不均等でも均等分散したい場合は?
A: クロスゾーン負荷分散を有効化。ALB はデフォルト有効(AZ 間転送料なし)。NLB はデフォルト無効(有効化すると AZ 間転送料が発生)。
8.5 SSL/TLS と ACM
- Q: ELB で HTTPS を終端し証明書を自動更新したい場合は?
A: ACM(AWS Certificate Manager)で証明書を発行し ELB リスナーにアタッチ。更新は自動。 - Q: 1 つの ALB リスナーで複数ドメインの証明書を使い分けるには?
A: SNI(Server Name Indication)を使って複数の ACM 証明書をリスナーにアタッチ。
8.6 セキュリティ
- Q: EC2 に ALB 以外からのアクセスを禁止するには?
A: EC2 のセキュリティグループでALB のセキュリティグループからのみ許可するよう設定。 - Q: ALB で SQL インジェクション・XSS をブロックするには?
A: AWS WAF を ALB にアタッチし、マネージドルールグループを適用。
8.7 NLB の特徴
- Q: NLB でクライアントの実 IP をバックエンドが受け取るには?
A: NLB は L4 でパケットを転送するためバックエンドが送信元 IP を直接受信。ALB の場合は X-Forwarded-For ヘッダー参照。 - Q: NLB に固定 IP が必要な理由は?
A: ALB の IP は変動するが、NLB は AZ ごとに静的 IP(Elastic IP 割り当て可能)なのでファイアウォールのホワイトリスト登録に適する。
8.8 ELB と関連サービスとの比較
- Q: ELB と Auto Scaling の役割の違いは?
A: ELB はトラフィックの分散、Auto Scaling はインスタンス数の増減。組み合わせてスケーラブルな構成を実現。 - Q: ELB と Global Accelerator の違いは?
A: ELB はリージョン内の負荷分散。Global Accelerator は AWS エッジネットワークを経由したグローバルなルーティングと低レイテンシ・DDoS 保護(複数リージョンにまたがるフェイルオーバーに適する)。
広告