0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS ELB】NLB+ALB構成で固定IPアドレスを実現し、EC2へ分散処理を確認

Posted at

目指すはコレ!

インターネットからのリクエストを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サーバー負荷分散アーキテクチャ】
image.png

手順

ALB+EC2でトラフィック振り分け構成作成

まず、ALBとターゲットグループ、EC2インスタンスを先に構築し、トラフィックが正しく振り分けられるか動作確認を行います。これは、問題を段階的に切り分けて解決し、全体的な設定作業をスムーズに進めるためです。手順は以下を参照。

NLBターゲットグループ作成

NLBがトラフィックを転送するALBを登録するターゲットグループを作成します。
【設定情報】

  • ターゲットタイプの選択
    Application Load Balancer
  • ターゲットグループ名
    任意
  • プロトコル/ポート
    TCP/80
  • VPC
    ハンズオンを行うVPCを指定
  • ヘルスチェックプロトコル
    HTTP
  • ヘルスチェックパス
    /

作成後、先のステップで作成したALBをターゲットに登録します。
【NLBターゲットグループ作成画面】
image.png

NLB作成

【設定情報】

  • ロードバランサータイプ
    Network Load Balancer

  • 基本的な設定

    • ロードバランサー名
      任意
    • スキーム
      インターネット向け
    • ロードバランサーの IP アドレスタイプ
      IPv4
  • ネットワークマッピング

    • VPC
      ハンズオンを行うVPCを指定
    • アベイラビリティーゾーンとサブネット
      ALBと同様、EC2インスタンスを起動した2つのAZに作成したパブリックサブネットを指定
    • IPv4アドレス
      Elastic IP アドレスの使用
      ※事前にElasticIPの発行が必要
      【NLB作成画面】
      image.png
  • セキュリティグループ(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アドレスからでもアクセスできます。

作成したNLBのDNS名
 http://作成したNLBのDNS名 or EIPアドレス

【NLB→ALB経由でのEC2アクセス結果】
image.png

今回の学び

  • NLBにもSGをアタッチできる(2023年8月~)
    NLBはOSIレイヤー4で動作。そのため セキュリティグループは非対応。
    ⇒通信制御は NACL または ターゲット側SGに依存
    ★NLBのENIにSGをアタッチ可能になり、インバウンド/アウトバウンドルールを自由に設定可能!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?