以前よりセキュアな接続環境を構築するべく、様々戦ってきたわけですが、 VPNを使うタイミングというのはかなり限られたタイミングなのであります。
- 出先でFreeなWifiのサービスを使うとき
- 中国出張時、ホテルからWifiをつないだ時の金盾越え
yourpalm.jubenoum.com yourpalm.jubenoum.com
そこで、AWS EC2でサービスを立ち上げt2.nanoの一番安い環境を 必要な時だけ立ち上げるという手法はとれないかと考え構築しました。 参考にしたURLを並べつつ、まとめておきます。
- AWSのアカウントは持っている
- SoftEtherを使ったことがある
ことを前提とします。
EC2のインスタンスは、起動するごとにPublicなIPアドレスが変わるので、その対策として無料ドメインを取得し、Route 53に登録したAレコードを起動する都度、更新する仕組みとしました。
サーバの構築
EC2の起動
- 無料枠はすでに使い切っているので、Instance Typeはt2.nano
- 使用するAMIイメージはAWS CLIが最初から入っていることからAmazon Linux AMI
L2TP環境の構築
SoftEtherを使います。下記URLの7章がServerのインストール手順になります。 その後、vpncmdやWindowsのサーバ管理ツールから、事前共有鍵およびユーザの設定を行います。
Shadowsocksサーバ環境の構築
L2TP自体は仕組み的に規制しやすいということで、数年前からShadowsocksが重宝されており、いくつかの有料含むVPNサービスではサービスが提供されているようです。 下記記事の後半部分「BBRの導入」以降を参考にBBRおよびShadowsocks環境をEC2上に起動します。
クライアントからの接続確認
ここまでのところで、クライアントとなる、Android/iOSからの接続を確認しておきましょう。
L2TP
OSの設定から行います。下記を参考にします。
Shadowsocks
下記のクライアントアプリを導入し、サーバ側のIPアドレス、ポート番号、パスワード、暗号化方式を合わせた設定を行い、接続を確認します。
EC2起動時のDNS自動更新
無料ドメインの取得/Route53への登録
Freenomというサービスで無料ドメインを取得し、 Route53に登録を行います。 dev.classmethod.jp
AWS CLIを用いた自動更新
Route53を更新できる権限を付与したうえで、AWS CLIを用いてDNS更新用のJSONを自動生成し、EC2起動時に自動でIPアドレスを更新できるようにします。
出先からAWSコンソールを操作する
スマートフォンアプリを導入します。 不要な時は停止すれば課金は発生しません。
成果は...
1か月使ってみて、料金を確認してみたいと思います。