I have written a set of Python scripts that run in one AWS EC2 instance per region that sets up an OpenVPN tunnel between every region it is run in. At this moment I have it running in 11 regions so there are a total of 55 tunnels. The design is that all I need to do is start it in each region I want tunnels to/from. Each instance looks for the others in the same AWS account and figures out the configuration from the information it gets about each of the instances. Address translation is part of the configuration so it can work with VPCs having the same IP addresses. I can terminate these instances when I don't need the tunnels and launch them back later and they will find each other at their new IP addresses. They use botocore.
Due to the reasons discussed here we will be moving to python-forum.io on October 1st, 2016. This forum will be locked down and no one will be able to post/edit/create threads, etc. here from thereafter. Please create an account at the new site to continue discussion.