Setting up your own VPN server for personal use on AWS

I have used (still use) a commercial VPN service (for those few occasions I am outside and need some extra security). But I have always wanted to standup my own VPN server to have a bit more confidence that my activity logs are not being watched (worse sold or hacked) by a 3rd party VPN provider. Punted this for a long time, but found the perfect opportunity to do that today while waiting for some car repairs at an auto service center.

Rather than trying to provide step by step instructions here are some pointers on setting it up. Check out the detailed instructions (with screenshots) at How To Create A Free Personal VPN In The Cloud Using EC2 & OpenVPN by Tatiana Ensslin (thanks Tatiana for a great write-up).

A few points

  • This uses a AWS Marketplace offering
  • I am using a free tier eligible account and a free tier eligible VM instance to keep costs at zero.
  • The server licensing offers 2 concurrent connections at no additional costs. You are still responsbile for any other AWS costs you incur. For example I have a snapshot of the configured image which will incur some storage costs.
  • I used OpenVPN Connect as my VPN client, but you have a few other options. Stick with Connect if you want to keep things free (as free as possible minus AWS costs — i cannot but stress the fact that you could incur some AWS costs even if are using free tier eligible instance and account).
  • When I first used the client, it did not route all my internet traffic through the VPN server (which was my intent). There is one minor configuration on the Admin webapp that you should do before setting up the client (downloading the client install or post that the .opvn configuration file). Here is screenshot

  • You will associate an Elastic IP address with your EC2. One Elastic IP address is free (as far as you associate it with a running EC2 instance). See Elastic IP Address Pricing
  • Finally once you have it setup check your IP address using . The IP address before and after you turn on VPN should be different.