記事検索

検索ワードを入力してください。
Sky Tech Blog
SKYDIV Desktop Clientの​HTTPゲートウェイサーバー 第3回 HTTPゲートウェイの​フレームワークや​負荷分散の​仕組み

SKYDIV Desktop Clientの​HTTPゲートウェイサーバー 第3回 HTTPゲートウェイの​フレームワークや​負荷分散の​仕組み

本記事では、SKYDIV Desktop ClientのHTTPゲートウェイサーバーのフレームワーク選定と負荷分散の仕組みについて解説します。独自実装による低レイテンシーの実現方法や、ロードバランサーを用いた効率的な負荷分散の手法を紹介します。

今回は SKYDIV Desktop Client の HTTP ゲートウェイサーバーのフレームワークや負荷分散の仕組みをご紹介します。

前回の​記事

はじめに

HTTP ゲートウェイサーバーは下記の図のように、異なるネットワーク間でデータを中継する機能を持つため、インターネットからアクセスできる環境に構築する必要があります。

このため、クラウドや会社の DMZ のサーバーで動作できる構成を検討しました。

使用している​フレームワークに​ついて

HTTPゲートウェイサーバーの作成時は SKYDIV Desktop Client の既存のフレームワークを活かす形で、下記のフレームワークを検討しました。

  • 独自実装
  • SignalR
  • Socket.IO
  • Apache Kafka

HTTP ゲートウェイサーバーに求める機能がシンプルな1対1の中継機能で、かつ画面転送などの低レイテンシーも求められていたため、最適化しやすさなども考慮し「独自実装」を選択しました。

上記の構成で目標の低レイテンシーを実現しています。

負荷分散に​ついて

HTTP ゲートウェイサーバーは画面データなど比較的大きなデータを低レイテンシーで中継する必要があるため、ロードバランサーなどと組み合わせることで、負荷分散できる仕組みを用意しています。

「自宅のPC」や「オフィスのPC」と HTTP ゲートウェイサーバーの間にロードバランサーを設置することで負荷分散を行いますが、そのままでは、別々の HTTP ゲートウェイサーバーに接続してしまう可能性があります。

HTTP ゲートウェイサーバー間でデータを中継する方法もありますが、その場合ネットワークを介した通信が行われることになるため遅延時間が増加してしまいます。

そこでペアリングとデータ中継の接続を分けるようにしました。
ペアリング時は情報を共有して別々のサーバーでもペアリングできるようにします。

その後のデータ中継はサーバーを指定して接続できるようにすることで、同じ HTTP ゲートウェイサーバーに接続します。
これにより負荷分散をしつつ低レイテンシーのデータ中継を実現しています。

最後に

全3回にわたって HTTP ゲートウェイサーバーについてご紹介いたしました。

  • 1回目は異なるネットワーク間での通信を実現するためという導入理由と接続の仕組みについて
  • 2回目は画面やマウス・キーボードなどのデータの中継の仕組みについて
  • 3回目はフレームワークや負荷分散について

HTTP ゲートウェイサーバーはあまり表には出てこない機能ですが、異なるネットワークを結びつける重要な機能の一つです。

ゲートウェイサーバー方式を採用することによって、ファイアウォールで守られたネットワーク間でも通信できるメリットも享受しながら、低レイテンシーも実現する機能となっています。

最後まで読んでいただきありがとうございました。


XFacebookLINE
キャリア採用募集中!

入社後にスキルアップを目指す若手の方も、ご自身の経験を幅広いフィールドで生かしたいベテランの方も、お一人おひとりの経験に応じたキャリア採用を行っています。

Sky株式会社のソフトウェア開発や製品、採用に関するお問い合わせについては、下記のリンクをご確認ください。
お問い合わせ
ホーム