はじめに
梅雨ですね。
雨が降っているので家の中で遊んでいると、ついついVPNサーバーを構築してしまうことってありますよね?
今回は たった5分 で AWSに 月額3.5ドル のVPNサーバーを構築する技を編み出したので紹介します。
みんな信じてくれないと思ったので、5分で構築が終わる動画を作りました。
動画を先に見たい方はこちらから
使うもの
Amazon Lightsail の 1番安いインスタンス + 静的IP を利用します。
データ転送1TBと静的IPもセットでたった3.5ドル。 ハッピーセットより安い!!!
[注意] データ転送量が1TB/月を超えると転送料金が従量課金され3.5ドルを超えます。
超過分の課金は 0.14USD/GB と割高なので、1TB超えてしまう状況が見込まれる場合は転送量の多い上位プランをおすすめします。
構築方法
構築方法の概要です。わかりにくい箇所は動画でご確認ください
1. Amazon Lightsailのインスタンスを作成
Debian9のインスタンスを選択します。
セットアップスクリプト を LaunchScript に入力してください。
インスタンスの種類を選択します。
月額3.5ドルのもので 十分動作します (ベースラインCPUパフォーマンスの関係で実運用は難しいみたいです)が、転送量が月間1TBを超えると従量課金になるので注意してください、従量課金は割高なので転送量によっては上位のインスタンスを選んでください。
セットアップスクリプト は Docker をインストールして、コンテナで良い感じにVPNサーバーを起動、インスタンス再起動時も自動起動する感じの設定になっています。(詳細を知りたい方はセットアップスクリプトをよく読んでください)
2. 静的IPの作成
インスタンスに割り当てる静的IPを作成します。
静的IPはインスタンスに割り当てている間は無料で利用できます。
3. 静的IPの割当
作成した静的IPの管理画面を開き、手順1で作成したインスタンスに割り当てます。
4. ポートの公開
インスタンスの管理画面から 114(TCP)
と 514(UDP)
を公開する設定に変更します。
5. デフォルトパスワードの確認
VPN管理画面(WebUI)のパスワードを確認します。ブラウザで操作可能なターミナルを起動し sudo /vpn/pritunl default-password
コマンドを実行して確認します。
ネットワーク状況によってはファイルのダウンロードに時間がかかり、コマンドが実行できるようになるまで時間がかかる場合があります。(コマンドがエラーになる場合は少し待ってから実行してください)
6. 設定画面へのログインとパスワード設定
https://${作成した静的IP}:114/
にアクセスし、パスワードを設定します。
オレオレ証明書なのでSSLの警告が出ますが無視して進みましょう!
7. オーガナイゼーションとユーザの作成
8. サーバーの作成とオーガナイゼーションの割り当て
任意のサーバーを作成します。ポートは 514(UDP)
を設定します。
9. サーバーの起動
サーバーを起動します。サーバーを作成してから起動ボタンが押せるようになるまで1~2分かかります。
10. 設定ファイルのダウンロードと設定
ユーザの名の横にあるダウンロードボタンから設定ファイルを取得し、PCに設定します。
11. 動作確認
VPNに接続し、診断くん等にアクセスするとVPNサーバー経由でアクセスできていることを確認できます。
12. 設定用ポートを閉鎖
セキュリティ向上のため、設定に使用するためのポート 22
と 114
を閉鎖します。
以上が構築手順となります。
使用した仕組みやアプリ
5分で構築する動画
構築チャレンジ動画です。
5分でAWS上に月額3.5ドルの格安VPNサーバーを作る - YouTube
VPNサーバーの起動待ち時間など一部をカットしていますが、5分台で構築できることを確認できると思います。 (カットしないでRTAにすればよかったかな...)
おわりに
最初は ansible か chef を使って EC2 に真面目に作ろうと思っていましたが、面倒くさくて心が折れた結果、使うまでもなく構築できました。
EC2で構築するケースに比べて激安で構築でき、インスタンスのスナップショットもワンボタンで作成できるのでオススメです。
ただし、qiitaにいるみんなはギガを減らすのうまいので転送料金にはくれぐれも注意 するようにお願いします。