こんにちは!イーゴリです。
EC2がどのElastic Load Balancerに関連付けられているか確認する方法を紹介したいと思います。
ロードバランサータイプによって確認方法が異なりますので、下記のコマンドをご参考ください。
Classic Load Balancer への関連付けの確認方法
特定のインスタンスIDが紐づいているELBを表示するコマンドです。
aws elb describe-load-balancers --query "LoadBalancerDescriptions[*].{ID:LoadBalancerName,InstanceId:Instances[*].InstanceId}[?contains(to_string(@),'i-xxxxxxxx')]"
- i-xxxxxxxxのかわりに適切なインスタンスIDを記載します。
出力結果:
[ { "ID": "対象ELB名", "InstanceId": [ "ELBに関連付けられているインスタンスID", "ELBに関連付けられているインスタンスID" ] } ]
Application Load Balancer / Network Load Balancerへの関連付けの確認方法
前提条件としてはjqがインストールされていることです。
特定のEC2のIPアドレスが紐づくAWS Application Load Balancer / Network Load Balancerのターゲットグループ一覧を表示し、grepコマンドで特定のIDだけ表示させます。
UPD
aws elbv2 describe-target-groups | jq -r '.TargetGroups[] | [.TargetGroupName, .TargetGroupArn] | @tsv' | while read NAME ARN; do aws elbv2 describe-target-health --target-group-arn $ARN | jq -r --arg TARGET_ID "i-XXX" '.TargetHealthDescriptions[] | select(.Target.Id == $TARGET_ID) | "'"$NAME\t$ARN"'"' done
- i-XXXのかわりにインスタンスIDを記載します。
出力結果:
<TG名> <TG_ARN>
古い方法(確認できなくなった)
aws elbv2 describe-target-groups | jq -r '.TargetGroups[] | [.TargetGroupName, .TargetGroupArn] | @tsv' | while read NAME ARN; do aws elbv2 describe-target-health --target-group-arn $ARN | jq -r '.TargetHealthDescriptions[] | ["'"$NAME"'", .Target.Id, .Target.Port] | @tsv' ; done | grep <インスタンスIP>
- <インスタンスIP>のかわりに適切なインスタンスIPを記載します。
出力結果:
対象NLBターゲットグループ名 NLB/CLBターゲットグループに関連付けられているインスタンスIP ポート番号
以上、御一読ありがとうございました。
本田 イーゴリ (記事一覧)
カスタマーサクセス部
・2024 Japan AWS Top Engineers (Security)
・AWS SAP, DOP, SCS, DBS, SAA, DVA, CLF
・Azure AZ-900
・EC-Council CCSE
趣味:日本国内旅行(47都道府県制覇)・ドライブ・音楽