为 AWS EB 应用程序的网络负载均衡器 (NLB) 使用静态 IP?
Posted
技术标签:
【中文标题】为 AWS EB 应用程序的网络负载均衡器 (NLB) 使用静态 IP?【英文标题】:Use static IP for an AWS EB application's Network Load Balancer (NLB)? 【发布时间】:2019-03-19 09:21:54 【问题描述】:在我的弹性 beanstalk 应用程序中,一切正常。但是,我的客户想要应用程序的静态(弹性)IP,而不是 AWS 提供的 DNS。我无法在 ELB DNS 上进行反向查找,因为 IP 不是静态的。
blog post 声明我可以将静态 IP 附加到 NLB,但我不知道如何实现。
【问题讨论】:
您是否阅读了您链接的博客文章?它解释了如何为你做这件事。为什么您的客户端需要 IP 而不是 DNS? 这是他们的公司政策,没有主机名,只有 IP 地址,该链接显示了如何创建一个新的,在我的情况下,弹性 beantalk 在配置期间创建了负载均衡器 【参考方案1】:对于安全敏感的组织来说,想要更新他们的防火墙以与互联网上使用静态 IP 地址的第三方服务进行通信是很常见的。
手动设置时,您创建一个或多个 EIP(静态 IP),然后在创建网络负载均衡器时选择这些 EIP。
创建 Elastic Beanstalk 环境时,您可以选择创建经典、应用程序或网络负载均衡器。一旦创建,您就无法更改它,因此请确保您拥有网络负载均衡器。如果您的环境还没有 NLB,我建议创建一个具有 NLB 的新环境,并将 URL 切换到这个新环境。
但是,当您创建 Elastic Beanstalk Stack with an NLB 时,您无法为即将创建的 NLB 选择 EIP。
好消息是,在 AWS 控制台中查看 EC2 > 网络接口,您可以看到已为 NLB 创建的 ENI,并且这些 ENI 已分配公共 IP 地址 (EIP )。只要 NLB 存在,这些都是静态地址。不幸的是,它们似乎不是客户拥有的 EIP,而且您不能在 NLB 上更换 ENI 或 EIP 以重用 IP 地址。
如果你重建环境,那些 IP 地址将会改变。
如果您喜欢冒险,可以在 ALB 上创建 NLB 的 AWS 方法。这提供了一个静态 IP(手动配置它)和一个 ALB(在您的情况下由 EB 配置)以及第 7 层负载平衡的好处。 see here
【讨论】:
我遇到了同样的要求,我正在阅读AWS Method of Creating an NLB on a ALB,这似乎非常复杂且不稳定。想知道人们是否真的在使用它并可以分享他们的经验。 @HenriqueGontijo 我们已经得出结论,所有替代方案都更糟,因此我们选择在 ALB 前面设置 NLB。它“有效”,但正如你所说,它远非理想。以上是关于为 AWS EB 应用程序的网络负载均衡器 (NLB) 使用静态 IP?的主要内容,如果未能解决你的问题,请参考以下文章
AWS Elastic Beanstalk - 将负载均衡器追溯添加到应用程序
网络负载均衡器目标组中的 AWS Auto Scaling 目标