ストーリー
ミッション概要
| ミッション | テーマ | 目安時間 |
|---|---|---|
| Mission 1 | C4図の作成(Context + Container) | 15分 |
| Mission 2 | 技術スタック選定と根拠 | 15分 |
| Mission 3 | デプロイメントビューの作成 | 15分 |
| Mission 4 | レビュー可能なドキュメント統合 | 15分 |
前提シナリオ
Step 2-4で分析してきたECプラットフォームのアーキテクチャ設計書を完成させます。
Mission 1: C4図の作成(15分)
要件
ECプラットフォームのLevel 1(System Context)とLevel 2(Container)図を作成してください。
解答例
Level 1: System Context
外部アクター:
- 一般ユーザー(Web/モバイル)
- 店舗管理者
- システム管理者
外部システム:
- Stripe(決済)
- SendGrid(メール)
- AWS S3(画像ストレージ)
- 配送パートナーAPI
Level 2: Container
フロントエンド:
- Next.js SPA(ユーザー向け)
- React Admin(管理画面)
- Flutter(モバイルアプリ)
バックエンド:
- BFF Gateway(Node.js/Express)
- 商品サービス(Node.js)
- 注文サービス(Node.js)
- ユーザーサービス(Node.js)
- 検索サービス(Node.js)
データストア:
- PostgreSQL(商品、注文、ユーザー)
- Redis(キャッシュ、セッション)
- Elasticsearch(商品検索)
メッセージング:
- Apache Kafka(イベント)
インフラ:
- AWS EKS(コンテナオーケストレーション)
- CloudFront(CDN)
Mission 2: 技術スタック選定と根拠(15分)
要件
主要技術の選定理由をテーブル形式で記述してください。
解答例
| カテゴリ | 技術 | 選定理由 | 代替候補 | 不採用理由 |
|---|---|---|---|---|
| 言語 | TypeScript | フルスタック統一、型安全 | Go | チームスキル不足 |
| FW(FE) | Next.js | SSR/SSG、SEO対応 | Nuxt.js | Reactエコシステム優先 |
| FW(BE) | NestJS | DI、モジュール構造 | Express | 大規模開発の構造化 |
| DB | PostgreSQL | JSONB、信頼性 | MySQL | JSON対応の柔軟性 |
| 検索 | Elasticsearch | 全文検索、ファセット | Algolia | コスト、カスタマイズ性 |
| キャッシュ | Redis | 高速、Pub/Sub | Memcached | データ構造の豊富さ |
| MQ | Kafka | 耐久性、スループット | RabbitMQ | ログベースの永続化 |
| IaC | Terraform | マルチクラウド | CDK | 学習コスト |
| CI/CD | GitHub Actions | GitHub統合 | CircleCI | リポジトリ統合 |
Mission 3: デプロイメントビュー(15分)
要件
本番環境のデプロイメント構成を図とテーブルで記述してください。
解答例
AWS構成:
Route 53 → CloudFront → ALB → EKS Cluster
├── 商品サービス Pod (3)
├── 注文サービス Pod (3)
├── ユーザーサービス Pod (3)
└── BFF Pod (3)
データ層:
RDS PostgreSQL (Multi-AZ)
ElastiCache Redis (Cluster)
Amazon Elasticsearch Service
Amazon MSK (Kafka)
ストレージ:
S3 (商品画像、静的アセット)
| コンポーネント | インスタンス | スペック | 冗長化 |
|---|---|---|---|
| EKS Worker | 3-10台 | m5.xlarge | マルチAZ |
| RDS | Primary + Replica | r5.xlarge | マルチAZ |
| ElastiCache | 3ノード | r5.large | Cluster |
| MSK | 3ブローカー | kafka.m5.large | 3AZ |
Mission 4: レビュー可能なドキュメント統合(15分)
要件
arc42テンプレートに沿って、設計書の目次と各セクションの要約(1-2行)を作成してください。
解答例
# ECプラットフォーム アーキテクチャ設計書
## 1. はじめに
BtoC向けECプラットフォーム。初年度10万→3年後100万ユーザー。
## 2. 制約条件
PCI DSS準拠、AWS環境、TypeScript統一。
## 3. コンテキストと範囲
ユーザー・管理者・外部決済・配送パートナーとの連携。
## 4. ソリューション戦略
モジュラーモノリス→段階的マイクロサービス。CQRS+イベント駆動。
## 5. ビルディングブロック
BFF + 4サービス(商品・注文・ユーザー・検索)。
## 6. ランタイムビュー
注文フロー、検索フロー、決済フローのシーケンス。
## 7. デプロイメントビュー
AWS EKS、マルチAZ、CI/CDパイプライン。
## 8. 横断的関心事
認証(JWT)、ログ(構造化)、エラー処理、ヘルスチェック。
## 9. アーキテクチャ決定
ADR-001〜005(DB、通信、キャッシュ、MQ、IaC)。
## 10. 品質要件
可用性99.95%、p95レスポンス500ms、セキュリティ要件。
## 11. リスク
Kafka運用スキル不足、スケーリング戦略の検証不足。
## 12. 用語集
BFF、CQRS、SLI/SLO等の用語定義。
まとめ
| ポイント | 内容 |
|---|---|
| C4図 | 読者に応じたレベルで図を作成する |
| 技術選定 | 選定理由と不採用理由を明記する |
| デプロイ | 本番構成を具体的に記述する |
| 統合 | arc42テンプレートで体系的にまとめる |
チェックリスト
- C4のContext図とContainer図を作成できた
- 技術スタックの選定根拠を記述できた
- デプロイメント構成を記述できた
- 設計書全体の構造を組み立てられた
次のステップへ
次はチェックポイントクイズで設計書作成の理解度を確認します。
推定読了時間: 60分