EXERCISE 60分

ストーリー

佐藤CTO
Step 3で学んだ横断的関心事 — セキュリティ、可観測性、パフォーマンス、災害復旧。これらを個別に理解するだけでは不十分だ
佐藤CTO
本番のアーキテクチャでは、これらが統合されて初めて意味を持つ。NexPayの横断的関心事を1つのドキュメントとして設計してみよう

ミッション概要

ミッションテーマ目安時間
Mission 1セキュリティ設計書の作成15分
Mission 2可観測性設計書の作成15分
Mission 3パフォーマンス要件の定義15分
Mission 4DR/BCP設計書の統合15分

Mission 1: セキュリティ設計書の作成(15分)

要件

NexPayのセキュリティアーキテクチャ設計書を作成してください。以下の項目を含めること。

  1. 脅威モデル — 主要な脅威とその対策を3つ以上
  2. 認証・認可フロー — ユーザー認証からAPI呼び出しまでの流れ
  3. データ保護 — 暗号化戦略(転送時・保管時)
解答例
■ 脅威モデルと対策

| 脅威 | リスクレベル | 対策 |
|------|------------|------|
| カード情報の窃取 | 致命的 | PCI DSSスコープ分離、トークナイゼーション |
| 不正送金 | 致命的 | 多要素認証、取引金額制限、AMLスクリーニング |
| APIへのDDoS | 高 | WAF + Shield Advanced、レート制限 |
| 内部不正アクセス | 高 | RBAC + 最小権限、監査ログ、特権アクセス管理 |
| SQLインジェクション | 中 | パラメータバインディング、WAFルール |

■ 認証・認可フロー

User → Mobile App: 生体認証 / PIN
  → API Gateway: JWT(短寿命15分)
    → Kong: JWT検証 + レート制限チェック
      → Service: スコープベースの認可チェック
        → DB: RLSによる行レベルアクセス制御

高額取引(10万円以上):
  追加のステップアップ認証(SMS OTP or 生体認証の再確認)

■ データ保護

転送時:
  - 外部通信: TLS 1.3必須
  - サービス間: mTLS(Istio Service Mesh)
  - gRPC: TLS暗号化チャネル

保管時:
  - Aurora: AES-256 (AWS KMS CMK)
  - S3: SSE-KMS
  - ElastiCache: at-rest暗号化有効
  - カード情報: トークナイゼーション(カード番号はTokenization Serviceのみ保持)

鍵管理:
  - AWS KMS: マスターキー管理
  - CloudHSM: PCI DSS対象の暗号鍵
  - 鍵ローテーション: 年次自動ローテーション

Mission 2: 可観測性設計書の作成(15分)

要件

NexPayの可観測性を統合的に設計してください。

  1. メトリクス設計 — ビジネスKPIとシステムKPIの定義
  2. ダッシュボード構成 — 3種類のダッシュボード設計
  3. アラート戦略 — 重要度別のアラートルール
解答例
■ メトリクス設計

ビジネスKPI:
  - 決済成功率: > 99.5%(5分間隔で集計)
  - 決済処理時間: p99 < 800ms
  - 日次取引額: リアルタイム集計
  - 不正検知率: 不正取引/全取引の比率

システムKPI:
  - API可用性: > 99.99%
  - Pod再起動回数: < 1回/日
  - DB接続プール使用率: < 80%
  - Kafkaコンシューマーラグ: < 1000メッセージ

■ ダッシュボード構成

1. エグゼクティブダッシュボード(経営層向け):
   - 日次/月次取引額、決済成功率、アクティブユーザー数
   - 前月比・前年比のトレンド

2. オペレーションダッシュボード(SRE向け):
   - SLI/SLOの現在値とバーンレート
   - インフラリソース使用率、エラーレート
   - デプロイ状況、直近のインシデント

3. サービスダッシュボード(開発チーム向け):
   - サービス別のレイテンシ・エラーレート
   - 分散トレーシング(Jaeger)
   - ログの集約ビュー

■ アラート戦略

| 重要度 | 条件 | 通知先 | 対応時間 |
|--------|------|--------|---------|
| P1(緊急) | 決済API 5xx > 1% / 5分 | PagerDuty → オンコール | 5分以内 |
| P1(緊急) | 決済成功率 < 99% / 5分 | PagerDuty → オンコール | 5分以内 |
| P2(高) | API レイテンシ p99 > 2秒 | Slack #alerts + PagerDuty | 30分以内 |
| P3(中) | DB接続プール > 80% | Slack #alerts | 4時間以内 |
| P4(低) | ディスク使用率 > 70% | Slack #monitoring | 翌営業日 |

Mission 3: パフォーマンス要件の定義(15分)

要件

