在第二节我们提到,每个Transit Gateway attachment
都能绑定专有的路由表。基于这个特性可以玩出很多花样,比如将IPS/IDS
部署在专有的VPC,然后用它来清洗其他VPC里的流量。本节将介绍几种类似的应用场景
在第二章我们介绍VPC基础时,提到了NAT Gateway
用于给私网提供对外互联网访问。
但是假如有多个VPC,需要在每个VPC里都创建NAT Gateway
,运维起来不方便
为了实现这个目的,我们可以在单独一个egress VPC
里创建NAT,将其他VPC的流量使用TGW路由到该VPC。以下是架构图:
每个Transit Gateway attachment
在美东1 每小时0.05$
;每个NAT Gateway
在美东1 每小时0.045$
Transit Gateway
处理每 GB 数据的价格在美东1 0.02 USD
;NAT Gateway
处理每GB数据的价格在美东1 0.045$
综上分析,如果原来没使用TGW,上述架构比原来的更费钱——Transit Gateway attachment
小时费用 >NAT Gateway
小时费用。而且在数据量大的情况,由于数据额外经过TGW,会多收这部分钱
但如果原来已经有TGW了,上述架构在数据量小的场景下会省钱
下面是一个示例:
路由表的分析:
左边两个VPC的TGW路由表共用一个(Route Table 1
),这个路由表将0.0.0.0/0
流量送到Egress VPC
,将10.0.0.0/8
流量送到Blackhole,所以这两个VPC和其他VPC不能互通,这是为了安全隔离;
右边Egress VPC
的TGW路由表使用Route Table 2
,能将回程的流量送到对应的VPC
右边Egress VPC
的子网路由表将到NAT Gateway
的流量转发到同一个AZ的NAT,这样可以避免跨AZ流量费用
上面在跨VPC做路由时,假设Egress VPC
里在两个AZ有两个ENI,TGW会将流量送到哪一个AZ呢?
TGW不会做负载均衡,它是基于AZ affinity
,只会把同一个AZ的流量送到同一个AZ,好处是避免跨AZ流量。
和上面设置方案类似,如果将NAT Gateway
替换成防火墙设备,就能实现统一在一个VPC里对流量进行清洗:
但这种方式要用户自己实现EC2的高可用,另外在EC2挂掉时需要手动更新路由表。
后面我们将介绍AWS的Network Firewall
产品