プロセスタイプ
Twelve-Factor App のプロセスモデルで、アプリケーションの実行形態を分類する概念
アーキテクチャ運用
プロセスタイプとは
プロセスタイプは、Twelve-Factor App の第 8 原則「並行性はプロセスモデルで実現する」に基づく概念で、アプリケーションの実行形態を Web プロセス、Worker プロセス、スケジュールプロセスなどに分類する。
プロセスタイプの例
| タイプ | 役割 | AWS での実装 |
|---|---|---|
| Web | HTTP リクエストの処理 | Lambda + API Gateway |
| Worker | 非同期タスクの処理 | Lambda + SQS |
| Clock | スケジュール実行 | Lambda + EventBridge |
| One-off | 一回限りのタスク | Lambda (手動実行) |
Procfile (Heroku 形式)
web: node dist/server.js
worker: node dist/worker.js
clock: node dist/scheduler.js
AWS サーバーレスでのプロセスタイプ
AWS サーバーレスでは、Web プロセスは Lambda + API Gateway、Worker プロセスは Lambda + SQS、Clock プロセスは Lambda + EventBridge で実装する。各プロセスタイプを独立してスケーリングできる。
ステートレスの原則
全てのプロセスタイプはステートレスであるべき。状態は DynamoDB、S3、ElastiCache に外部化する。プロセスが再起動しても、状態が失われない。
プロセスタイプについては関連書籍でも詳しく扱われている。