Jag har en mysql-server som är stängd för offentlig åtkomst men jag arbetar med ett antal personer (ca 5) och har svishat IP-adresser för alla som behöver åtkomst till den. Detta är okej men inte särskilt hållbart - det innebär att alla måste vänta på mig varje gång de går till en ny plats, och jag känner att det inte kommer att räcka när vi får riktig användardata. Jag kan tänka mig några alternativ:
Den hanterade klientvpn-tjänsten från AWS verkar som en bra lösning, förutom att det verkar kosta $0.10/timme för endpoint-anslutning och $0.05/timme för varje anslutning, vilket ser ut att bli minst $75/månad, vilket är genomförbart men ganska mycket för oss just nu.
Jag fick idén att jag kunde ta en ec2-instans vi redan har igång och installera en OpenVPN-server på den, men jag har aldrig gjort detta förut och är säker på att jag missar några dolda kostnader. Installation/underhållstid? Dataöverföring ut? (ser ut att mest vara inte mycket för sporadiska transferer på ungefär 20 GB, flera gånger i månaden)
Något annat alternativ jag missar
Är en OpenVPN-server en dålig idé? Ändras svaret om vi växer till 20 personer? 100?
Din tid är inte gratis. Kanske detta är en hobby för nöje, vilket är coolt. Men jag tror att du är inne på det av någon annan anledning än att köra en VPN-tjänst.
Din brist på expertis/erfarenhet ökar riskerna för driftstopp, säkerhetsförluster, etc. Denna risk minskar med tiden, men se punkt #1.
Om dina ec2-instans små/låga kostnader kan du stöta på belastningsproblem. Särskilt förstå hur t-serien och CPU-krediter fungerar om du använder dem. Det kan bli ett problem för dig. Kanske inte.
Om du tvingas till en dyrare instans-typ kan eventuella besparingar utebli.
OpenVPN på en (existerande) instans är okej och kostar inte mycket, men det måste skötas och vara korrekt autentiserat (SSH öppet för världen och VPN med användarnamn/lösenord öppet för världen är båda sårbara för botar/hackers)
SSH med port knocking eller ett roligt helgprojekt (vi använder en slackbot för att svisha, och testade med att använda IP- från en lyckad inloggning till AWS SSO också) fungerar också bra.
Alternativ 2 fungerar och jag är inte medveten om några dolda avgifter… Jag arbetar med ett utvecklingsteam som satte upp det för ett arbete jag anlitade dem för (det finns en betald AMI för OpenVPN-server).
Jag bestämde att jag inte gillade den lösningen eftersom jag inte vill hantera instanser, så jag bad dem att byta till den hanterade VPN-endpoint-lösningen. För att minska kostnaden av $.10/timme och eftersom vi sällan behöver VPN:en skrev jag en Lambda som triggas var tredje timme för att kontrollera om det finns några aktiva anslutningar och om det inte finns några:
tar bort endpointen
stänger databasen och andra kostnadsbelagda resurser (t.ex. EC2)
Jag skrev också en Lambda som triggas av en APIGW, som slår på backend-resurser och återskapar endpointen samt konfigurerar routingen och annat som behövs för VPN.
Det har fungerat mycket bra och är mycket bättre än OpenVPN-servern, men om du använder VPN mycket oftare kan en EC2-baserad VPN-server vara bättre.