这不是“最好的”方式,但它又快又简单。使用 AWS CLI aws ec2 describe-addresses 将 EIP 和一些有用的细节转储为 JSON 字符串。通过附加 > myips.txt 将此输出发送到文件,然后使用文本编辑器搜索 IP。
aws ec2 describe-addresses > myips.txt
myips.txt 将包含每个 EIP 的此类数据
{
"Addresses": [
{
"InstanceId": "i-XXXXXXXXXXXXXXXXX",
"PublicIp": "XXX.XXX.XXX.XXX",
"AllocationId": "eipalloc-XXXXXXXX",
"AssociationId": "eipassoc-XXXXXXXX",
"Domain": "vpc",
"NetworkInterfaceId": "eni-XXXXXXXX",
"NetworkInterfaceOwnerId": "XXXXXXXXXXXX",
"PrivateIpAddress": "XXX.X.X.XXX",
"Tags": [
{
"Key": "Name",
"Value": "Web1"
},
{
"Key": "Role",
"Value": "Web"
}
],
"PublicIpv4Pool": "amazon",
"NetworkBorderGroup": "us-east-1"
}
]
}
如果您有一堆不同的帐户,您可以按名称使用不同的凭据,如下所示:aws --profile producton ec2 describe-addresses >> myips.txt(注意:>> 附加)。这假设配置文件“production”在 ~/.aws/credentials (Linux & Mac) 或 %USERPROFILE%.aws\credentials (Windows) 中定义,如下所示:
[production]
aws_access_key_id=AKIAI44QH8DHBEXAMPLE
aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
为自己创建一个 .sh 或 .bat 脚本,并使用它对每个配置文件/区域执行 aws,并继续将结果附加到当前目录中的“myips.txt”文件中:
aws --profile production --region us-east-1 ec2 describe-addresses > myips.txt
aws --profile production --region ca-central-1 ec2 describe-addresses >> myips.txt
aws --profile sandbox ec2 describe-addresses >> myips.txt
aws --profile testing ec2 describe-addresses >> myips.txt
aws --profile backup ec2 describe-addresses >> myips.txt
然后,您可以在需要查找 IP 的任何时候运行此脚本(每次运行该脚本时,它都会创建/覆盖 myips.txt)。
您显然可以进一步自动执行此操作,遍历每个区域,很好地格式化输出等。另一种选择是使用各种 filter options for aws cli 搜索 IP。搜索所需的 IP 而不是检索所有 IP 的列表可能会更快。这在很大程度上取决于您要投入多少精力以及您的 aws 帐户的大小。