VPC Internet Gateway provides the connection between the VPC and the Internet.
The salient features of an Internet gateway are:
Enable VPC in the route table, to access internet.
Secondly allows Network Address Translation (NAT) for EC2 instances, so that it can access Internet, as the EC2 have Private IP address inside. We know that any Private IP will never be able to access Internet without NAT feature.
Internet Gateway acts both for IPv4 and IPv6 traffic.
Now lets have a use case, if you dont have any Internet Gateway (IGW) or you have an Internet Gateway but you forgot to attach the gateway to the VPC using an explicit default Static Route in the routing table (VPC may reach 0.0.0.0/0 via IGW). So what will happen when you try to launch the EC2?
We cannot launch the EC2 Instance, even with a Public IP address, as we dont have any properly defined route, following which any traffic from inside the VPC will be able to reach public network.