2 Answers
Yes, I think that’s correct.
NAT Gateways only provide redundancy within the AZ, and not across AZs. Usually, the amount of public subnets = to the number of AZs in use with routes from the private subnet to the NAT Gateways within the same AZ.
This protects you from private subnets in AZ A losing internet access when AZ B goes down.
AWS best practices state to setup a NAT gateway per AZ. Of course, that means AZ’s where you have subnets. That does not mean you need to have the same number of public and private subnets in a VPC or in an AZ. You can have 1 public subnet in an AZ, put one NAT gateway in that public subnet. You can then attach that single NAT gateway to one or more private subnets in the same AZ as the public subnet where you setup the NAT gateway. These are best practices. If for some reason you have 1 public subnet and more than one private subnet in a VPC, you can setup one NAT gateway and attach all private subnets to that one NAT gateway.