通过未配置弹性IP的Elastic Beanstalk启动实例


10

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

我之所以这样问,是因为如果我的工具构建的应用程序超过5个(并且速度很快),则任何新应用程序都会失败,因为无法为新应用程序分配弹性IP。这是因为一个AWS账户通常最多具有5个可用的IP。我可以转到aws Web控制台,然后在实例上选择“取消关联弹性IP地址”(请参见下文),然后ec2实例将在几分钟后获得一个新的IP。这就是我想要的,但是我想以编程方式完成它,并且宁愿在没有该应用程序的情况下启动该应用程序,也不想在创建实例后立即执行。

取消关联菜单选项

是否可以使用配置选项为新实例禁用弹性IP?

我正在使用节点aws-sdk,但是任何语言的任何技巧都可以。

我正在创建m1.small单个实例。

如果启动时无法执行此操作,则必须使用EC2.disassociateAddress函数将弹性IP与实例解除关联。


如果要在专用子网中启动:stackoverflow.com/questions/39086022/…–
lonewarrior556

Answers:


10

使用环境类型“单个实例”时,您始终会获得一个EIP。

摘自Beanstalk开发人员指南,环境类型

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

禁用“关联公共IP地址”选项没有任何效果。

切换到“负载平衡,自动缩放”环境以在没有EIP的情况下解决问题。


与这里的其他答案不同,这实际上解决了我的问题,所以谢谢:)对于将来的旅行者,在新的“环境创建”对话框中,在环境创建结束时,在“配置更多选项”按钮下选择“负载平衡”选项。形成。
雅各布·戴维斯·汉森

1

我不希望为这些应用启用弹性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地址的流量将其目标地址转换为实例的私有IP地址,然后再将其传递到VPC。

新实例随附的自动分配的EIP不会花费任何费用,并且在实例停用后会自动消失。


感谢您的回答,我在问题中添加了更多信息,以解释我所遇到的问题以及如何通过Web控制台解决该问题。我可能会误解AWS的工作方式-但您可以进一步建议我将不胜感激。
ed。

@ed。我对EB并不是很熟悉,但是从您想要aws:ec2:vpc:AssociatePublicIpAddress在EB配置中设置的文档看来(这是单实例EB特有的)。或者,要求AWS增加您的EIP限制-根据我的经验,在这种情况下,他们会很乐意为您提供。
ceejayoz

我会加油的。
ed。

我尝试了上面的标志无济于事。我想我只是要通过sdk调用disassociateAddress。
ed。

1
记录:aws:ec2:vpc:AssociatePublicIpAddress仅适用于ec2实例,如果将其设置为false,则disassociateAddress该实例将没有公共IP。
ed。

0

您可能需要一个弹性的beantalk环境选项。

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

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

如果设置它,则此环境创建的所有节点将没有公共IP。入站流量将必须使用负载平衡器。VPC和子网将需要与NAT网关或Internet网关关联,以进行出站Internet访问。如果您没有出站互联网访问权限,那么Elastic Beanstalk构建将失败(它将无法访问AWS服务)。


我将此添加到EBS配置中: { "OptionName": "AssociatePublicIpAddress", "ResourceName": "AWSEBAutoScalingLaunchConfiguration", "Namespace": "aws:ec2:vpc", "Value": "false" },即使如此,Elastic IP仍与该实例相关联。有什么线索吗?
Kostanos '17

1
这是不正确的,它对eip没有影响
A-Developer-Has-No-Name

0

取消关联弹性IP地址后,您有大约10秒钟的时间来“释放”它。如果释放它,它将不会回来。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.