当前位置: 首页 > 知识库问答 >
问题:

内部和面向internet的弹性负载平衡

庞旺
2023-03-14

我们试图在自动缩放的AWS中使用弹性负载平衡,这样我们就可以根据需要进行缩放。

我们的应用程序由几个较小的应用程序组成,它们都位于同一子网和同一VPC上。

我们想把我们的ELB放在一个应用程序和其他应用程序之间。

问题是我们希望负载均衡器在内部使用API的不同应用程序之间工作,并且面向互联网,因为我们的应用程序仍然有一些应该在外部而不是通过API完成的用法。

我已经读过这个问题,但我无法从那里准确地理解如何去做,它并没有具体说明任何步骤,或者我确实非常理解它。

我们能有一个内部和外部的ELB吗?

郑重声明,我只能通过虚拟专用网访问这个网络。

共有3个答案

殳毅
2023-03-14

我做了一个Lambda函数,检查哪些私有IP被设置为负载平衡器,并在Route53记录更改时更新它:https://github.com/Bramzor/lambda-sync-private-elb-ips

使用此功能,您可以轻松地将ELB用于私人交通。我个人使用它通过VPC区域间对等连接多个区域,而不需要额外的ELB。

谢弘阔
2023-03-14

我不同意@MattHouser的回答。实际上,在VPC中,ELB的所有内部接口都列在具有公共IP和主专用IP的网络接口中。我已经测试了我的公共ELB的私有IP,它的工作原理与外部的完全相同。

问题是:这些IP没有以最新的方式在任何地方列出,比如在私有的ELB DNS上。所以你必须自己做。

我在此基础上制作了一个小POC脚本,带有一个内部Route53托管区域:https://gist.github.com/darylounet/3c6253c60b7dc52da927b80a0ae8d428

冷善
2023-03-14

弹性负载均衡器不可能同时拥有公共IP地址和专用IP地址。这是一个或另一个,但不是两个。

如果您希望ELB具有专用IP地址,则它无法侦听来自internet的请求。

如果您的ELB面向公共,您仍然可以使用公共终结点从内部EC2实例调用它。然而,有一些与此相关的警告:

  • 流量将退出VPC并重新进入。私有IP地址不会为您提供直接的实例到ELB连接。
  • 您也不能在安全组规则中使用安全组。

有3种备选方案:

  1. 复制ELB和EC2实例,一个专用于私人通信,一个专用于公共通信
  2. 具有共享相同后端EC2实例的2个ELB(一个公用,一个专用)
  3. 不要对私有或公共流量使用ELB,而是在单个EC2实例上使用弹性IP地址(如果是公共的)或私有IP地址(如果是私有的)
 类似资料:
  • 我在私有子网实例上托管了一个web应用程序,因为该应用程序面向不同地理位置的组织内部用户。此应用程序需要AWS CloudFront支持,以便更有效地提供静态内容。问题是-我需要面向internet的负载平衡器(在公共子网中有实例)作为CloudFront分发的源。 我不希望面向internet的ELB和公共子网中的结果实例。 我可以利用AWS CloudFront连接到内部ELB吗?

  • 我有一个在Amazon的弹性负载均衡器后面运行的ASP. NET MVC 4应用程序。当我在负载均衡器和Web服务器上安装SSL证书并在Web服务器层终止SSL时,一切正常。 但是,当我尝试在负载平衡器层终止,将内部流量从负载平衡器转发到端口80上未加密的web服务器时,RequireHttps属性会导致重定向循环。这似乎是有道理的,因为它正在请求一个加密的通道,而不知道它正在得到一个加密的通道(

  • 我在GKE上有两个kubernetes集群:一个是处理与外部世界交互的公共集群,另一个是仅供内部使用的私有集群。 公共集群需要访问私有集群上的一些服务,我已经通过内部负载平衡器向公共集群的pod公开了这些服务。目前,我正在为负载平衡器指定要使用的内部IP地址,并将这些IP传递给公共POD,但我更希望负载平衡器可以选择任何可用的内部IP地址,并且我可以将其DNS名称传递给公共POD。 内部负载均衡器

  • 我们在AWS VPC中有一个面向内部的应用程序负载平衡器。运行在公用子网中的web应用程序正在访问此文件。该web应用位于自定义域url后面,并使用SSL证书进行安全保护。由于API负载平衡器未应用SSL,因此从web app到API LB的通信失败。 是否可以在AWS中为面向内部的负载平衡器获取SSL证书?

  • 我目前有一个基于rails的Web应用程序,它需要通过HTTP提供一小部分页面——但更喜欢通过HTTPS提供其余部分。在我当前的AWS设置中,SSL终止于弹性负载均衡器,与我的应用服务器的所有通信都通过HTTP进行。正因为如此,像Rack SSL Enforcher这样的解决方案是不合适的。目前,我在每个页面中提供以下JS片段来处理重定向: 这导致每次访问其中一个页面时,性能都会受到相对显著的影响

  • 我必须手动在MS Azure中创建Kubernetes群集,而不是使用AKS。因此: > 我在一个可用性集中创建了2个VM:一个用于k8s master,第二个用于k8s节点。 我创建了外部负载均衡器并将2个VM添加到后端池。 我使用kubes祈祷创建了k8s集群。 我创建了部署和负载均衡器服务: 但LoadBalancer服务外部IP始终处于挂起状态: 此外,telnet azure\u loa