Loading graph…
Scroll to zoom · Drag to pan

#opinion

AWS ECS Fargate上でwebsocketサーバーを稼働させる時の構成。

要件

  • fargate task上で任意のwebsocketサーバーを動作させること
    • 1セッションの負荷は大きいため、1タスクが同時に処理できるセッション数には上限がある
    • セッションがある程度増減したら、タスクを自動で増減させる (オートスケール)
  • ユーザーのブラウザからwebsocketサーバーにアクセスできること

構成図

graph LR
  Browser["ブラウザ\n(WebSocket client)"]
  R53["Route 53"]
  CF["CloudFront\nCDN / TLS終端"]
  ALB["ALB\nWebSocketサポート"]
  Fargate["Fargate Task\nアプリコンテナ"]
  ECR["ECR\nイメージ保管"]

  Browser <-->|wss://| CF
  R53 --> CF
  CF --> ALB
  ALB <-->|ws://| Fargate
  ECR -.->|イメージpull\n起動時のみ| Fargate

  subgraph VPC["AWS VPC"]
    subgraph ECS["ECS Cluster"]
      Fargate
    end
    ALB
    ECR
  end

ポイント

  • ALBにより、websocketセッション毎に、適切なfargateタスクにルーティング
    • Auto Scalingにより、振り分け先のFargate Taskは増減する
Change history
2026-06-06 add new notes falsycat
diff --git a/cells/2026060617-wsock-to-fargate.md b/cells/2026060617-wsock-to-fargate.md
new file mode 100644
index 0000000..913d2f5
--- /dev/null
+++ b/cells/2026060617-wsock-to-fargate.md
@@ -0,0 +1,43 @@
+# FargateへWebSocketを繋げる
+
+#opinion
+
+[[2026060605]]上でwebsocketサーバーを稼働させる時の構成。
+
+## 要件
+
+- fargate task上で任意のwebsocketサーバーを動作させること
+    - 1セッションの負荷は大きいため、1タスクが同時に処理できるセッション数には上限がある
+    - セッションがある程度増減したら、タスクを自動で増減させる (オートスケール)
+- ユーザーのブラウザからwebsocketサーバーにアクセスできること
+
+## 構成図
+
+```mermaid
+graph LR
+  Browser["ブラウザ\n(WebSocket client)"]
+  R53["Route 53"]
+  CF["CloudFront\nCDN / TLS終端"]
+  ALB["ALB\nWebSocketサポート"]
+  Fargate["Fargate Task\nアプリコンテナ"]
+  ECR["ECR\nイメージ保管"]
+
+  Browser <-->|wss://| CF
+  R53 --> CF
+  CF --> ALB
+  ALB <-->|ws://| Fargate
+  ECR -.->|イメージpull\n起動時のみ| Fargate
+
+  subgraph VPC["AWS VPC"]
+    subgraph ECS["ECS Cluster"]
+      Fargate
+    end
+    ALB
+    ECR
+  end
+```
+
+## ポイント
+
+- [[2026060614|ALB]]により、websocketセッション毎に、適切なfargateタスクにルーティング
+    - Auto Scalingにより、振り分け先の[[2026060605|Fargate Task]]は増減する