我有一个应用程序在私有子网中的EC2实例中运行(以增加额外的安全性),直接从与公有子网关联的面向Internet的NLB接收流量.
我还在公共子网中配置了NAT网关,以便私有EC2实例可以从Internet下载所需的任何内容.
我刚刚得出了下一个结论:
如果我从互联网上请求:http://index.html
私有EC2实例使用NAT网关发回HTTP响应,因此您需要为该NAT处理付费.
https://aws.amazon.com/vpc/pricing/
"数据处理费用适用于通过NAT网关处理的每千兆字节,无论流量的来源或目的地如何"
与私有子网(Web/app服务器所在的位置)关联的路由表具有{ - 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 Tier < - > App Tier
创建NAT实例而不是NAT网关,这样您就不需要为该NAT处理付费.
谢谢!