最近Clubhouse流行ってますよね。 そんなClubhouseですが、最近利用者が増えて日本だと夜に接続するとサーバー落ちが頻発するようになりました。
そこでエンジニアがサーバー落ちを防ぐために何をすべきか議論をしている様子を見ていると、
「VPNで海外に接続してみたらどうじゃろ」
という話が出てきました。
なるほど、みんながつないでアクセスを集中しているネットワークに接続しないようにすればいいんですね。
とはいえわざわざVPNのサービスをこのためだけに契約するのもアホらしいですし、中にはEC2で構築してみたという話も出てきました。
エンジニアならAWS使ってVPNサーバー立てたいなとは思いますが、EC2はネットワークのセットアップとか面倒くさそうです。
というわけで今回はAmazon Lightsailを使って簡単に格安でVPNサーバーを立ててみます。
Amazon Lightsailとは?
AWSが提供するVPS(Virtual Private Server)サービスです。
一番安いとなんとたった月額3.5ドルで使うことができるらしいです。
そしてEC2と違いストレージやネットワークなどをパッケージされていることが特徴です。
構築してみた
インスタンスを立てる
まずはAWSにログインします。(アカウント登録してない方はそこからやりましょう)
コンソール画面の検索欄で「lightsail」と打ち込んでlightsailをさがして起動します。
「インスタンスの作成」をクリックします。
インスタンスロケーションをアメリカかイギリスあたりで設定しておきます。
そうなってない場合は「AWSリージョンとアベイラビリティゾーンの変更」をクリックします。
リージョンの選択画面を開いたらリージョンを選択します。 今回はオレゴンを選択します。
インスタンスイメージの選択します。 プラットフォームは「Linux / Unix」、設計図は「OSのみ→Debian9系」を選択します。
インスタンスの初回起動時にVPN実行するスクリプトを設定します。
「起動スクリプトの追加」をクリックします。
コードを入力する欄が表示されるので、以下のスクリプトをコピペします。
インスタンスプランはおそらく3.5ドルのプランが選択されていると思います。
インスタンス名は任意のもので設定します。
その後、「インスタンスの作成」をクリックします。
用意したインスタンスがしばらくして「実行中」と表示されれば無事にインスタンスが立ち上がりました。
静的IPを割り当てる
ネットワーキングタブを選択し、「静的IPの作成」をクリックします。
インスタンスにアタッチされていれば無料で使うことができます。
静的IPを先程作成したインスタンスへアタッチします。
アタッチを完了し、パブリックIPアドレスが表示されたら割当は完了です。
ポートを公開する
インスタンスの管理画面を開き、「ネットワーキング」タブを選択します。
下の方にスクロールしてファイヤーウォールのルールとしてUDP:514
とTCP:114
を設定します。
デフォルトのパスワードの確認
Lightsailのトップページに戻り、インスタンスのターミナルアイコンをクリックしてブラウザのターミナルを立ち上げます。
sudo /vpn/pritunl default-password
でVPN管理画面のパスワードを確認します。
pritunlにログイン
https://[設定した静的パブリックIPアドレス]:114/
を開き、先程コマンドで確認したユーザー名、パスワードを入れます。
開くときに警告が出ると思いますが無視してアクセスしましょう。
ログインしたらパスワードを変更します。
ユーザーの設定
Users
タブを選択して、Organizationを設定します。
任意のユーザー名、PINを設定します。
サーバーの作成
Servers
タブを選択して、Add Serverをクリックします。
任意のサーバー名を設定します。
ポート番号は514
、プロトコルはudp
とします。
先ほど作成したOrganizationとアタッチしてサーバーを起動させます。
コンソールにログが表示されたらサーバーは起動できています。
設定ファイルをダウンロード
Usersタブを選択して、「Get temporary profile link」をクリックします。
ZIPファイルのダウンロードリンクにあるダウンロードアイコンをクリックします。
ダウンロードしたら展開して、設定ファイルをiPhoneで参照できるようにストレージサービスにアップロードします。
Google Driveにアップロードします。
iPhoneに接続する
Googleドライブアプリを開いて先程保存したファイルの詳細を開いて、「アプリで開く」をタップします。
メニューからOpenVPNを選択します。
OpenVPNが開いたらインポートしたファイルが表示されるので「Add」を選択します。
Usersで設定したユーザー名を入力し、ADDをタップしてVPNの設定を許可します。
Profileを有効にしたらpritunlの初回ログインで設定したパスワードを入力します。
ユーザー設定のときに設定したPINを入力します。
無事に接続できました。 いい感じですね👍
検証
といいたいところですが、このブログを書きながらやっていたらそんなにサーバーが落ちず、普通に音声が聞こえてました。
せっかく、用意したんですけどねw。
でも一応ネットワークのテストをやってみた結果、速度的にはそんなに悪くなかったです。
まぁ1台しかつなげてませんからねw。