https://www.internetsociety.org/resources/deploy360/2014/cas...
https://toreanderson.github.io/2016/02/22/ipv6-only-data-cen...
There are still too many rough edges going V6 only though, like if I set my own DNS servers, will they resolve A records to NAT64 AAAA records? And how will the regular Windows sysadmin deal with registering DNS records?
DJB saw all this with crystal clarity almost twenty years ago:
http://cr.yp.to/djbdns/ipv6mess.html
Note that when he wrote this, NAT64 didn't even exist. NAT64 is basically standardization of "make IPv6 work the way DJB said it should".
It doesn't make sense to have NAT64 on every router, because NAT64 is stateful and needs to be properly engineered into a network. There are also alternatives like DS-Lite and MAP, with different design tradeoffs.
(And mandating NAT in routers would be a pretty radical departure from the current internet architecture).
When there was only IPv4 there was no reason for backwards compatibility. Caring about backwards compatability doesn't become radical simply because it becomes necessary.
Nat Gateway has been around for ~6 years now and is highly available and a managed service so you just need to click a couple of buttons. https://aws.amazon.com/about-aws/whats-new/2015/12/introduci...
AWS accounts and VPCs are free, so NAT gateways can form a significant part of the per-account/VPC base cost, which can be a significant part of your total cost for a small project/environment.
If the NAT gateway was a service, then it could be multi-AZ transparent to the VPC.
But I also work with a lot of people that don't.
But if you use IGW, then your "public" subnet is still actually a private subnet: all networking to hosts inside the VPC occurs with private IPs. The public IPs are 1:1 NATed by the IGW. Your instances never see packets with their public IP. And you can launch instances in the "public" subnet without a NAT mapping if you want. For IPv6, you can have an egress only IGW.
So you can do "traditional" NAT if you want, or you can do "modern cloud" NAT using IGW. It is really your choice. I'm not saying one is better than the other. I'm just letting OP know that there is a non-1990s option. =)
Because AWS initially had poor IPv6 support and they didn't include it as "cloud native". Customers build things the way AWS encourages them to.
You mean by nat'ing?
Applying 1990s NATting to next gen cloud service? Gotta give the greybeards something to do.
The purpose of NATting is to deal with limited IP addresses, a problem that has been solved for a long time now.
AWS makes me create a VPC, but I certainly don't set up some central-point-of-failure NAT or pay AWS to do it.