通过未configurationElastic IP的Elastic Beanstalk启动实例

我正在创build一个工具,通过ElasticBeanstalk将Docker映像部署到EC2,因此开发团队可以快速演示他们的工作而无需合并。 我不希望弹性IP为这些应用程序启用,因为它们是短暂的。

我问这个问题的原因是因为如果我的工具构build超过5个应用程序(而且速度非常快),则任何新应用程序都将失败,因为没有弹性IP可以分配给新应用程序。 这是因为AWS账户通常最多可以使用5个弹性IP 。 我可以去aws web控制台,然后在一个实例上select'Disassociate Elastic IP Address'(见下文),之后ec2实例将获得一个新的ip(几分钟后)。 这是我想要的,但我想要以编程方式执行,并且希望在没有它的情况下启动应用程序,而不是在创build实例时执行。

取消关联菜单选项

是否有一个configuration选项,我可以用它来为新的实例禁用Elastic IP?

我正在使用节点aws-sdk ,但任何语言的任何提示将做。

我正在创buildm1.small单个实例。

如果启动时无法实现,则必须使用EC2.disassociateAddress函数将Elastic IP从实例中解除关联。

当使用环境types“单一实例”时,您将始终获得EIP。

从Beanstalk开发者指南,环境types :

单实例环境包含一个具有弹性IP地址的Amazon EC2实例。

禁用“关联公用IP地址”选项不起作用。

切换到“负载平衡,自动缩放”环境以获得没有EIP的情况。

我不希望弹性IP为这些应用程序启用,因为它们是短暂的。

如果您位于VPC的公有子网(很可能),则需要使用该实例才能与Internet进行通信。 根据http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html

要使公有子网中的实例能够与Internet进行通信,它必须具有公用IP地址或与您的实例上的私有IP地址相关联的弹性IP地址 。 您的实例只知道在VPC和子网中定义的私有(内部)IP地址空间。 Internet网关逻辑上代表您的实例提供一对一的NAT,以便在通信离开您的VPC子网并访问Internet时,回复地址字段将设置为您的实例的公有IP地址或弹性IP地址,而不是它的私有IP地址。 相反地​​,目标地址为您的实例的公有IP地址或弹性IP地址的stream量在将stream量传递到VPC之前将其目标地址转换为实例的私有IP地址。

新实例附带的自动分配的EIP不需要花费任何费用,当实例退役时,它们会自动消失。

有一个弹性beanstalk环境选项,可能是你在之后。

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options-general.html#command-options-general-elbloadbalancer

命名空间:aws:ec2:vpc AssociatePublicIpAddress:false

如果设置它,则由此环境创build的所有节点将不会有公共IP。 入站stream量将不得不使用负载均衡器。 VPC和子网将需要与NAT网关或互联网网关相关联,以实现出站Internet访问。 如果您没有出站Internet访问,则Elastic Beanstalk构build将失败(无法访问AWS服务)。

分离弹性IP地址后,您有大约10秒的时间来“释放”它。 如果你释放它,它不会回来。