gpt4 book ai didi

amazon-web-services - AWS 网络负载均衡器不允许从其源实例到其源实例的流量

转载 作者:行者123 更新时间:2023-12-05 01:01:00 25 4
gpt4 key购买 nike

我有一个 ECS 集群,由不同 AZ 中的 2 个实例组成。我运行的众多服务之一是 SMTP 中继。我想在这个服务前面使用一个网络负载均衡器来轻松配置其他应用程序以使用中继。

一切就绪后,我遇到了以下问题:

如果容器存在于实例“A”上,则只有实例“B”能够访问它,反之亦然,否则它会超时。因此,网络负载均衡器似乎阻止了对同一实例上的服务的访问。

这里有什么我遗漏的吗?有人知道这一点并有解决方法吗?

更新:将服务扩展到 2 个实例时,它开始工作。我现在倾向于相信它与可用区有关。

最佳答案

我遇到了类似的问题。

这是我的设置:

  • 一个 VPC 分布在 3 个可用区。
  • 3 个公共(public)子网(每个 AZ 一个)
  • AZ-a 公有子网中的 1 个实例
  • 3 个私有(private)子网(每个 AZ 一个)
  • 1 个 NLB 分布在 3 个私有(private)子网中。
  • 一个 ECS 实例集群。每个私有(private)子网中有 1 个实例。 (AZ-a 中的实例-a,AZ-b 中的实例-b,AZ-c 中的实例-c)
  • 在每个实例上运行的服务;总共 3 个健康服务分布在注册到 NLB 的 3 个私有(private)子网中。
  • 用于将“myservice.example.com”映射到 NLB DNS 名称的路由 53 别名记录。

在执行的测试之下:

从私有(private)子网中的实例发起的查询。”

Test1:从 instance-a(在 AZ-a 中),查询“myservice.example.com”。

Result1:查询在其一个私有(private) IP 上命中 NLB。如果 IP 与 instance-a 位于同一子网中,则查询将超时。如果 IP 在不同的子网中,则查询成功。

Test2:与 Test1 相同,但从 instance-b(在 AZ-b 中)查询。

Result2:查询在其私有(private) IP 之一上命中 NLB。如果 IP 与 instance-b 位于同一子网中,则查询将超时。如果 IP 在不同的子网中,则查询成功。

与从 instance-c 发起的查询类似的结果。

从公共(public)子网 AZ-a 中的实例发起的查询

Test3:从 AZ-a 公有子网中的实例,查询“myservice.example.com”。

Result3:查询在其私有(private) IP 之一上命中 NLB。查询始终成功,无论命中哪个私有(private) IP。

从私有(private)子网 AZ-a 中的额外实例 (instance-a2) 发起的查询

Test4:我在 AZ-a 的私有(private)子网中启动了一个额外的实例 (instance-a2)。然后,从 instance-a2 查询“myservice.example.com”。 重要提示:此实例不运行任何服务,因此 NLB 永远无法选择路由任何请求。

Result4:查询一直成功!即使命中位于私有(private)子网 A(与 instance-a2 相同的子网)中的目标。

结论:

  • 使用 Test1Test2,在从托管目标服务的实例进行查询时,我可能会遇到与 Laurent Jalber Simard 相同的问题。
  • 根据 Test3,问题似乎并非来自与目标服务来自同一 AZ 的请求。
  • 使用 Test4,如果查询来自与托管目标服务的实例不同的实例,则似乎无法重现该问题;即使它们在同一个子网中。

因此,我目前的结论是,如果请求的source ip和NLB选择的target的destination ip相同,NLB就会超时.

我在 AWS NLB 文档中找不到此问题/限制,到目前为止,Google 搜索中没有任何内容。有没有人得出相同的结论?

关于amazon-web-services - AWS 网络负载均衡器不允许从其源实例到其源实例的流量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47272557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com