An Internet gateway serves two purposes: to provide a target in your VPC route tables for Internet-routable traffic, and to perform network address translation (NAT) for instances that have been assigned public IPv4 addresses.
Source: https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html
If the instances mentioned above have public IPv4 addresses, why does the Internet Gateway need to perform Network Address Translation? It would be great to have an example of a network flow that would be broken for a scenario with
- VPC subnet with Internet Gateway attached
- instances in that VPC subnet with IP addresses (Elastic IPs in AWS VPC parlance) in the public IP address space
- hosts on the Internet unable to send packets to these instances without the Internet Gateway performing NAT