NexPayの各サービスのパフォーマンス要件と、それを達成するための設計を記述してください。

  1. レイテンシ目標 — サービス別のSLO
  2. スループット目標 — ピーク時の処理能力
  3. スケーリング戦略 — 各コンポーネントのスケーリング方式
解答例
■ レイテンシ目標(SLO)

| サービス | p50 | p95 | p99 | 計測ポイント |
|---------|-----|-----|-----|------------|
| QRコード決済 | 200ms | 500ms | 800ms | API Gateway → レスポンス |
| 残高照会 | 50ms | 100ms | 200ms | Redis Cache Hit時 |
| 送金 | 300ms | 800ms | 1500ms | Saga完了まで(同期部分) |
| 投資注文 | 500ms | 1000ms | 2000ms | 注文受付まで |

■ スループット目標

通常時:
  - 決済: 1,000 TPS
  - 送金: 500 TPS
  - 残高照会: 5,000 TPS

ピーク時(キャンペーン・年末):
  - 決済: 5,000 TPS(通常の5倍)
  - 送金: 2,000 TPS
  - 残高照会: 20,000 TPS

■ スケーリング戦略

| コンポーネント | スケーリング方式 | トリガー |
|--------------|----------------|---------|
| Payment Pod | HPA (CPU > 60%) | 水平スケーリング: 3→20 Pod |
| Account Pod | HPA (RPS > 1000/pod) | 水平スケーリング: 3→15 Pod |
| Aurora Reader | Auto Scaling | 接続数 > 70% |
| ElastiCache | クラスターモード | シャード追加(手動) |
| Kafka | パーティション追加 | コンシューマーラグ監視 |

Mission 4: DR/BCP設計書の統合(15分)

要件

Step 3-4で学んだDR/BCPの内容を設計書としてまとめてください。

  1. RPO/RTOマトリクス — サービスティア別の目標値
  2. フェイルオーバー手順 — 自動/手動の判断基準
  3. テスト計画 — DR訓練のスケジュール
解答例
■ RPO/RTOマトリクス

| ティア | サービス | RPO | RTO | DR構成 | 年間コスト |
|-------|---------|-----|-----|--------|-----------|
| Tier 1 | 決済、残高 | 0 | < 1分 | Active-Active(AZ) | 高 |
| Tier 2 | 送金、KYC | < 1秒 | < 5分 | Hot Standby | 中〜高 |
| Tier 3 | 投資、通知 | < 1分 | < 30分 | Warm Standby | 中 |
| Tier 4 | 分析、レポート | < 1時間 | < 4時間 | Backup & Restore | 低 |

■ フェイルオーバー判断基準

自動フェイルオーバー:
  - AZ障害: Route 53ヘルスチェック失敗 → 自動AZ切り替え
  - DB障害: Aurora自動フェイルオーバー(30秒以内)

手動フェイルオーバー(SREリード承認必要):
  - リージョン障害: 大阪リージョンへの切り替え
  - 判断基準: プライマリリージョン復旧見込み > 30分の場合

手順:
  1. Route 53ヘルスチェック: プライマリ異常検知(自動、30秒)
  2. SREリード判断: リージョンフェイルオーバーの要否(手動、5分以内)
  3. Aurora昇格: セカンダリをWriterに昇格(自動、1分)
  4. EKSスケールアウト: 大阪リージョンをフル構成に(自動、3分)
  5. DNS切り替え: TTL 60秒で反映

■ DR訓練計画

| 頻度 | 訓練内容 | 参加者 |
|------|---------|--------|
| 月次 | DBリストアテスト | SREチーム |
| 四半期 | リージョンフェイルオーバー(計画的) | エンジニアリング全体 |
| 半期 | 縮退運転モード切り替え訓練 | エンジニアリング + CS |
| 年次 | ゲームデー(全体DR訓練) | 全社 |

達成度チェック

ミッションテーマ完了
Mission 1セキュリティ設計書の作成
Mission 2可観測性設計書の作成
Mission 3パフォーマンス要件の定義
Mission 4DR/BCP設計書の統合

まとめ

ポイント内容
セキュリティ脅威モデル・認証認可・データ保護の統合設計
可観測性ビジネス/システムKPI、ダッシュボード、アラートの体系化
パフォーマンスSLO定義とスケーリング戦略の対応付け
DR/BCPティア別RPO/RTOとフェイルオーバー判断基準の明文化

チェックリスト

  • 脅威モデルと対策を含むセキュリティ設計書を作成できた
  • メトリクス・ダッシュボード・アラートの可観測性設計を行えた
  • サービス別のレイテンシ/スループット目標を定義できた
  • RPO/RTOとフェイルオーバー手順を含むDR設計書を作成できた

次のステップへ

次はStep 3の理解度チェッククイズです。横断的関心事の理解度を確認しましょう。


推定読了時間: 60分