我有一个在 AWS EC2 上运行的 Django 应用程序。该应用程序偶尔会向外部 API (stripe.com) 发出请求。我对其进行了广泛的测试,它通过了所有测试。当我将其部署在应用程序负载均衡器后面时,外部 API 从未收到过请求。
当我将启动模板配置为自动分配公共 IP 时,请求会到达那里,但像这个建议甚至不要分配公共 IP,以防止实例受到攻击。
有没有办法在不分配公共 IP 的情况下建立此连接?
答案1
部署NAT 网关。它基本上是一个代理,可让您的实例连接到互联网,但不允许互联网上的任何东西进入。
如果您在 EC2 上运行财务工作负载,那么您可能还应该阅读有关 AWS 安全性的一般信息。
答案2
实例应该位于公共子网中,具有公共 IP,并直接连接到 Internet 和 API。或者它应该位于私有子网中,没有公共 IP,并通过 NAT 网关连接到 API。
但是,即使使用 NAT,将实例放置在没有公共 IP 的公共子网中也会导致问题。
查看此答案以了解更多详细信息:
希望有帮助:)