尝试连接RDS时,AWS EC2会间歇性出现UnknownHostException错误

4

我在EC2上运行Java Play框架。当我在生产环境启动Play后,一切正常。然而,大约运行了一天后,连接到RDS实例时会出现UnknownHostException错误,这将阻止EC2与RDS之间的任何交易。如果我重新启动应用程序,它再次正常工作。

我已经检查过连接池,相信其正常工作。此外,我已经使用networkaddress.cache.ttl = 0和networkaddress.cache.negative.ttl = 0进行了测试。然而,我仍然会得到错误。

有人对此有想法吗?


我们也曾看到“UnknownHostException”错误在一个(仅限于一个特定的)实例上出现,但它们只是间歇性地出现,并且会在一分钟左右自行修复 - 我们不需要采取任何措施。然而,对于我们来说,这不仅限于RDS,而且还会发生在同一AWS区域内的连接中。 - xeraa
偶尔也会发生在我身上。 - jvliwanag
在我的情况下,它们没有自行修复。我最终停止并重新启动了我的EC2实例,这样就永久地解决了问题。我猜测当我重新启动时,它被分配给了一个新的(更好配置的)EC2实例。 - user2934804
1个回答

0

将此内容从评论中移至答案。问题已通过停止 EC2 实例然后重新启动来解决。之后,错误未再出现。

在我的情况下,它没有自行解决。我最终停止/启动了我的 EC2 实例,这永久地解决了问题。我猜测是在重新启动时它被分配给另一个(配置更好的)EC2 实例。

执行此操作 会发生什么。

  • 新的内部IP地址,但可能是随机相同的。[VPC实例通过停止/启动保持相同的内部IP地址。]

  • 新的外部IP地址(虽然可能是随机相同的)。

  • 如果在停止实例之前将弹性IP地址与实例关联,则需要在启动后重新关联它。 [VPC实例通过停止/启动保持弹性IP地址关联。]

  • 实例以前的临时存储中的任何内容都被清除,并提供新的临时存储(通常作为/mnt挂载)。

  • 您可以将实例停止任意长时间,而不会因运行时间而收费(尽管对于EBS卷存储,您确实会以更低的费率收费)。请参见下一个要点。

  • 当您再次启动实例时,将为该实例启动一个新的计费小时。例如,如果您启动了一个新实例,然后在前60分钟内停止/启动了3次,则将收取4个小时的费用,而不是1个小时。

  • 当您想要再次启动实例时,EC2可能没有可用的正确实例类型插槽来运行您的实例。我曾经遇到过这种情况,并临时切换到其他可用的实例类型以使其再次运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接