ストーリー
ミッション概要
| 項目 | 内容 |
|---|---|
| 演習タイトル | AIサービング基盤設計 |
| 想定時間 | 90分 |
| 成果物 | サービング基盤設計書(アーキテクチャ図 + 設定仕様 + セキュリティ設計) |
前提条件
Step 1の演習で使用した3つのAIサービスの情報に加え、以下の追加要件があります。
追加要件
| 要件 | 内容 |
|---|---|
| 可用性目標 | CS-AI: 99.9%、FAQ Bot: 99.5%、コードレビュー: 99.0% |
| レスポンス目標 | CS-AI: P95 5秒以内、FAQ Bot: P95 8秒以内 |
| セキュリティ | CS-AIのログにはPII保護が必須 |
| 予算制約 | インフラ追加コスト月額10万円以内 |
| 将来計画 | 6ヶ月後に2つのAIサービスを追加予定 |
Mission 1: API Gatewayアーキテクチャ設計
要件
- アーキテクチャ図を作成(テキストベースでも可)
- ルーティングテーブルを設計(サービス別のモデル・プロバイダ割当)
- レート制限設計(グローバル、サービス別、ユーザー別)
- APIキー管理方式の設計
解答例
ルーティングテーブル
| サービス | 優先度 | Primary | Secondary | 理由 |
|---|---|---|---|---|
| CS-AI(複雑) | Critical | GPT-4o | Claude 3.5 Sonnet | 顧客対応品質を最優先 |
| CS-AI(簡易) | Critical | GPT-4o-mini | Claude 3.5 Haiku | コスト効率。定型応答 |
| FAQ Bot | High | Claude 3.5 Sonnet | GPT-4o | 既存プロンプトがClaude向け |
| コードレビュー | Normal | GPT-4o | Claude 3.5 Sonnet | 非同期処理可。品質重視 |
レート制限
| レベル | 制限値 | 根拠 |
|---|---|---|
| グローバル | 400 req/min | OpenAI Tier 3の TPM制限から逆算 |
| CS-AI | 200 req/min | ピーク時500件/時 ÷ 60 × 安全係数3 |
| FAQ Bot | 100 req/min | ピーク時150件/時 ÷ 60 × 安全係数3 |
| コードレビュー | 50 req/min | 非同期のため低く設定可能 |
| ユーザー単位 | 10 req/min | 乱用防止 |
Mission 2: フォールバック設計
要件
- フォールバックチェーンを各サービスごとに設計
- サーキットブレーカーのパラメータを決定
- グレースフルデグラデーションの段階を定義
- 障害シナリオ別の想定動作を記述
解答例
CS-AIのフォールバックチェーン
| 段階 | 条件 | 動作 | ユーザーへの影響 |
|---|---|---|---|
| Primary | 正常時 | GPT-4o で応答 | なし |
| Secondary | GPT-4o 障害 | Claude 3.5 Sonnet に切替 | 微小な応答スタイルの変化 |
| Tertiary | 両プロバイダ障害 | GPT-4o-mini に切替 | 品質低下(告知あり) |
| Cache | 全LLM障害 | 類似キャッシュ応答 | 「キャッシュ応答」と表記 |
| Static | すべて失敗 | 定型メッセージ + 人間エスカレーション | 応答品質は最低限 |
サーキットブレーカーパラメータ
| パラメータ | 値 | 根拠 |
|---|---|---|
| エラー率閾値 | 50% | 半数以上がエラーなら遮断 |
| ウィンドウサイズ | 60秒 | 一時的なエラーでの誤発動を防止 |
| 最小サンプル数 | 10件 | 統計的に有意な判断 |
| OPEN状態の持続時間 | 60秒 | 短すぎるとフラッピング |
| HALF-OPEN時のテスト数 | 3件 | 復旧確認の信頼性 |
Mission 3: セキュリティ設計
要件
- APIキー管理アーキテクチャを設計
- PII保護方針をCS-AIに対して策定
- 監査ログ設計(記録項目、保持期間、アクセス制御)
- プロンプトインジェクション対策の実装方針
解答例
PII保護方針(CS-AI)
| 段階 | 対策 | 実装方法 |
|---|---|---|
| 入力時 | ユーザー入力からPII検出 | 正規表現 + Presidio(OSS) |
| 送信前 | PIIをプレースホルダに置換 | [EMAIL] → masked@example.com |
| ログ保存 | マスキング済みログのみ保存 | Langfuseへの送信前にマスキング |
| 出力時 | 応答内のPII検出・マスキング | 出力フィルタで再チェック |
監査ログ設計
| カテゴリ | 記録項目 | 保持期間 | アクセス権限 |
|---|---|---|---|
| リクエストログ | サービス、ユーザー、モデル、トークン数、コスト | 1年 | LLMOps + SRE |
| セキュリティイベント | インジェクション検出、PII検出、異常アクセス | 3年 | セキュリティ + LLMOps |
| 設定変更 | プロンプト変更、権限変更、モデル変更 | 3年 | 全エンジニア(読取専用) |
達成度チェック
| 観点 | 達成基準 |
|---|---|
| アーキテクチャ | 3サービスの統合構成図が明確で、将来の拡張を考慮している |
| フォールバック | 4段階以上のフォールバックチェーンが各サービスに定義されている |
| セキュリティ | PII保護、インジェクション対策、監査ログの3領域をカバーしている |
| 実現性 | 予算制約(月10万円)と可用性目標を踏まえた現実的な設計 |
推定所要時間: 90分