没有公共 IP 地址,AWS 应用程序无法连接到外部 API

没有公共 IP 地址,AWS 应用程序无法连接到外部 API

我有一个在 AWS EC2 上运行的 Django 应用程序。该应用程序偶尔会向外部 API (stripe.com) 发出请求。我对其进行了广泛的测试,它通过了所有测试。当我将其部署在应用程序负载均衡器后面时,外部 API 从未收到过请求。

当我将启动模板配置为自动分配公共 IP 时,请求会到达那里,但像这个建议甚至不要分配公共 IP,以防止实例受到攻击。

有没有办法在不分配公共 IP 的情况下建立此连接?

答案1

部署NAT 网关。它基本上是一个代理,可让您的实例连接到互联网,但不允许互联网上的任何东西进入。

如果您在 EC2 上运行财务工作负载,那么您可能还应该阅读有关 AWS 安全性的一般信息。

答案2

实例应该位于公共子网中,具有公共 IP,并直接连接到 Internet 和 API。或者它应该位于私有子网中,没有公共 IP,并通过 NAT 网关连接到 API。

但是,即使使用 NAT,将实例放置在没有公共 IP 的公共子网中也会导致问题。

查看此答案以了解更多详细信息:

AWS:仅来自私有子网的出站连接

希望有帮助:)

相关内容