In the exam tips on NAT Gateway, Ryan says that the NAT Gateway is automatically assigned a public IP address.
In the course lab and in my experience, the IP address on the NAT Gateway isn’t automatically assigned – when setting it up, you have to select or create an elastic IP that is attached to the NAT Gateway.
On the contrary, you have no control over what that IP address is going to be – because AWS automatically assigns it to the EIP. From an exam standpoint, I think Ryan’s main idea is correct – when creating a NAT Gateway, you don’t have to worry about what the Public IP will be, just know that one will be assigned as part of the configuration process.
"But what if I have extra EIP’s lying around, and I like one of those assigned Public IPs, and I decide to use the corresponding EIP when I provision my NAT Gateway? In that case, aren’t I ‘assigning’ the IP address?"
I don’t see the AWS exam production team publishing a question based on that scenario, because leaving EIPs around un-associated doesn’t follow good cost management principles as you are charged for EIPs that are not attached to a running instance.