[アップデート]AWS Global Accelerator は、Network Load Balancer のエンドポイントでクライアント IP アドレスの保持ができるようになりました

2023.08.23

はじめに

AWS Global Acceleratorは、Network Load Balancer(NLB)に向けてクライアントのIPアドレスを保持できるようになりました。

このアップデートによって、例えば以下のことが実現できるようになります。

  • セキュリティとコンプライアンスの強化
    • 問題が発生した場合にユーザーの識別とその行動の追跡が可能となり、セキュリティ上の脅威や不正アクセスの調査に役立ちます。
  • IPアドレスまたは位置情報に基づくフィルタリング
    • 特定のIPアドレスや地域に対するフィルタリングを設計し、適用できます。
      • 例:特定地域で広告キャンペーンを行ッタ結果、対象の地域からのトラフィックが増えた場合、キャンペーンが効果的であると分かります。
  • 特定の地域に対するカスタムコンテンツを提供できる
    • パーソナライズされたコンテンツを提供することが可能になります。これにより、ユーザー体験を向上させ、エンゲージメントを増加させることが期待できます。

注意点として、以下のいずれかに当てはまる場合、クライアントIPアドレスを保持は有効にできません、

  • NLBのリスナーにTLS リスナーが接続されている
  • IPアドレスタイプがDualstackのNLB
  • セキュリティグループが無効のNLB

先日のアップデートで、NLBのセキュリティグループは、設定できるようになりました。

ちなみに、クライアントIPアドレスの保持に追加費用はかかりません。

構成

今回、Global AcceleratorでNLBへのクライアントIPアドレスを保持を有効にすることで、NginxへのアクセスログにクライアントIPが出力されるか検証します。

検証は、以下の構成で行います。

Global Acceleratorは、作成手順を本記事内で説明いたします。

全てTCPポート80で通信させ、EC2インスタンスにはNginxをインストールさせています。

NLBのDNS名でNginxのページが表示できている状態です。

Global Acceleratorを作成

アクセラレータ名を記載し、タイプは標準を選択し、次に進みます。

リスナーは、TCPのポート80を選択します

エンドポイントグループは、東京リージョンを選択します。

エンドポイントは、NLBを選択します。

今回のアップデート内容であるクライアントIPアドレスを保持を選択します。

作成するまで十分程度かかります。

ステータスがデプロイ済みになれば完了です。

クライアントIPの保持が有効の場合

Global AcceleratorのDNS名ade8ae46ba7ed5faa.awsglobalaccelerator.comでアクセスするとNginxページが表示されました。

Nginxのアクセスログには、私のクライアントIPを確認することができました。

私のクライアントIP - - [22/Aug/2023:23:30:04 +0000] "GET / HTTP/1.1" 304 0 "-" "省略" "-"

クライアントIPの保持を無効にしてみる

クライアントIPの保持が無効の場合、NginxのアクセスログがクライアントIPを出力されないか確認します。

エンドポイントを編集してもクライアントIPアドレスを保持の修正はできませんでした。

そのため、エンドポイントを追加しましょう。

クライアントIPアドレスを保持を無効にし、保存します。

ステータスがデプロイ済みになるまで待ちます。

再度、Global AcceleratorのDNS名ade8ae46ba7ed5faa.awsglobalaccelerator.comでアクセスするとNginxページが表示されました。

Nginxのアクセスログには、私のクライアントIPは保存されていませんでした。

13.248.98.20 - - [23/Aug/2023:00:13:28 +0000] "GET / HTTP/1.1" 304 0 "-" "省略" "-"

クライアントIPアドレスを保持を有効にすることで、エンドポイントであるNLBに向けてクライアントのIPアドレスを保持できることが分かりました。

クライアントIPアドレスを保持が有効化できないパターン

セキュリティグループが無効のNLBは、クライアント IP アドレスを保持を有効化することはできませんでした。

リスナーにTLS リスナーが接続されているNLBは、クライアントIPアドレスを保持をチェックできましたが、エラーとなりました

参考