Lui*_*uis 4 amazon-ec2 amazon-web-services amazon-vpc aws-vpc
我有一个应用程序在私有子网中的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处理付费.
谢谢!
因此,原来存在NLB,需要一个默认路由到一个奇怪的行为(错误?)的东西来回交通工作.
场景:
向NLB发送流量不会给出响应.
加:
这有效.
但是,它实际上并没有使用NAT网关!
而是加入了NAT网关,可以改为创建默认路由到另一个实例,例如:
0.0.0.0/0 -> another instance
然后,连接到NLB工作!
在幕后,VPC网络检测到来自实例的流量是响应来自NLB的请求,流量将路由到NLB.
但是,只有在路由表中存在有效的默认路由时,它才有效.路由未被使用 - 网络覆盖它,因此它指向的并不重要.但是,它必须指向有效的资源.如果它指向一个没有附加到任何东西的ENI,它就不起作用.在我的测试中,如果你将它指回同一个实例,它似乎也不起作用.但是,我把它指向另一个实例,它工作得很好.
AWS Support同意这不是最好的行为,但它是目前必须配置的方式.
底线:它不要求NAT网关.它只需要一个有效的默认路由,在路由返回流量时将被忽略.
| 归档时间: |
|
| 查看次数: |
562 次 |
| 最近记录: |