The layer that you're missing is nginx proxy. See my toy Mafia Game project here how to do it:
Shell deployment project (uses either Docker compose or k8s) - https://github.com/taleodor/mafia-deployment
Vue.js frontend - https://github.com/taleodor/mafia-vue
Express.js backend - https://github.com/taleodor/mafia-express
(Optional) detailed write-up about CI/...
How are you trying to connect to the remote service? - IP address, default internal/external DNS name or custom DNS name private/public hosted zone?
Please compare the output of nslookup to the remote service in both the VPCs. If the IPs resolving are different, the traffic is trying to go through the public internet and not the peering connection.
It would ...