【问题标题】:Finding public IP addresses of all EC2 instances in a ECS cluster查找 ECS 集群中所有 EC2 实例的公网 IP 地址
【发布时间】:2019-04-04 10:11:11
【问题描述】:
我尝试查找 ECS 集群中所有 EC2 实例的公共 IP 地址。我可以使用命令查看 EC2 实例 ID:
aws ecs list-container-instances --cluster myCluster
但这不会显示 IP 地址。我搜索了 ECS CLI 文档,但找不到用于检索每个 EC2 实例的关联 IP 地址的命令。最简单的方法是什么?
谢谢。
【问题讨论】:
标签:
amazon-web-services
amazon-ec2
aws-cli
aws-ecs
【解决方案1】:
这是我得到的,不是很漂亮——应该使用 python 和 boto2。它使用通过管道传输到 jq 的 aws cli 以及我正在学习的更多 bash。
#!/bin/bash
c_instances=`aws ecs list-container-instances --cluster your-cluster --region=eu-west-1 | jq '.containerInstanceArns | join (" ")' | tr -d '"'`
i_ids=`aws ecs describe-container-instances --cluster your-cluster --region=eu-west-1 --container-instances $c_instances | jq '.containerInstances | .[] | .ec2InstanceId'|tr '\n' ' ' | tr -d '"'`
ips=`aws ec2 --region=eu-west-1 describe-instances --instance-ids $i_ids |jq '.Reservations | .[] | .Instances | .[] .NetworkInterfaces | .[] .PrivateIpAddresses| .[] .Association| .PublicIp '`
echo $ips