[小ネタ] ELBのプライベートIPをコンソールからとAWS CLIを使用して確認する方法

ELBのプライベートIPをコンソールからとAWS CLIを使用して確認する方法を細かく説明してみました
2020.07.01

ナビゲーションペインのことをずっと左カラムと呼んでいた、たぬき( @tanuki_tzp )です。

今回は、ELB のプライベートIP をコンソールからと AWS CLI を使用して確認する方法をご紹介します。
公式のナレッジは以下です。
AWS ナレッジセンター:Elastic Load Balancing がウェブサーバーに送信するトラフィックの送信元 IP アドレスは何ですか?

コンソールからプライベートIP を調べる

まず、コンソールからの確認手順です。
ちょうどよくテスト用に NLB が作成してあったので、"test-nlb" のプライベートIP を確認します。

1.コンソールにログイン
2.サービスから「EC2」を開き、EC2 ダッシュボードから「ロードバランサー」を開く

3.プライベートIP を調べたい ELB の名前 (test-nlb) をメモしておく

4.ナビゲーションペインの「ネットワーク&セキュリティ」内から「ネットワークインターフェイス」を開く

5.検索欄に手順3でメモしておいた ELB (test-nlb) の名前を入力し、[Enter]キーを押す
確認したい ELB のみが表示され、プライベートIP を確認することができます。


デフォルトだと、表示されている列が多いので、列の表示を絞るか、ネットワークインターフェースを選択して詳細から「プライマリプライベートIPv4」を確認してください。
(※後から気付いたので、このキャプチャはそのままスクロールしています)

コンソールからのプライベートIP 確認方法は以上です。

AWS CLI を使用して調べる

AWS CLI を使用する場合、ELB の種類によってコマンドが異なるため分けて記載します。

ALBの場合

プライベートIP を調べたい ALB の名前を "test-alb" とします。

1.プライベートIP を調べたい ALB の ARN を取得する

$ aws elbv2 describe-load-balancers --name "test-alb" --query "LoadBalancers[].[LoadBalancerName,LoadBalancerArn]" --output text

> test-alb        arn:aws:elasticloadbalancing:ap-northeast-1:123456789012:loadbalancer/app/test-alb/xxxxxxxxxxxxxxx

2.取得した ARN の "arn:~~~:loadbalancer/" 以降を Values に入力し、実行する
※Values に入力されている"ELB (半角スペース)"を削除してしまうとフィルターに引っかからなくなるので注意してください。

# aws ec2 describe-network-interfaces --filters Name=description,Values="ELB <ここに入力>" --query 'NetworkInterfaces[*].PrivateIpAddresses[*].PrivateIpAddress' --output text
$ aws ec2 describe-network-interfaces --filters Name=description,Values="ELB app/test-alb/xxxxxxxxxxxxxxx" --query 'NetworkInterfaces[*].PrivateIpAddresses[*].PrivateIpAddress' --output text

> privateIP

NLBの場合

プライベートIPを調べたいNLBの名前を "test-nlb" とします。

1.プライベートIPを調べたい NLB の ARN を取得する

$ aws elbv2 describe-load-balancers --name "test-nlb" --query "LoadBalancers[].[LoadBalancerName,LoadBalancerArn]" --output text

> test-nlb        arn:aws:elasticloadbalancing:ap-northeast-1:123456789012:loadbalancer/net/test-nlb/xxxxxxxxxxxxxxx

2.取得した ARN の "arn:~~~:loadbalancer/" 以降を Values に入力し、実行する
※Valuesに入力されている"ELB (半角スペース)"を削除してしまうとフィルターに引っかからなくなるので注意してください。

# aws ec2 describe-network-interfaces --filters Name=description,Values="ELB <ここに入力>" --query 'NetworkInterfaces[*].PrivateIpAddresses[*].PrivateIpAddress' --output text
$ aws ec2 describe-network-interfaces --filters Name=description,Values="ELB net/test-nlb/xxxxxxxxxxxxxxx" --query 'NetworkInterfaces[*].PrivateIpAddresses[*].PrivateIpAddress' --output text

> privateIP

CLBの場合

プライベートIP を調べたい CLB の名前を "test-clb" とします。

1.プライベートIP を調べたい CLB の 名前("test-clb") を入力して実行する
※Values に入力されている"ELB (半角スペース)"を削除してしまうとフィルターに引っかからなくなるので注意してください。

# aws ec2 describe-network-interfaces --filters Name=description,Values="ELB <ここに入力>" --query 'NetworkInterfaces[*].PrivateIpAddresses[*].PrivateIpAddress' --output text
aws ec2 describe-network-interfaces --filters Name=description,Values="ELB test-clb" --query 'NetworkInterfaces[*].PrivateIpAddresses[*].PrivateIpAddress' --output text

> privateIP

AWS CLIを使ってプライベートIP を確認する方法は以上です。

おわりに

ALB と CLB のプライベートIP は時間経過で変更され、固定することができないため、プライベートIP を指定する設定はできないので注意してください。

NLB はプライベートIP の固定ができます:[新機能] NLB でプライベートIPの指定とサブネットの追加が可能になりました


以上、覚えたての"ナビゲーションペイン"を使えて嬉しいたぬき( @tanuki_tzp ) でした。