プロセスタイプ
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 形式)
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 に外部化する。プロセスが再起動しても、状態が失われない。
プロセスタイプについては関連書籍でも詳しく扱われている。
この記事は役に立ちましたか?
関連用語
Twelve-Factor App
クラウドネイティブなアプリケーションを構築するための 12 の設計原則
プロセスとスレッド
OS のプロセスとスレッドの違い、およびプログラムの並行実行モデル
Lambda
AWS のサーバーレスコンピューティングサービスで、コードをイベント駆動で実行する
ステートレス
プロセスが内部に状態を持たず、リクエストごとに独立して処理する設計原則
Namespace と cgroup
Linux コンテナの基盤技術で、プロセスの隔離とリソース制限を実現するカーネル機能
管理プロセス
Twelve-Factor App の原則で、DB マイグレーションなどの管理タスクをワンオフプロセスとして実行する