WindowsServer上で稼働するwebアプリの冗長化について

TETSUKA TOMOYA(手塚 智也) 0 評価のポイント
2024-08-30T06:54:11.31+00:00

WindowsServer上で動くWebSocketを使用したwebアプリケーションの実装を検討しております。 そこで、アプリに対して冗長性を確保し可用性を高めたく調査を行っております。 Windows Serverフェールオーバークラスター (WSFC)とネットワーク負荷分散 (NLB)が候補として挙がっており、 どちらの方が適しているか判断しかねている状況です。 上記を踏まえまして、以下質問になります。

①WSFC、またはNLBを使用している状況で、WebSocketは利用可能でしょうか?

②上記のシステム構成の場合WSFCとNLB、どちらが適していますでしょうか?

③WSFCとNLB以外に可用性を高める上で、より有用な手法はありますでしょうか?

Windows Server
Windows Server
エンタープライズ レベルの管理、データ ストレージ、アプリケーション、通信をサポートする Microsoft サーバー オペレーティング システムのファミリ。
57 件の質問
{count} 件の投票

3 件の回答

並べ替え方法: 最も役に立つ
  1. チャブーン 1,546 評価のポイント MVP
    2024-09-03T02:15:11.03+00:00

    チャブーンです。

    #ちょっと内容を修正しました

    この件ですが、一般論としての前提ならば、Webアプリ(Webサーバー)の負荷分散にはNLBが適しています。TCP/IPスタックレベルでの対応で、ミドルウェアやアプリの調整が不要なので、...と書いたのですが、Webソケットはミドルウェアでの実装になっているのですね。であれば、対応していない可能性が高いでしょう。一応資料は継続して記載しておきます。

    https://video2.skills-academy.com/ja-jp/windows-server/networking/technologies/network-load-balancing?WT.mc_id=EM-MVP-8322

    最近のWindowsではIISがWebソケットに対応しているということなので、MSFCで検討したほうがいいと思います。ただし、大がかりな実装(通常はActivce Directoryが必要)が必要で、設計がとても複雑になります。

    https://video2.skills-academy.com/ja-jp/iis/configuration/system.webserver/websocket

    上記以外で何とかしたい、という場合は、負荷分散システムの外出しという選択になります。要するにロードバランサーを前に置きます。が、LBでWebSocketをサポートしているかどうかは、製品次第なので、まずはその確認からになります。高負荷に対応するLBが必要なら、ハードウェアのLBから選択する、といったことになると思います。


  2. Hebikuzure aka Murachi Akira 9,691 評価のポイント MVP
    2024-09-03T06:44:41.4233333+00:00

    「WebSocket 負荷分散」で Web 検索すれば結構いろんな情報がありますね。

    https://www.google.com/search?q=WebSocket+%E8%B2%A0%E8%8D%B7%E5%88%86%E6%95%A3

    いろいろ見ているうちで、一番簡単そうなのは DNS ラウンドロビンで負荷分散する方法のようです。あなたの要件に合うかどうかは分かりませんが、ご参考まで。

    0 件のコメント コメントはありません

  3. SurferOnWww 3,071 評価のポイント
    2024-09-04T00:41:56.8233333+00:00

    「WebSocketを使用したwebアプリケーション」は独自で開発しようとしているものでASP.NET Core SignalR アプリとは異なります。

    そうですか。SignalR の話なら Microsoft のドキュメントもあるのですが・・・

    役に立つかどうかわかりませんが、一部紹介しておきます。

    SignalR のスケールアウト入門

    ASP.NET Core SignalR のホスティングとスケーリング

    Azure SignalR Service のインスタンスをスケーリングする方法

    0 件のコメント コメントはありません

お客様の回答

回答は、質問作成者が [承諾された回答] としてマークできます。これは、ユーザーが回答が作成者の問題を解決したことを知るのに役立ちます。