このトピックでは、WebSocketおよびWebSocket Secureの概要について説明します。
WebSocketとは何ですか?
WebSocketは、ブラウザーとサーバー間の全二重通信を実装するHTML5プロトコルです。 WebSocketを使用すると、リアルタイム通信を確立し、サーバーと帯域幅のリソースを節約できます。 WebSocketは、TCP経由でデータを転送するHTTPに似ています。 WebSocket は双方向通信プロトコルであり、これが HTTPの大きな違いの 1 つです。 WebSocketを介して接続が確立された後、WebSocketサーバーとブラウザーまたはクライアントは、ソケットと同様に相互にデータを送受信できます。 WebSocketサーバーとクライアントは、通信を確立するために、TCPハンドシェイクと同様のハンドシェイクを完了する必要があります。
WebSocket Secureは、WebSocketの暗号化バージョンです。
なぜWebSocket?
インターネットが発展するにつれて、新しいウェブアプリケーションが出現する。 ライブビデオストリーミングやオンラインチャットルームなどのこれらのアプリケーションでは、サーバーがリアルタイムでメッセージをプッシュする必要があります。 この目標を達成するために、多数のWebサイトが過去にポーリング技術を使用していました。 ポーリング手法が使用される場合、ブラウザは、毎秒などの特定の間隔でHTTP要求をサーバに送信する。 次に、サーバは、最新のデータをクライアントのブラウザに返す。 この技術の1つの欠点は、帯域幅リソースが浪費されることである。 ブラウザは常にサーバーにリクエストを送信する必要があり、HTTPリクエストヘッダーは長く、少量の有効なデータしか含まれていません。
この問題を解決するために、HTML5はWebSocketを定義します。これは、サーバーと帯域幅のリソースを節約し、リアルタイム通信を容易にします。 WebSocketは、ブラウザとサーバー間の全二重通信を可能にし、サーバーがクライアントにデータを事前に送信できるようにします。
次の図は、クライアントがWebSocketを使用してサーバーと対話する方法を示しています。
Server Load Balancer (SLB) インスタンスのWebSocketおよびWebSocket Secureを有効にするにはどうすればよいですか。
デフォルトでは、HTTPリスナーはWebSocketをサポートします。
デフォルトでは、HTTPSリスナーはWebSocket Secureをサポートしています。
サポートされるリージョン
WebSocketとWebSocket Secureはすべてのリージョンでご利用いただけます。
課金
WebSocketまたはWebSocket Secureの使用に対して課金されません。
制限事項
WebSocketとWebSocket Secureを使用する場合は、次の制限事項に注意してください。
バックエンドECS (Elastic Compute Service) インスタンスのサービスがHTTP/1.1を介してSLBインスタンスと通信する場合、バックエンドECSインスタンスにHTTP/1.1をサポートするwebサーバーをデプロイすることを推奨します。
SLBインスタンスとECSインスタンスのバックエンドサービス間で60秒間パケットが送信されない場合、接続は閉じられます。 接続を開いたままにしたい場合は、キープアライブ機能を有効にして、60秒ごとにパケットが送信されるようにします。