在没有公共IP的情况下设置Amazon Elastic Beanstalk应用程序

时间:2016-08-22 18:06:31

标签: amazon-web-services amazon-ec2 elastic-beanstalk amazon-elastic-beanstalk

我们有一个通过vpn连接连接到我们的vpc的内部网络。 我们只使用私有IP来绕过,而VPC有一个NAT用于我们实例的互联网访问。我们尽量不在我们的实例上拥有任何公共IP。

我喜欢部署到beanstalk的简易性,因此我一直在努力将其用作单实例非负载平衡。

然而,无论我做什么,它都会迫使我拥有公共DNS和公共弹性IP,即使你取消关联' Associate Public IP Address' 更糟糕的是,它甚至不让我手动取消关联,只是不断添加它。

无论如何只在你的VPC中使用beanstalk而不是给它一个公共地址? 如果不是,为什么不呢?

2 个答案:

答案 0 :(得分:5)

使用单实例配置无法做到这一点。解决方法是使用负载均衡器,选择内部可见性,然后在构建环境时终止负载均衡器。它将是一个单一实例,而不是公共IP;

编辑: 因此Load Balancer最终会自行添加。

还要注意:如果从实例中删除beanstalk安全组并添加一个不允许从ELB访问的安全组,则beanstalk中的ENV将显示为红色,但它将正常工作。 但如果ENV为红色超过2周,beanstalk会自动终止实例,之后重建ENV将无效。

目前没有办法在没有使用弹性Beanstalk的公共IP的情况下部署单个实例,也就是说编写一个可以永久剥离弹性ip的lambda脚本。

[UPDATE :::]

如果您取消关联EIP,您有大约5秒的时间来释放它,如果您这样做,则不会重新连接。它不会导致env终止并将永远消失。 YAY(直到你重建)

答案 1 :(得分:1)

你看过教程Example: Launching an Elastic Beanstalk in a VPC with Amazon RDS了吗?具体来说,请检查ELB visibility配置,并确保将其设置为Internal

Deploying with the Elastic Beanstalk Console复制:

  

ELB的知名度

     

如果您的负载均衡器应公开,请选择External,如果只有您的VPC中有负载均衡器,请选择Internal

请学习本教程的其余部分以获取更多详细信息。