VPC对等连接无法连接RDS和与之不同区域的EC2,但在相同对等连接VPC的EC2之间是可以的。

0

【以下的问题经过翻译处理】 我在us-east和eu-west之间建立了节点连接,使用了以下方法:

us-east:创建了一个公开面向的RDS和一个在同一VPC上的EC2 [1]; us-west:在VPC [2] 上创建了一个EC2; 为VPC [1]与VPC [2] (us-east到eu-west)创建了一个节点连接; 设置节点连接以解析DNS主机(两端); 更新了双方的路由表以接受对应VPC的CIDR范围; 更新了双方的安全组以允许来自CIDR范围的入站和出站连接。

我能够成功从eu-west的EC2向us-east的EC2实例发送ping请求来通信,这表明VPC对等隧道正确设置。

但是,当我尝试从eu-west的EC2连接到us-east的RDS mySQL实例时,无法解析它。

我使用netcat测试,使用以下方法:

nc -zv databasex.xxxxxx.us-east-2.rds.amazonaws.com 3306

已经附加到RDS的安全组有一个允许从与eu-west VPC相关的CIDR范围的端口3306连接的规则,就像我在EC2安全组上做的一样。我已经查阅了许多文章、帮助帖子和其他事情,看起来我已经正确地设置了所有的东西,所以我不知道为什么我不能从这个对等连接连接到RDS。

当然,当我添加一条记录到RDS安全组中,允许从eu-west的公共IP连接时,它会连接,但是我想利用节点连接而不是使用通过Internet网关的流量。请告诉我是否有必要看一些我可能明显错过的东西。谢谢。

1 Antwort
0

【以下的回答经过翻译处理】 我认为问题在于,当你从VPC外解决公共RDS实例的DNS名称时,你会得到公共地址。这就是为什么你的流量通过对等连接路由,但通过IGW"互联网"出去的原因。结果是数据包似乎来自EC2和NATGW的公共IP,而不是VPC CIDR的私有IP。

简单的解决方案是使RDS变成私有的,我认为这样DNS就总是解析为私有IP。如果不可能,那么可能会更复杂。可以使用私有区域中的别名进行解决(我自己没有测试过),参见https://repost.aws/knowledge-center/vpc-peering-troubleshoot-dns-resolution

profile picture
EXPERTE
beantwortet vor 8 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen