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

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

アーキテクチャ耐障害性

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

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

セルの構造

ルーター (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. 全セルにデプロイ 段階的に展開

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

関連用語