实例上的 RDS 和 SES 连接突然超时

实例上的 RDS 和 SES 连接突然超时

几天前,我在 AWS 上运行的 Rails 应用程序突然出现故障。经过调查,结果发现,无论出于何种原因,它突然无法通过域端点连接到 RDS 数据库。

故障排除后点击此处我对端点运行了 netcat,果然发现连接超时了。

该网站还通过其 API 使用 SES 发送电子邮件,并遇到了同样的问题,即 netcat 在尝试访问的电子邮件端点时超时email.us-east-1.amazonaws.com

作为让网站正常运行的权宜之计,我能够通过重新配置应用程序以直接连接到数据库端点的 IP 并跳过 DNS 查找来“解决”此问题。但潜在的问题仍然存在,不幸的是,该解决方案不适用于连接到 SES(无论使用 IP 还是域端点都会超时)。

实例和RDS数据库不是在 VPC 中,因此没有出站安全组规则。该应用程序已经运行多年,从未发生过类似事件,我确信我们的配置没有任何变化。它只是突然停止工作了。

我最初以为 DNS 查找可能是问题所在,但nslookup似乎dig没有问题。

有人能解释一下这里可能发生了什么吗?或者我可以做什么来解决这个问题?

编辑:更多信息

在对两个 SES 美国电子邮件端点进行实验后,我发现,从实例中,我可以连接到 us-west-2,但是不是到 us-east-1(这是我的地区)。但是我可以从我的工作机器毫无问题地连接到这两个。这是个线索吗?当 AWS 想要通过内部网络路由时,请求似乎失败了(这可能甚至没有意义)?请注意,无论使用邮件服务器的域名还是公共 IP,都会发生此行为。

> nc -zv email.us-west-2.amazonaws.com 443
Connection to email.us-west-2.amazonaws.com 443 port [tcp/https] succeeded!
(Works on instance and home machine)
> nc -zv email.us-east-1.amazonaws.com 443
(Times out when attempting from the AWS instance, but is fine from home)

答案1

我建议挖掘您的 DNS 条目并确保正确设置了值。只有在使用 DNS 时连接超时是没有意义的。只有在未提供 DNS 记录时才会发生这种情况。因此,挖掘 yourdb.yourdomain.com 并确保它确实解析到您的 RDS 实例。除此之外,您是否尝试过恢复数据库或进行任何数据库更改?确保您的 RDS 设置为可公开访问。

相关内容