インフラの層構造

インフラリソースを「依存関係の方向」に基づいていくつかの層に分けて捉えるアーキテクチャパターン。複雑なインフラを理解・構築する際の認知負荷を下げる。

動機

クラウドインフラには多数のリソースが存在し、それらの依存関係は複雑になりがちだ。層として捉えることで:

ECS Fargateの例

ECS Fargateでは3層構造で整理できる:

┌─────────────────────────────────────────┐
│  トラフィック層(L3)                     │
│  Route53 → ALB → TargetGroup            │
├─────────────────────────────────────────┤
│  コンテナ層(L2)                        │
│  Cluster → Service → Task               │
├─────────────────────────────────────────┤
│  基盤層(L1)                            │
│  VPC, Subnet, SG, IAM, ECR, Logs        │
└─────────────────────────────────────────┘

上位の層は下位の層に依存する。構築は下から、削除は上から行う。

一般的な層の分類

Webシステムにおける典型的な層:

ネットワーク基盤層 VPC、サブネット、ルートテーブル
セキュリティ層 セキュリティグループ、IAMロール
コンピューティング層 EC2、ECS、Lambda
データ層 RDS、DynamoDB、S3
トラフィック層 ロードバランサー、CDN、DNS

他のアーキテクチャとの関連

設計への示唆

層を意識すると以下のメリットがある:

関連