VPC
Internet Gateway
internet gateway is responsible for connection between resources under vpc with public ips and the internet.
Subnet
differnet Subnets can associate different Route Tables, if the subnet associated a route table with a destination to Internet Gateway, this subnet can be considered as public subnet.
NAT
NAT is responsible for connection between resources under vpc only with private ips and the internet. It’s a one way connection, only the private resource can reach the external internet, the external internet can not reach the private resource with NAT. The NAT need to bind a Elastic IP, which is a public IP, hence, the NAT need to be defined in a public subnet (the subnet has a route table item to Internet Gateway).
Load balancer
Load balancer is like the reverse version of NAT, it support external network traffic to going into internal public and private resources if it’s a internet facing load balancer. Normally internet facing load balancer will have public IP address, those address can be seem in ENI(Elastic Network Interfaces).
Load balancer essential is a nginx, it can create routing rules to different target group and add ssl certificate