Your fantasy sports app consists of multiple backend microservices hosted on Compute Engine across different GCP projects. To enable communication between two groups of Compute Engine VMs located in different projects and separate VPCs, what is the recommended approach?