目指すはコレ!
インターネットからのリクエストをNetwork Load Balancer (NLB) で受け、Application Load Balancer (ALB) を経由して、プライベートサブネット内のEC2インスタンスへ効率的に分散処理を行うこと。
NLBには各AZごとにElastic IP (EIP) を割り当て、クライアントは静的IP宛てにアクセス可能です。ALBはターゲットグループを通じてEC2インスタンス2台へリクエストを振り分けます。
この構成により、クライアントが静的IPを使ってアクセスできる環境を構築しながら、ALBが提供する高度なルーティングやセキュリティ機能を最大限活用できます。
この構成のメリット
-
静的IPによる安定性と信頼性
NLBにEIPを紐付けることで、各AZにおいて静的のIPv4アドレスを提供できます。ファイアウォールの許可設定やオンプレミス環境との通信において、IPアドレスの変更を気にせずに済む安定した構成を実現できます。 -
ALBの高度なルーティング機能が活用できる
ALBのホストベース・パスベースルーティング、HTTPSリダイレクトなどのレイヤ7機能を活かしつつ、前段でNLBによる静的IPのメリットを享受できます。 -
AWS PrivateLinkによるセキュアなエンドポイント公開
本構成は、NLBを介したALBへのアクセスをPrivateLink経由で行うのにも適しており、インターネット非公開で安全にサービスを公開できます。
静的IPが必要になる代表例
-
外部システムや取引先との接続
「このIPアドレスからのアクセスだけ許可」という制約がある場合、NLBに割り当てたElastic IPを提示できる。 -
ファイアウォールやアクセス制御の設定
許可する通信元をIPアドレスで制御するケースでは、動的に変わるALBより静的IPの方が扱いやすい。 -
セキュリティ・監査要件
金融・医療などの厳格なシステムでは、通信元を静的IPに限定してログ管理や監査を行う必要がある。
アーキテクチャ図
【NLB+ALBによるWebサーバー負荷分散アーキテクチャ】

手順
ALB+EC2でトラフィック振り分け構成作成
まず、ALBとターゲットグループ、EC2インスタンスを先に構築し、トラフィックが正しく振り分けられるか動作確認を行います。これは、問題を段階的に切り分けて解決し、全体的な設定作業をスムーズに進めるためです。手順は以下を参照。
NLBターゲットグループ作成
NLBがトラフィックを転送するALBを登録するターゲットグループを作成します。
【設定情報】
-
ターゲットタイプの選択
Application Load Balancer -
ターゲットグループ名
任意 -
プロトコル/ポート
TCP/80 -
VPC
ハンズオンを行うVPCを指定 -
ヘルスチェックプロトコル
HTTP -
ヘルスチェックパス
/
作成後、先のステップで作成したALBをターゲットに登録します。
【NLBターゲットグループ作成画面】

NLB作成
【設定情報】
-
ロードバランサータイプ
Network Load Balancer -
基本的な設定
-
ロードバランサー名
任意 -
スキーム
インターネット向け -
ロードバランサーの IP アドレスタイプ
IPv4
-
ロードバランサー名
-
ネットワークマッピング
-
セキュリティグループ(NLB用)
セキュリティグループ設定参照 -
リスナーとルーティング
-
プロトコル/ポート
TCP/80 -
デフォルトアクション
作成したALBをターゲットとしたターゲットグループを指定
-
プロトコル/ポート
セキュリティグループ設定
NLB用(NLBToALB)
■インバウンド
タイプ:HTTP、送信元:0.0.0.0/0(すべてのIPアドレス)
■アウトバウンド
タイプ:HTTP、送信先:ALBFromNLBToEC2(ALB用SG)
ALB用(ALBFromNLBToEC2)
■インバウンド
タイプ:HTTP、送信元:NLBToALB(NLB用SG)
■アウトバウンド
タイプ:HTTP、送信先:EC2FromNLBALB(EC2用SG)
EC2用(EC2FromNLBALB)
■インバウンド
タイプ:HTTP、送信元:ALBFromNLBToEC2(ALB用SG)
■アウトバウンド
タイプ:HTTPS、送信先:pl-61a54008(S3のプレフィックスリストID)
※ユーザーデータにてApacheをインストールするため
トラフィックの振り分け確認
ブラウザにて確認
以下のURLで、NLB→ALB経由でプライベートサブネット内のEC2インスタンスへの接続が確認できます。作成したNLBのDNS名でもNLBに割り当てを行ったEIPアドレスからでもアクセスできます。
http://作成したNLBのDNS名 or EIPアドレス
今回の学び
-
NLBにもSGをアタッチできる(2023年8月~)
NLBはOSIレイヤー4で動作。そのため セキュリティグループは非対応。
⇒通信制御は NACL または ターゲット側SGに依存
★NLBのENIにSGをアタッチ可能になり、インバウンド/アウトバウンドルールを自由に設定可能!

