你会configuration一个每个AZ的NAT网关HA? 这是一个矫枉过正的? 它连续运行一年要花费500多美元。 这对于一个关键业务系统是有意义的。 你可以在2个AZ上创build2个NAT网关,第三个使用一个或另一个减less一些$。
我的另一个问题是,如果一个AZ失败了,你如何自动切换到另一个AZ上的NAT网关? 据我所见,你需要更新路由表来手动指向另一个NAT网关。 人们是否对NAT实例build立了一个周期性的ping,然后在路由表失败时实现更新? 如果是这样的话,假设无论如何会有一个小的中断,为什么不在另一个AZ上创build一个新的NAT网关,当旧的NAT失败,然后更新路由表? 你将节省500美元,并实现同样的事情。
你需要多less取决于你的RTO和RPO。 另外,作为参考,NAT实例和NAT网关( 比较 )。
一个NAT网关大概是400美元/年,这取决于你的地区。 它是高度可用的,所以你不需要在AZ的冗余,你可以分享你的AZ之间。 但是,如果你想真正的高可用性,你可以创build一个每AZ。 根据你的RPO / RTO,如果正常运行时间低于你想要的,你可能最好从一个开始,创build其他的。 他们有非常高的带宽,高达10Gbps。
请注意,您支付AZ之间的带宽。 EC2 定价页面涵盖了这一点。 EC2到EC2的stream量(即到NAT实例)肯定是收费的。 目前还不清楚从EC2到NAT网关的stream量是否收费,但假设它是安全的。
为了比较,一个预留一年的t2.micro是$ 70,你可以运行你自己的NAT实例。 其中三个仍比pipe理网关便宜。 然而带宽是有限的,如果你有很多的实例进行大量的networking访问,他们将很快成为一个瓶颈。 你当然可以根据需要扩展t2系列 – 每次跳跃往往会使CPU和networking性能大约提高一倍。
如果你真的想推出自己的AWS模式。