🛜

Network Load Balancer を作成して TCP 負荷分散を構成する

難易度:中級
所要時間:45 分

ラボ概要

2 つの AZ のパブリックサブネットに簡易 Web サーバーを乗せた EC2 を起動し、Network Load Balancer (NLB) とターゲットグループを作成・登録して、レイヤー 4 (TCP) の負荷分散とヘルスチェックをコンソールだけで確認します。土台の VPC とサブネットは CloudFormation で事前構築されています。

このラボでは、レイヤー 4 (TCP) で動作する Network Load Balancer (NLB) をゼロから構築します。2 つの異なるアベイラビリティーゾーン(AZ)のパブリックサブネットに、簡単な HTTP サービスを動かす t3.micro の EC2 を 1 台ずつ起動し、ターゲットグループに登録します。その上で TCP リスナーを持つインターネット向け NLB を作成し、クロスゾーン負荷分散を有効化したうえで、TCP 負荷分散とヘルスチェックによる不健全ターゲットの自動切り離しを確認します。

NLB は、HTTP/HTTPS を解釈する Application Load Balancer (ALB) と異なり、TCP/UDP のレイヤー 4 で超低レイテンシー・高スループットにトラフィックを振り分けます。本ラボでは確認をわかりやすくするため、バックエンドに HTTP サービス(TCP/80)を使います。土台となる VPC・パブリックサブネット(2 AZ)・インターネットゲートウェイは、ラボ開始時に CloudFormation で自動構築済みです。

なお現在の NLB は、クライアントからのアクセスを制御するセキュリティグループを NLB 自身にも 付与できます(2023 年 8 月以降)。本ラボでは、NLB 用のセキュリティグループ(クライアント → NLB の通信を許可)と、ターゲット EC2 用のセキュリティグループ(NLB・ヘルスチェック → EC2 の通信を許可)の 2 つの役割の違い も体験します。

学習目標

  • NLB(レイヤー 4 / TCP)と ALB(レイヤー 7 / HTTP)の違いを理解する
  • 2 つの AZ にまたがって EC2 バックエンドを配置し、可用性を高める
  • TCP プロトコルのターゲットグループを作成し、インスタンスを登録する
  • NLB のクロスゾーン負荷分散を理解し、ターゲットグループ属性で有効化する
  • インターネット向け NLB に TCP リスナーを設定して負荷分散を構成する
  • NLB 自身のセキュリティグループ(クライアント → NLB)と、ターゲット側セキュリティグループ(NLB → EC2)の役割の違いを理解する
  • ヘルスチェックの動作と、不健全ターゲットが自動で切り離される様子を確認する

前提

  • フェデレーテッドコンソールに cloud_user ロールでサインイン済みであること
  • すべての操作を 東京リージョン(ap-northeast-1) で行うこと
  • 土台の VPC・サブネット・インターネットゲートウェイは CloudFormation で自動作成済み(名前はすべて clouddo-lab- で始まる)
  • 使用するインスタンスは t3.micro(無料利用枠/最小構成)に限定されること
  • SSH キーペアは不要(インスタンスはユーザーデータで自動構成される)
🛜

ハンズオンラボとは?

本物の Azure リソースを使い、リスクなく試行錯誤しながら実践的なスキルを身につけられます。

他のラボを見る