WS および WSS とは何ですか。

WebSocket (WS) は新しい HTML5 のプロトコルで、ブラウザとサーバーとの間の全二重通信を提供します。 このプロトコルはサーバーのリソースと帯域幅を節約し、リアルタイム通信を可能にします。 WebSocket は HTTP と同様、TCP 上に構築され、TCP を介してデータを送信します。

WebSocket は双方向通信プロトコルであり、これが HTTP との大きな違いの 1 つです。 接続が確立されると、WebSocket サーバーとクライアントは、Socket のように相互にデータを送受信することができます。 WebSocket サーバーとクライアントは、TCP プロトコル同様のハンドシェイクで接続を確立し、その後、相互通信が可能になります。

WebSocket Secure (WSS) は WebSocket の暗号化バージョンです。

なぜ WS および WSS を使うのですか。

インターネットが身近になり簡単に使えるようになって、さまざまな Web アプリケーションが数多く登場しています。 多くのアプリケーションでは、サーバーのリアルタイムプッシュ機能 (ブロードキャストルームやチャットルームなど) を必要とします。 これまで、多くの Web サイトがポーリングでリアルタイムプッシュを実現してきました。 ポーリング方式では、ブラウザは決まった間隔で (たとえば 1 秒ごとに) HTTP リクエストをサーバーに送信し、サーバーは最新のデータをクライアントのブラウザに返します。 しかし、この方法には明らかに非効率という欠点がありました。 ブラウザは常にサーバーにリクエストを送信する必要があります。 HTTP リクエストは、ヘッダーが非常に長くなる可能性があり、その場合、有効なメッセージはごく一部分になってしまいます。 したがって、多くの帯域幅リソースが無駄になる可能性があります。

このような状況で、HTML5 は WebSocket プロトコルを定義することで、サーバーリソースと帯域幅を節約し、リアルタイム通信を容易にしています。 WebSocket は、ブラウザとサーバーとの間の全二重通信を提供します。 これにより、サーバーはクライアントからのリクエストがなくても、クライアントに自発的にデータを送信できます。

次の図に WebSocket プロトコルの通信プロセスを示します。

Server Load Balancer で WS および WSS を有効にする方法を教えてください。

特に設定は必要ありません。 HTTP リスナーはデフォルトで WS プロトコルをサポートし、HTTPS リスナーは WSS プロトコルをサポートします。

パフォーマンス専有型インスタンスにアップグレードする必要があります。 詳細については、「パフォーマンス専有型インスタンスの使用方法」をご参照ください。

サポートされるリージョン

WSS および WS はすべてのリージョンで利用可能です。

制限事項

WS および WSS プロトコルの制限は次の通りです。

  • Server Load Balancer は、HTTP/1.1 を使用してバックエンド ECS インスタンスに接続します。 バックエンドサーバーは HTTP/1.1 をサポートする Web サーバーを使用することを推奨します。
  • Server Load Balancer とバックエンド ECS インスタンスの間に 60 秒間メッセージのやり取りがない場合、接続は切断されます。 接続を維持する必要がある場合は、Keepalive を有効にして 60 秒に1 回の頻度でメッセージをやり取りするようにします。

料金

WS および WSS プロトコルのサポートは無料です。