In 2017, AWS announced their inter-region VPC peering capability. Now, services like EC2 and RDS can communicate across regions using a private IP.
There are 2 ways to achieve your solution:
1. Enable public IP addresses for all the resources under both the VPCs to make them communicate
2. Use VPC peering to connect the VPCs in different regions. Now, launch all your AWS services under the VPCs and use their private IP addresses to communicate between them.
To create a VPC peering connection with a VPC in a different region
Open the Amazon VPC console at https://console.aws.amazon.com/vpc/.
Go to Peering connections and click on Create Peering connection
Once provided the following information, click on Create Peering connection:
Peering connection name tag: This is optional. If you want to track this connection, then provide a name to it
VPC (Requester): Choose the requester VPC which will request the other VPC for a peering connection
Account: Select My Account
Region: Here, as you want an inter-region connection, choose Another region
VPC (Accepter): Here provide the VPC id of the VPC which is at the other end or getting in requests.
Now, choose OK
In the region selector, provide the acceptor VPCs region
Go back to Peering connections. Select the VPC peering connection that you've created, and choose Actions, Accept Request.
Choose Yes, Accept when it asks for a confirmation. In the next prompt, choose Modify my route tables now if you want to go to the Route Table page directly. If you want to do that later, just close it