AWS EC2を用いて必要な時だけ立ち上げるVPN環境

以前よりセキュアな接続環境を構築するべく、様々戦ってきたわけですが、 VPNを使うタイミングというのはかなり限られたタイミングなのであります。
- 出先でFreeなWifiのサービスを使うとき
- 中国出張時、ホテルからWifiをつないだ時の金盾越え
さくらのVPSでインターネットVPN(その1・解説編)
中国(上海)出張時のインターネット規制回避策
そこで、AWS EC2でサービスを立ち上げt2.nanoの一番安い環境を 必要な時だけ立ち上げるという手法はとれないかと考え構築しました。 参考にしたURLを並べつつ、まとめておきます。
- AWSのアカウントは持っている
- SoftEtherを使ったことがある
ことを前提とします。
EC2のインスタンスは、起動するごとにPublicなIPアドレスが変わるので、その対策として無料ドメインを取得し、Route 53に登録したAレコードを起動する都度、更新する仕組みとしました。
サーバの構築
EC2の起動
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/EC2_GetStarted.html
- 無料枠はすでに使い切っているので、Instance Typeはt2.nano
- 使用するAMIイメージはAWS CLIが最初から入っていることからAmazon Linux AMI
L2TP環境の構築
SoftEtherを使います。下記URLの7章がServerのインストール手順になります。 その後、vpncmdやWindowsのサーバ管理ツールから、事前共有鍵およびユーザの設定を行います。
https://ja.softether.org/4-docs/1-manual
Shadowsocksサーバ環境の構築
L2TP自体は仕組み的に規制しやすいということで、数年前からShadowsocksが重宝されており、いくつかの有料含むVPNサービスではサービスが提供されているようです。 下記記事の後半部分「BBRの導入」以降を参考にBBRおよびShadowsocks環境をEC2上に起動します。
https://qiita.com/nk0130/items/b81268ea94c144b4fa04
クライアントからの接続確認
ここまでのところで、クライアントとなる、Android/iOSからの接続を確認しておきましょう。
L2TP
OSの設定から行います。下記を参考にします。
https://ja.softether.org/4-docs/2-howto/L2TP_IPsec_Setup_Guide/2
Shadowsocks
下記のクライアントアプリを導入し、サーバ側のIPアドレス、ポート番号、パスワード、暗号化方式を合わせた設定を行い、接続を確認します。
https://play.google.com/store/apps/details?id=com.github.shadowsocks&hl=ja
https://itunes.apple.com/us/app/ryoss-lite/id1451172122?mt=8
EC2起動時のDNS自動更新
無料ドメインの取得/Route53への登録
Freenomというサービスで無料ドメインを取得し、 Route53に登録を行います。 https://dev.classmethod.jp/cloud/aws/mesoko-r53-cdn/
AWS CLIを用いた自動更新
Route53を更新できる権限を付与したうえで、AWS CLIを用いてDNS更新用のJSONを自動生成し、EC2起動時に自動でIPアドレスを更新できるようにします。
https://qiita.com/romba/items/9486ef97ea8891029245
出先からAWSコンソールを操作する
スマートフォンアプリを導入します。 不要な時は停止すれば課金は発生しません。
https://aws.amazon.com/jp/console/mobile/
成果は...
1か月使ってみて、料金を確認してみたいと思います。