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

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

アーキテクチャ耐障害性

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

セルベースアーキテクチャは、システムを独立したセルに分割し、障害の爆発半径 (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. 全セルにデプロイ 段階的に展開

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

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

関連用語

関連する記事