WebSocket APIの基礎(API Gateway)

API Gatewayの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との利用が主なユースケースとなります。 WebSocket APIのアーキテクチャ

代表的な使い方

  • バックエンドを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}/クライアントがWebSocketAPIと双方向通信をする。https://{api-id}.execute-api.{region}.amazonaws.com/@connections/{connection-id}バックエンド(ECS)がクライアント向けのメッセージをWebSocketAPIに送信する。 |

エンドポイントURLの利用イメージ

重要ポイント

  • WebSocketでリアルタイム双方向通信
  • リージョンAPIエンドポイントで提供
  • Lambda/HTTP/AWSサービス/VPCリンク等に統合
  • ルート選択式でメッセージ内容で処理分岐
  • wss接続URLと@connections送信を押さえる

このトピックの学習を完了しますか?

完了状態はいつでも切り替えられます