当同一子网用于另一项服务时,AWS VPC 对等不工作

Posted

技术标签:

【中文标题】当同一子网用于另一项服务时,AWS VPC 对等不工作【英文标题】:AWS VPC peering not working when same subnet is used for another service 【发布时间】:2020-08-20 05:57:15 【问题描述】:

这是发生了什么:

在 VPC-A 中创建了 ECS fargate 集群 A 和服务/任务(示例)。 在另一个 VPC B 中创建了 MSK Kafka 集群(示例)。 创建的对等连接和路由表也更新了。

到目前为止一切正常,但是,

现在,我在 VPC-A 中创建了另一个 ECS fargate 集群 B 和服务/任务。 但应用程序似乎无法连接到 MSK kafka 集群,这与集群 A 的工作方式相同(仍然有效!)

集群服务 B 与集群服务 A 具有相同的安全组。

应用程序的日志是这样写的:

2020-05-05 15:40:11[2020-05-05 13:40:11,737] [1] [ERROR] Unable connect to "example-1.dummy-kafka-stage.ssss.c2.kafka.eu-central-1.amazonaws.com:9092": [Errno 110] Connect call failed ('172.31.30.5', 9092)
[2020-05-05 13:40:11,737] [1] [ERROR] Unable connect to "example-1.dummy-kafka-stage.ssss.c2.kafka.eu-central-1.amazonaws.com:9092": [Errno 110] Connect call failed ('172.31.30.5', 9092)

VPC 对等已激活,下图是其在 VPC 对等选项卡中的路由表:

这是 VPC 子网路由表,也已配置(下图中的一个此类子网示例):

你知道会发生什么吗?

【问题讨论】:

MSK 安全组的入站白名单是如何完成的?是通过将 VPC A 安全 grp 或整个 VPC/子网范围列入白名单来完成的吗? 【参考方案1】:

您是否将两个 VPC 路由表都添加了?

两个子网都需要了解如何相互路由

【讨论】:

抱歉,没听懂?我想是的,好像那不一样,那么它为什么已经为一项服务工作了呢? 所以要确认 Fargate 集群,同样的子网?或者至少子网使用相同的路由表? 我还放了对等连接路由表的截图。 Fargate 集群服务使用相同的子网,当然还有相同的 VPC。 可能值得启用 docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html 以查看它是否离开实例,如果是,拒绝在哪一侧

以上是关于当同一子网用于另一项服务时,AWS VPC 对等不工作的主要内容,如果未能解决你的问题,请参考以下文章

一个 VPC 终端节点用于 AWS 中的多项服务

AWS ELB - 多 VPC 负载均衡

AWS云常规操作

京东云VPC对等连接(VPC Peering)

在AWS上配置基本的VPC

AWS:如何将 *** 客户端连接到 RDS(*** 服务器 EC2 和 RDS 在同一个 VPC 中)