Application Load Balancer を使用して、送信元 IP に基づいてリクエストをルーティングする方法を教えてください。
最終更新日: 2020 年 9 月 23 日
リクエストの送信元 IP アドレスに基づいて、そのリクエストに特有のアクションを実行したいと考えています。これには、特定のユーザーにカスタムレスポンスを送信したり、特定のユーザーのグループに異なるバージョンのアプリケーションを提供したりすることが含まれる場合があります。Application Load Balancer を使用してこれを行うにはどうすればよいですか?
解決方法
一部のユースケースでは、リクエストの送信元 IP アドレスに基づいて、特定のアクションを実行する必要が生じることがあります。たとえば、1 つのアプリケーションに、2 つのバージョンがあるとします。1 つのバージョンは、グローバルユーザー向けのパブリックバージョンです。もう 1 つは、いくつかの拡張 (ベータ) 機能を含む内部バージョンです。企業ネットワークの CIDR からアプリケーションにアクセスする従業員のみが内部バージョンを使用できるようにしたい場合があります。これや他の多くの同様のタスクを実行するには、送信元 IP アドレスに基づいてリスナールールを設定できます。
この設定を開始する前に、送信元 IP に基づくルールにより、IP ヘッダー(レイヤー 3)にある送信元 IP アドレスがチェックされることに、注意してください。クライアントと(送信元 IP を変更している)Application Load Balancer の間に、プロキシまたはファイアウォールが存在する場合は、リスナールールにより、そのファイアウォールかプロキシの IP アドレスを指定します。
また、クライアントからのリクエストをブロックするリスナー規則を使用しないようにします。その代替として、セキュリティグループ、または、ネットワークアクセスコントロールリストを使用するのが、ベストプラクティスです。多数のクライアントをブロックする場合には、AWS WAF を使用できます。
- Application Load Balancer を作成します (まだ作成していない場合)。
- Amazon Elastic Compute Cloud (Amazon EC2) コンソールを開きます。
- ナビゲーションペインにある [Load Balancing] (ロードバランシング) で、[Load Balancers] (ロードバランサー) をクリックします。
- ロードバランサーを選択します。
- [Listeners] (リスナー) タブを選択します。
- リスナーを選択し、[View/edit rules] (ルールの表示/編集) を選択します。
- ルールの追加アイコン (プラス記号) を選択し、次に [Insert rule] (ルールの挿入) を選択します。
- [Add condition] (条件の追加) を選択してから、[Source IP] (ソース IP) をクリックします。
- 別のアクションを設定する予定の IP アドレスを指定します。
注: 単一の IP アドレスまたはプレフィックス付きのネットワーク CIDR を指定できます。例えば、「1.1.1.1/32」または「10.8.0.0/21」です。 - [Add action] (アクションの追加) をクリックしてから、必要なアクションを選択します。例:
Forward – 別のターゲットグループに転送します。(アプリケーションの内部バージョンを実行しているターゲットグループへの転送など)。
Return fixed response – 特定のユーザーをブロックしたり、特定のユーザーにカスタムレスポンスを提供したりします。 - 条件を保存するには、チェックマークアイコンを選択します。
- ルールを保存するには、[Save] (保存) を選択します。