EC2 无法在 ELB 后面发送 SES 邮件

EC2 无法在 ELB 后面发送 SES 邮件

我们在位于 Elastic Load Balancer 后面的 EC2 中运行 wiki,EC2 没有公共 IP,来自互联网的流量通过 Route53 路由到 ELB。我们注意到 wiki 没有发送电子邮件,在进行故障排除时,我意识到如果我添加 Elastic IP,那么 wiki 确实可以正常发送电子邮件。也许值得注意的是,数据库和 EC2 是同一 VPC、区域和帐户的一部分,但 EC2 和简单电子邮件服务属于不同的 AWS 帐户。

我检查了 EC2 的安全组、ELB 安全组和 VPC 网络 ACL,它们都允许所有地方的出站流量,这让我很困惑,为什么它无法连接到 SES

理想情况下,我们不需要在 EC2 上使用公共 IP 来发送电子邮件。

我应该检查什么吗?或者是否有已知的方法可以使其工作?

答案1

由于您可以向 EC2 实例添加弹性 IP,因此我假设它位于公共子网中。在您的设置中,您无法从 EC2 实例访问互联网(另一个区域中的 SES 端点)。但是,您的负载均衡器(位于同一公共子网中)可以访问您的 EC2 实例,这就是您的网站正常运行的原因。

最简单的解决方案是将您的 EC2 实例放在您的私有子网中(例如您的数据库所在的子网)。然后,您可以通过 NAT 网关路由到互联网,并且应该能够通过 SES 顺利发送邮件。

一种解决方法是,将任何公共 IP 分配给实例。它不需要是弹性 IP。

相关内容