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 プロトコルのサポートは無料です。