自动释放未使用的 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 字段以及 PublicIpAllocationId
  • 仅保留 AssociationId 字段为 None 的记录并打印 PublicIpAllocationId
  • 将此值传递给release-address命令以实际释放它。