In AWS,when a client enters a URL, this is sent to the DNS Resolver. Once the IP is retrieved, it is sent back to the client. CloudFront then redirects the request to the nearest edge location where the ELB routes the request to an EC2 Instance. Is each edge location in its own VPC?
Cloudfront and VPC are two entirely different concepts.
A VPC is simply a network abstraction. It has nothing to do with how Amazon is handling caching & it's edge locations.
Amazon has multiple physical locations all across the world that acts as edge locations. Where you place your VPC (region) doesn't really matter in relation to how Cloudfront is able to serve traffic.