Tak vzhledem k tomu, že jsem toto docela aktivně řešil tu můžu prakticky popsat různá řešení a úskalí.
OpenVPN - client-to-client
Poměrně zajímavé řešení, sám ho mám naimplementované. Nevím co bylo myšleno stylem "povolím komunikaci mezi klienty", ale prakticky OpenVPN nabízí "subnet topologii", která to defaultně povolené má. Klíčové je správně nakonfigurovat ccd, aby to klientům vždy přidělilo stejnou IP adresu v závislosti na jménu certifikátu.
Pro komunikaci je obecně doporučeno UDP spojení, ale je možné použít i TCP a dokonce je možné i tunelovat přes proxy server.
Konfigurace vypadá nějak takto:
server 192.168.1.0 255.255.255.0
topology subnet
client-config-dir ccd
A pak ccd soubory podle jména, třeba ccd/client1
ifconfig-push 192.168.1.2 255.255.255.0
OpenVPN - server a iptables
Další možností - ale spíše jen přes RDP, je připojit Windows server jako VPN klient a na serveru pomocí iptables a DNAT přesměrovat příchozí port 3389 co jde na server někde v Amazonu přímo do VPN. U RDP klientů pak není vůbec třeba vpn, výsledná konfigurace vypadá takto:
RDP klient --> AWS server:3389 --> IPTables DNAT --> VPN Server:3389 --> NAT --> VPN Klient (RDP Server)
Cena
U AWS je výhodné, že se platí jenom za skutečně využitý čas. Je tak možné třeba naskriptovat zapnutí mašiny jenom v čase, kdy je VPN potřeba. To lze udělat například přes Lambda funkce, nebo aws-cli...
Úroveň komentujících
Trošku mě to sere, ale dovolím si rýpnout. Většina lidí to tu komentuje, ale nevidím tu nikoho, kdo by s tímhle měl praktickou zkušenost s realizací, což je trošku smutné.