My question is about cloud platforms like AWS or Azure. Whenever we create an instance (VM or VPC), AWS allocates a set of public and private IPs for that instance.
Now the number of user accounts (or EC2 instances) on the AWS are in the order of millions.
How does AWS manage to assign so many public IPs? I understand that once an account is deleted or an instance is deleted, that IP would be reused and reassigned.
But do they have an IP address pool so big of so many IP addresses that can suffice the need of the millions of VMs that are running concurrently? Or there is internal NATing or re-use of IP addresses of some kind?