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

问题描述 投票:0回答:3

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

我喜欢部署到 beanstalk 的便捷性,因此我一直在努力将其用作单实例而不是负载平衡。

但是,无论我做什么,它都会迫使我拥有公共 dns 和公共弹性 IP,即使您取消单击“关联公共 IP 地址” 更糟糕的是,它甚至不允许我手动取消关联,只是不断将其添加回来。

有没有办法只在您的 VPC 内使用 beanstalk,而不给它一个公共地址? 如果不是,为什么不呢?

amazon-web-services amazon-ec2 amazon-elastic-beanstalk
3个回答
10
投票

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

编辑: 因此负载均衡器最终会将其自身添加回来。

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

目前无法使用 Elastic Beanstalk 部署没有公共 IP 的单个实例,除非编写一个每分钟剥离弹性 IP 的 lambda 脚本。

[更新:::]

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


1
投票

您是否看过教程示例:使用 Amazon RDS 在 VPC 中启动 Elastic Beanstalk ?具体来说,检查

ELB visibility
配置并确保将其设置为
Internal

复制自 使用 Elastic Beanstalk 控制台部署

ELB 可见性

如果您的负载均衡器应公开可用,请选择

External
;如果负载均衡器应仅在您的 VPC 内可用,请选择
Internal

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


0
投票

是的,可以。在创建 beanstalk 环境之前,首先创建一个自定义私有子网。然后,在创建环境时,选择您刚刚创建的私有子网。然后取消选中“激活公共 IP”。

出于安全目的,这是更好的选择。您的实例不应通过互联网公开访问。

注意:如果您将环境置于公共子网中,则将无法关闭公共 IP。这是有道理的,因为您位于公共子网中。

© www.soinside.com 2019 - 2024. All rights reserved.