Amazon Web Services ブログ

新機能: AWS Global Accelerator でのクライアント IP アドレス保持

AWS Global Accelerator は、着信するトラフィックを複数の AWS リージョンにルーティングするネットワークサービスです。これにより、グローバルなアプリケーションのパフォーマンスと可用性を向上させることができます。このサービスでは、当社が集積したエッジロケーションや遅延のないグローバルネットワークを利用することで、アプリケーション やネットワークの健全性、ユーザーの地理的位置などに基づき、トラフィック配信ができます。また、複数の AWS ロケーションからアナウンスされた静的な Anycast IP も使用できます (さらに詳しい情報は「New – AWS Global Accelerator for Availability and Performance」をご参照ください。 ) 。着信した TCP もしくは UDP トラフィックは、Application Load BalancerNetwork Load BalancerElastic IP Address にルーティングすることが可能です。

クライアント IP アドレス保持機能
当社は本日、AWS Global Accelerator に新たに加わった重要な機能について発表いたします。Application Load Balancer にトラフィックをルーティングしているお客様は、今後、ユーザーのクライアント IP アドレスを使い、エンドポイント上でのコード実行が行えるようになりました。この機能を使うと、特定の IP アドレス向けの処理を適用することができます。たとえば、IP アドレスに基づきフィルタリングを行うセキュリティグループの使用や、ユーザーの IP アドレスや所在地に応じた、カスタムコンテンツの提供などが行えます。加えて、ユーザーの所在地の地理的分布に関する統計情報を、IP アドレスを使いより精密に収集することも可能です。

クライアント IP アドレス保持機能の使い方
すでに AWS Global Accelerator をご利用中のお客様は、エンドポイントでの重みづけを利用して、クライアント IP アドレス保持機能を段階的に導入されることをお勧めします。こうすることで、現在 IP アドレスを使っている他のルールやシステムに悪い影響がないことを確認しながらの作業が行えます。

今回は、この新機能をテストするために、EC2 インスタンスをいくつか起動し、Application Load Balancer のセットアップを行い、インスタンスをターゲットグループに配置すると共に、ALB でのアクセラレーター作成などを行いました。

次のように、使っているブラウザーの IP アドレスを確認します。

Python で記述したシンプルな (Global Accelerator チームの提供による) プログラムをインストールし、Global Accelerator の IP アドレスに HTTP リクエストを送信させ、出力をキャプチャします。

ソースアドレス (99.82.172.36) は、アクセラレーターが使っている内部アドレスです。基本準備が終わり動作に問題がないことが確認できたら、いよいよ、クライアント IP アドレス保持機能を有効化できます。

AWS Global Accelerator コンソールを開き、対象のアクセラレーターを特定してから、設定が先に示したものと同じかを確認します。リスナーのポートでは 80 を選択し、既存のエンドポイントをクリックします。

次に、[Add endpoint] をクリックしグループに新しいエンドポイントを追加します。[Weight] には 255 を選択し、 [Preserve client IP address] をオンにします。

この段階でエンドポイントグループには、(クライアント IP が保持されたものと保持されていないものの) 2 つのエンドポイントがあり、両方とも同じ ALB を指しています。

実稼働の環境では、重み (Weight) 付けは小さい値から始め、IP アドレスに依存するセキュリティグループやロジックが正常に機能することを確認しながらテストを行ったほうが良いでしょう (重み付けは ブルー/グリーンデプロイ時やソフトウェア更新時のトラフィック管理にも使えます) 。今回はシンプルなテストのため、色々考慮することは止めにして、(IP 保持機能のない) 古いエンドポイントは削除します。とにかく、数分経つとエンドポイントが使えるようになりますので、テスト用ウィンドウを更新します。

これで、(X-Forwarded-For ヘッダーにより) プログラムからブラウザの IP アドレスにアクセスしていることが確認できます。このアドレスは自由な用途に使えます。また、この IP アドレスはセキュリティグループのルールにも使う事ができます。

Transitioning Your ALB Endpoints to Use Client IP Address Preservation」をご覧いただくと、機能切り替えのベストプラクティスについて詳しく学べます。

理解しておくべきこと
次に、クライアント IP 保持機能について知っておくべき重要事項をいくつか示します。

Elastic Network Interface (ENI) の使用 – Global Accelerator では、IP 保持機能のあるエンドポイントを含む各サブネットに ENI を 1 つ作成します。これは、必要でなくなった時点で自動的に削除されます。これらの修正や削除を手動で行わないでください。

セキュリティグループ – Global Accelerator では、GlobalAccelerator という名前のセキュリティグループを自動で作成し管理します。これに関しても、修正や削除を行わないようにしてください。

今すぐ利用可能です
Application Load Balancers のこの新機能は以下のリージョンで使用できます。合衆国東部 (バージニア北部)合衆国東部 (オハイオ)合衆国西部 (オレゴン)合衆国西部 (北カリフォルニア)欧州 (アイルランド)欧州 (フランクフルト)欧州 (ロンドン)アジアパシフィック (東京)アジアパシフィック (シンガポール)アジアパシフィック (ソウル)アジアパシフィック (ムンバイ)アジアパシフィック (シドニー)

Jeff;