![[小ネタ] ELBのプライベートIPをコンソールからとAWS CLIを使用して確認する方法](https://devio2023-media.developers.io/wp-content/uploads/2019/05/elastic-load-balancing.png)
[小ネタ] ELBのプライベートIPをコンソールからとAWS CLIを使用して確認する方法
ナビゲーションペインのことをずっと左カラムと呼んでいた、たぬき( @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 ) でした。