Now in REALITY Tech #23 配信サーバのマルチリージョン化
どうも、サーバエンジニアのうすぎぬです。今回は配信サーバのマルチリージョン化についてつらつら書いて行きます。
内容としては↓の2番で紹介されている内容の結果報告になります!
実施内容
REALITYでは配信の音声やモーションデータの配信をWebsocketサーバを中継してpublishしています。
そして、以前まではそのサーバが日本にのみ設置されていました。
つまり、アメリカユーザ同士での配信/視聴のシチュエーションでは下図の経路で音声/モーションなどがpublishされていたということです。効率悪すぎで草。
まあどう考えても下図がレイテンシ的にもサーバ費用的にも効率が良さそうですね。ということで、アメリカに中継用のWebsocketサーバを設置するぞ!という内容です。
計測
改善前のとある日の計測になりますが、下図はサーバから配信中のクライアントにpingを打ちpingが返ってくるまでの所要時間(レイテンシ)の中央値グラフです。
日本のユーザにpingを打った場合は概ね 50 msec 以内に収まっていますが、アメリカのユーザにpingを打った時は 200 msec 程度かかっている様子がわかると思います。つまり、音声/モーションにおいてアメリカユーザの配信では日本ユーザの数倍程度の遅延があったということになります。
低遅延にこだわっているアプリでこれは由々しき問題ですね。
今回、アメリカにもサーバを立てました。レイテンシはどのように変化したのでしょうか。みてみましょう。
グラフをどーん!青が改善前、赤が改善後のアメリカユーザのレイテンシです。
アメリカユーザの配信も 100 msec以内 に収まるようになりましたね!良かった。
今後の展望
今回アメリカにサーバを配置したため、東アジア/北アメリカでのレイテンシは下図のようにヘルシーに見えますが、まだまだ改善できる地域は多いです。直近ではヨーロッパと南アメリカを改善予定です。
やがて全世界にWebsocketサーバを配置し、世界中どこで配信しても低遅延である状態を目指して行きたいですね。
最後に
ここまで読んでくださってありがとうございました。
もし一緒にREALITYを爆速にしてくれるエンジニアの方がいらっしゃいましたが、以下のリンクから気軽にお話を聞きにきてくれると嬉しいです。
→ REALITYエンジニアカジュアル面談お申し込みフォーム