自动释放未使用的 Elastic IPS 的方法
Automated way to release Unused Elastic IPS
请建议任何方式或脚本来释放未使用的 ec2 elastic ips。我尝试使用 boto 和 aws-cli,但无法完成。任何人都可以提供帮助。我想到了 aws ec2 release-address --public-ip <x.x.x.x>
但我在想如何通过发送未使用的弹性 ips 来循环它。
谢谢
可能有更好的方法,但我刚刚测试了这个并且效果很好
注意:如果使用EC2 classic可以使用aws ec2 release-address --public-ip <x.x.x.x>
命令释放弹性IP,否则必须使用aws ec2 release-address --allocation-id
EC2-经典
aws ec2 describe-addresses --query 'Addresses[].[PublicIp,AssociationId]' --output text | \
awk ' == "None" { print }' | \
xargs -I {} aws ec2 release-address --public-ip {}
EC2-VPC
aws ec2 describe-addresses --query 'Addresses[].[AllocationId,AssociationId]' --output text | \
awk ' == "None" { print }' | \
xargs -I {} aws ec2 release-address --allocation-id {}
这些命令在做什么:
- 列出所有 ElasticIP 信息并仅查询
AssociationId
字段以及 PublicIp
或 AllocationId
- 仅保留
AssociationId
字段为 None
的记录并打印 PublicIp
或 AllocationId
值
- 将此值传递给
release-address
命令以实际释放它。
请建议任何方式或脚本来释放未使用的 ec2 elastic ips。我尝试使用 boto 和 aws-cli,但无法完成。任何人都可以提供帮助。我想到了 aws ec2 release-address --public-ip <x.x.x.x>
但我在想如何通过发送未使用的弹性 ips 来循环它。
谢谢
可能有更好的方法,但我刚刚测试了这个并且效果很好
注意:如果使用EC2 classic可以使用aws ec2 release-address --public-ip <x.x.x.x>
命令释放弹性IP,否则必须使用aws ec2 release-address --allocation-id
EC2-经典
aws ec2 describe-addresses --query 'Addresses[].[PublicIp,AssociationId]' --output text | \
awk ' == "None" { print }' | \
xargs -I {} aws ec2 release-address --public-ip {}
EC2-VPC
aws ec2 describe-addresses --query 'Addresses[].[AllocationId,AssociationId]' --output text | \
awk ' == "None" { print }' | \
xargs -I {} aws ec2 release-address --allocation-id {}
这些命令在做什么:
- 列出所有 ElasticIP 信息并仅查询
AssociationId
字段以及PublicIp
或AllocationId
- 仅保留
AssociationId
字段为None
的记录并打印PublicIp
或AllocationId
值 - 将此值传递给
release-address
命令以实际释放它。