我有一个在私有子网中的 EC2 实例中运行的应用程序(以增加额外的安全性),直接从与公共子网关联的面向 Internet 的 NLB 接收流量。
我还在公共子网中配置了一个 NAT 网关,以便私有 EC2 实例可以从 Internet 下载所需的任何内容。
我刚刚得出下一个结论:
如果我从 Internet 请求:http://index.html
私有 EC2 实例使用 NAT 网关发回 HTTP 响应,因此您需要为该 NAT 处理付费。
https://aws.amazon.com/vpc/pricing/
“数据处理费用适用于通过 NAT 网关处理的每个千兆字节,无论流量的来源或目的地如何”
与私有子网(Web/应用服务器所在的位置)关联的路由表具有 { - local ; 0.0.0.0/0 - NATGateway} 如果我删除 0.0.0.0/0 条目,那么对服务器的 HTTP 请求将不起作用。如果我删除 NAT 网关,我会遇到同样的问题。此外,当我有 NAT 网关和路由表以从私有子网使用它时,当我从 Internet 执行简单的 HTTP 请求时,我还可以在 NAT 网关的监控选项卡中看到流量 - http:///index .html
有人遇到过同样的问题吗?我的理解正确吗?
有什么办法可以避免这种情况吗?我只能想到以下几点:
将应用程序移动到 Web 层(在公共子网中),以便 EC2 实例具有公共 IP,因此它不需要 NAT 网关来响应每个 HTTP 请求
在应用层之外创建一个 Web 层,以便所有流量都来自 NLB <-> Web 层 <-> 应用层
创建一个 NAT 实例而不是 NAT 网关,这样您就无需为该 NAT 处理付费。
谢谢!