ウェブサーバーには Elastic Load Balancing を使用しています。ロードバランサーがトラフィックをウェブサーバーに転送するために使用する IP アドレスを知りたいです。
簡単な説明
内部ロードバランサーまたはインターネット向けロードバランサーに関連付けられた IP アドレスは、ロードバランサーの DNS 名を解決することで決定できます。これらは、クライアントがロードバランサー宛のリクエストを送信する IP アドレスです。ELB ノードは、サーバーに転送されるリクエストのソース IP アドレスとして、エラスティックネットワークインターフェイスに関連付けられているプライベート IP アドレスを使用します。Network Load Balancer の場合、これらのリクエストのソース IP アドレスは、ターゲットグループの設定によって異なります。
これらの IP アドレスは、ウェブサーバー上のロードバランサーのトラフィックを許可したり、リクエスト処理を行ったりするなど、さまざまな目的に使用できます。ウェブサーバーのセキュリティグループインバウンドルールでセキュリティグループ参照を使用するのがベストプラクティスです。Classic Load Balancer または Application Load Balancer からのロードバランサートラフィックを許可することができます。ただし、Network Load Balancer はセキュリティグループをサポートしていないため、ターゲットグループの構成によっては、クライアントの IP アドレスまたは Network Load Balancer に関連付けられたプライベート IP アドレスは、ウェブサーバーのセキュリティグループで許可する必要があります。
次のオプションを使用して、ロードバランサーのエラスティックネットワークインターフェイスに関連するプライベート IP アドレスを検索します。
- AWS マネジメントコンソール
- AWS コマンドラインインターフェイス (AWS CLI)
解決策
Classic Load Balancer と Application Load Balancer の IP アドレスは時間とともに変化します。この情報を使用して、これらの IP アドレスを指すようにアプリケーションを静的に構成しないようにしてください。
注: AWS CLI コマンドの実行中にエラーが発生した場合は、最新の AWS CLI バージョンを使用していることを確認してください。
AWS マネジメントコンソール
- Amazon Elastic Compute Cloud (Amazon EC2) コンソールを開きます。
- ナビゲーションペインの [ロードバランシング] で、[ロードバランサー] を選択します。
- [ロードバランサー] で、IP アドレスを検索する必要のあるロードバランサーの名前をコピーします。
- ナビゲーションペインの [ネットワークとセキュリティ] で、[ネットワークインターフェイス] を選択します。
- 検索ボックスに、コピーしたロードバランサー名を貼り付けます。フィルタリングされた結果には、ロードバランサーに関連するすべてのエラスティックネットワークインターフェイスが表示されます。各エラスティックネットワークインターフェイスのプライマリプライベート IP アドレスは、[プライマリプライベート IPv4 IP] 列で確認できます。
AWS CLI
以下のコマンドを実行します。
aws ec2 describe-network-interfaces --filters Name=description,Values="ELB elb-name" --query 'NetworkInterfaces[*].PrivateIpAddresses[*].PrivateIpAddress' --output text
elb-name を次のオプションのいずれかに置き換えてください。
- Classic Load Balancer の場合: ロードバランサー名
- Application Load Balancer の場合: app/load-balancer-name/load-balancer-id
- Network Load Balancers の場合: net/load-balancer-name/load-balancer-id
Application Load Balancer と Network Load Balancer の場合は、次のコマンドを実行して load-balancer-id を検索してください。
aws elbv2 describe-load-balancers --names load-balancer-name
load-balancer-id は、ARN のロードバランサー名の後に続くスラッシュの後の最後の文字フィールドです。