通过 Elastic Beanstalk 启动实例,无需配置弹性 IP

ed.*_*ed. 13 amazon-elastic-ip elastic-beanstalk

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

我问这个的原因是因为如果我的工具构建了 5 个以上的应用程序(而且速度非常快),任何新应用程序都会失败,因为没有弹性 IP 可以分配给新应用程序。这是因为一个 AWS 账户通常最多有 5 个可用的弹性 IP。我可以转到 aws Web 控制台并在实例上选择“取消关联弹性 IP 地址”(见下文),之后 ec2 实例将获得一个新 IP(几分钟后)。这就是我想要的,但我想以编程方式进行,并且更愿意在没有它的情况下启动应用程序,而不是在创建实例后启动。

取消关联菜单选项

是否有可用于禁用新实例的弹性 IP 的配置选项?

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

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

如果在启动时这不可能,我将不得不使用EC2.disassociateAddress函数将弹性 IP 与实例解除关联。

Jen*_*ann 11

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

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

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

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

切换到“负载平衡、自动缩放”环境,无需 EIP。


cee*_*yoz 2

我不希望为这些应用程序启用弹性 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 地址的流量,在将流量传送到 VPC 之前,会将其目标地址转换为实例的私有 IP 地址。

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