WebSocket APIの基礎
WebSocket APIの基礎
WebSocket APIとは?
WebSocket APIは、WebSocketという仕組みを使って「サーバーとクライアントがリアルタイムで双方向にやりとりできる」APIです。チャットや通知など、すぐに情報を送りたいサービスで使われます。
WebSocket APIのエンドポイントタイプ
タイプ | 説明 |
---|---|
リージョンAPIエンドポイント | 指定したAWSリージョン内でAPIを提供します。 |
- バックエンドには「Lambda」「HTTPエンドポイント」「Mock」「AWSサービス」「VPCリンク」などが使えます。
- 特にVPCリンクを使うと、ECSやEC2などのコンテナアプリケーションと連携できます。
主なユースケース
双方向という特性上、EC2やECSとの利用が主なユースケースとなります。
代表的な使い方
- バックエンドをECSなどのコンテナで構成し、NLB経由でAPI Gatewayとつなげます。
- REST APIと同じく、ALB(アプリケーションロードバランサー)は直接使えません。ALBを使いたい場合はHTTP APIを検討します。
WebSocket APIの主な設定項目
設定項目 | 説明 |
---|---|
ルート選択式 | 受信したメッセージの内容(例:actionキー)で処理を振り分けます。例:$request.body.action |
ルート | どの処理を行うかを決める設定。$connect (接続時 )接続の初期化や認証など、$disconnect (切断時)リソースの解放や接続情報の削除など、$default (その他)などがあります。 |
統合 | LambdaやHTTPエンドポイントなど、どこに処理を渡すかを決めます。 |
ステージ | APIの公開環境(例:dev、prod)。WebSocketはサーバーからクライアントへのコールバックも可能です。 |
エンドポイントURL例 | wss://{api-id}.execute-api.{region}.amazonaws.com/{stageName}/ <br>クライアントがWebSocketAPIと双方向通信をする。<br><br>https://{api-id}.execute-api.{region}.amazonaws.com/@connections/{connection-id} <br>バックエンド(ECS)がクライアント向けのメッセージをWebSocketAPIに送信する。 |