应用场景:在私有子网中启动了EC2实例,从外部不能直接访问该EC2实例,但是需要定期的对这个EC2实例进行版本升级或更新。这时候,由于该EC2实例放在了私有子网中,既不能从外界接收流量,也不能自发的对外部发出访问流量。这种情况下就需要使用NAT实例或者NAT网关,将私有子网中的EC2实例发出的流量导向外网,从而接受外部数据。
使用NAT实例的时候,需要将NAT实例放在共有子网中,并且授予一个共有IP地址,同时对该实例需要关闭更改源目标检查。普通的实例或者是作为流量的接收方,或者是作为流量的发出方,当关闭更改源/目标检查后,该NAT实例就会像一个桥梁一样,先把私有子网中实例上发出的流量导出,然后接受外网的数据,最后传送给私有子网中的实例。并且NAT实例使用的安全组应该允许接收从私有子网实例发出的流量,允许把从外网来的流量导出。
NAT网关是AWS提供的NAT服务,不需要客户自己维护,它提供更高的可用性以及高快带性能,NAT网关具有暴发到10Gbps的快带性能。在创建NAT网关的时候,它需要和一个Elastic IP弹性IP相绑定。NAT网关在某个可用区中创建之后,它会被自动地创建另一个NAT网关在同一个可用区中,以此来保证NAT实例的高可用性。
Bastion主机和NAT实例一样,是启动在共有子网的实例,是用来保护私有子网中实例的。由于不能从外部访问私有子网中的实例,需要利用Bastion主机,先登录到Bastion主机上,然后再转到私有子网中的实例上。同时Bastion主机还可以起到抵挡对私有子网的实例攻击的作用。