以自动方式发布未使用的弹性IPS

时间:2016-07-26 07:30:26

标签: amazon-web-services amazon-ec2 boto aws-sdk aws-cli

请建议以任何方式或脚本释放未使用的ec2弹性ips。我尝试过boto和aws-cli,但我无法完成它。任何人都可以帮忙。我想到aws ec2 release-address --public-ip <x.x.x.x>,但我想我怎样才能通过发送未使用的弹性ips来循环播放。

由于

1 个答案:

答案 0 :(得分:2)

可能有一种更好的方法,但我只测试过这种方法,而且效果很好

注意:如果您使用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 '$2 == "None" { print $1 }' | \
xargs -I {} aws ec2 release-address --public-ip {} 

<强> EC2-VPC

aws ec2 describe-addresses --query 'Addresses[].[AllocationId,AssociationId]' --output text | \
awk '$2 == "None" { print $1 }' | \
xargs -I {} aws ec2 release-address --allocation-id {} 

这些命令正在做什么:

  • 列出所有ElasticIP信息,仅查询AssociationId字段以及PublicIpAllocationId
  • 仅保留AssociationId字段为None的记录,并打印PublicIpAllocationId
  • 将此值传递给release-address命令以实际释放它。