セルベースアーキテクチャ

システムを独立したセルに分割し、障害の爆発半径を最小化するデプロイメントパターン

アーキテクチャ耐障害性

セルベースアーキテクチャとは

セルベースアーキテクチャは、システムを独立したセルに分割し、障害の爆発半径 (Blast Radius) を最小化するパターンである。AWS が大規模サービスの運用で培った設計思想。

セルの構造

各セルは独立したインフラスタック (API GatewayLambdaDynamoDB など) を持ち、特定のテナント群を担当する。ルーターがテナント ID に基づいてリクエストを適切なセルに振り分ける。1 つのセルに障害が発生しても、他のセルのテナントには影響しない。

ルーター (Route 53 / CloudFront)
  ├── セル A (テナント 1-100)
  │   ├── API Gateway
  │   ├── Lambda
  │   └── DynamoDB
  ├── セル B (テナント 101-200)
  │   ├── API Gateway
  │   ├── Lambda
  │   └── DynamoDB
  └── セル C (テナント 201-300)

セル vs 単一デプロイ

セルと単一デプロイの違いを以下にまとめる。

観点単一デプロイセルベース
障害の影響全ユーザーセル内のユーザーのみ
デプロイリスク全体に影響1 セルずつ段階的に
スケーリング全体をスケールセル単位でスケール
コスト低いやや高い (リソースの重複)

セルへのルーティング

セルへのルーティングのコード例を示す。

// テナント ID からセルを決定
function routeToCell(tenantId: number): string {
  if (tenantId <= 100) return 'cell-a.api.example.com';
  if (tenantId <= 200) return 'cell-b.api.example.com';
  return 'cell-c.api.example.com';
}

セルベースのデプロイ

セルベースのデプロイを以下にまとめる。

手順説明
1. セル A にデプロイ最小のセルで検証
2. 監視エラー率、レイテンシを確認
3. セル B にデプロイ問題なければ次のセル
4. 全セルにデプロイ段階的に展開

実務での活用方法は関連書籍にも詳しい。

この記事は役に立ちましたか?

関連用語

関連する記事