0%

公開用のネットワークを持つために VPS を利用するとどの VPS プロバイダが快適なのか

きっかけ

今の自宅の回線がマンション共用の物なので、ルーターがいじれません。
ルーターがいじれないという事はインターネットからのアクセスのポートマッピング(ポート開放)ができないという事です。
ただ、回線の速度や安定感はあるので追加で回線を契約するほどのコストをかけたくないですし、
今までは宅内サーバーをインターネットに公開するために ngrok (HTTPやTCP) や localtonet (UDP) を利用して公開していましたが、
localtonet は 日本サーバーが無いために、ping 値が高くなる等、歯がゆい状況でした。

そこで他に方法ないかなと探していたら見つけました。
tailscale の exitnode を利用し、インターネットからのアクセスを受けた マシン(VPS) から tailscale ネットワーク内のマシンにポートフォワーディングして、
VPS のマシンが実質ルーター代わりになるという方法

例えば yayoi_8128 さんのこんな方法

ポートフォワーディングについては、uredir を使わずに nginx や iptables でフォワーディングの設定をする、でもよかったんですが、以下の理由で uredir を採用してます。

  • uredir のコマンドが覚えやすかった (uredir :8211 フォワーディング先IP:8211)
  • iptables のコマンドを覚えるのがむずかしかった
  • 実際に nginx を使用して比較しても体感できる差が感じられなかった

Azure, Sakura, WebArena の VPS それぞれで パルワールドサーバーのUDP フォワーディング を試した結果、安定性や速度が異なったので感想とともに記録を残します。

テスト環境の構築

OS: ubuntu 22.04 server

  1. tailscale をインストールして exitnode を有効化
1
2
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale up --advertise-exit-node
  1. tailscale AdminConsole から “Use as exit node” にチェック

image

  1. IPv4 フォワーディングを許可

    1
    2
    3
    echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
    echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
    sudo sysctl -p /etc/sysctl.d/99-tailscale.conf
  2. その他

vps 側で 22 や 8211 の inbound を許可

注意点

その時たまたま VPS プロバイダ側で障害があったとか、一時的な問題が起きていた可能性もあるのであくまで参考程度にしてください。

条件もきっちり揃えられていません。

各 VPS で試してみた

Azure VM

テストに利用したスペック

  • コア数とメモリ: 1コア1GB
  • ネットワーク: 100Mbps
  • 金額: 1271円/月 以上

image

速度

速度は出ているけど、レイテンシの値が高い。
何故かコロンビアやインドのサーバーを利用してました。

image

念のため別のサイトでも試してみる。

image

Ping も Jitter も良好

パルワールドを遊んでみる

ロードがなかなか終わらない・・・

image

10分程度待てば接続はされた。
とはいえ建築物の表示にもかなりの時間がかかるため遊ぶのはきびしそう

image

image

その他気になった事

tailscale up したときに見覚えのないログが出た、何か改善の余地あり?

Warning: UDP GRO forwarding is suboptimally configured on eth0, UDP forwarding throughput capability will increase with a configuration change.

この方法で最適化されるらしいですが、残念ながら体感できず。。。

1
2
NETDEV=$(ip route show 0/0 | cut -f5 -d' ')
sudo ethtool -K $NETDEV rx-udp-gro-forwarding on rx-gro-list off

Sakura VPS

テストに利用したスペック

  • コア数とメモリ: 2コア1GB
  • ネットワーク: 100Mbps
  • 金額: 990円/月

image

速度

image

パルワールドを遊んでみる

tailscale ネットワークだけで接続するのと体感は変わらず快適

image

WebArena Indigo

テストに利用したスペック

  • コア数とメモリ: 1コア1GB
  • ネットワーク: 100Mbps
  • 金額: 449円/月

image

安くてよさそう

速度

ちょっと遅いかな

image

パルワールドを遊んでみる

なんだかパケロスが激しい

接続してから数十秒の間、建築物のオブジェクトが読み込まれず、これで遊ぶのは厳しそう、と感じました。

image

Conoha VPS

テストに利用したスペック

  • コア数とメモリ: 2コア1GB
  • ネットワーク: 100Mbps(インターネット)
  • 金額: 1064円/月(時間課金)

image

速度

image

パルワールドを遊んでみる

ロード時間がそこそこ長くかかった

建築物等がなかなか読み込まれず、表示されるまでに5分くらいかかった

Azure VM を少しマシにした様なレベルで、これで遊ぶのは厳しい

image

AWS Lightsail

テストに利用したスペック

  • コア数とメモリ: 2コア1GB
  • ネットワーク: 1Gbps?
  • 金額: $5/月

image

速度

シアトル経由になってしまった
image

別のサイトで測るとジッターもpingも良好
image

パルワールドを遊んでみる

体感は Sakura と変わらない
image

その他

採用されたのは・・・

さくら VPS でした。安定感がどエライです。
LIghtsail も快適だったので、こっちへの乗り換えもアリ
Azure VM の回線速度も優秀ではあるけど、不安定すぎる

なんで安定感に差がでるのか

わからないです。知ってる人いたら教えてほしいです。

他の VPS について

他に試したい VPS もいくつかあるので試したら追記していきます。