- The VPN
- An Internet gateway
- A route table (meaining the route to 0.0.0.0/0 should go through the above internet gateway)
- A public subnet (meaning it should be "associated" with the above route table)
- An elastic IP address
- An EC2 instance (your VPN server) running in the above subnet and associated with the above elastic IP
- At least one NAT Gateway
- A private route (meaning the route to 0.0.0.0/0 should go through the above NAT Gateway)
- A private subnet (to host the stuff you want to access with the VPN)
- "vpn" - This group will be associated with the VPN server. It needs one rule allowing traffic IN from 0.0.0.0/0 on the OpenVPN port (usually UDP/1194). Allowing connections from your local IP on port 22 is also helpful.
- "default" - This group will be associated with everything else and it needs one rule allowing traffic on all ports from the above "vpn" group.