C
Claude Academy
Production Ops

本番運用とオブザーバビリティ

約 10 分 · クイズ 4 問 · 演習 1 問
重要キーワード (4 語)
Observability (可観測性) — Logs / Metrics / Traces で内部状態を把握
SLO (サービスレベル目標) — 可用性・レイテンシ等の目標値
Canary Deploy (カナリア展開) — 新版を一部トラフィックに段階的に展開
Failover (フェイルオーバー) — 障害時に代替経路に切替えて継続

本番運用

Observability の 3 軸

  • Logs: リクエスト/レスポンスの記録。PII マスキング必須。
  • Metrics: レイテンシ p50/p95/p99, コスト, エラー率, キャッシュヒット率。
  • Traces: 1 リクエストの中での tool 呼び出しチェーンを可視化。

SLO 例

  • p95 レイテンシ < 4s
  • エラー率 < 0.5%
  • 月間コスト < $X
  • 拒否率 < 2%

Failover

  • Anthropic API 障害時のフォールバック:
  • モデルダウングレード (Sonnet → Haiku)
  • キャッシュからの返答
  • 静的な定型文
def safe_answer(prompt: str) -> str:
    try:
        return ask_sonnet(prompt)
    except Exception:
        try:
            return ask_haiku(prompt)
        except Exception:
            return "ただいま混雑しています。しばらくお待ちください。"

Canary Deploy

新プロンプト/新モデルは 5% トラフィックのみ に流して安全確認。 A/B 比較ができる仕組みも望ましい。

Cost Guardrails

  • 1 ユーザー / 1 セッションの トークン上限
  • 異常検知で自動停止。
  • ハードリミット (組織全体での月間予算)。
  • 早期警告 (80% 到達でアラート)。

ユーザーへの透明性

  • 「AI が回答しています」を明示。
  • 機密性が高い回答には警告を。
  • フィードバック機構を必ず置く (👍 / 👎)。
  • 出力は変更可能なドラフトとして提示するのが望ましい。

Trace の例

OpenTelemetry や Langfuse・Helicone を使うと、エンドツーエンドのトレースが可視化できます。

Request 12ab
├─ retrieve_context (8ms)  [chunks=5]
├─ messages.create [stream] (3.2s)
│   ├─ tool_use: search_db (220ms)
│   └─ tool_use: notify_slack (180ms)
└─ post_process (15ms)

Monitoring 仕組み

項目
ダッシュボード Grafana / Datadog
トレース OTel + Langfuse
アラート Slack / PagerDuty
ログ集約 Loki / Splunk

Incident response

  • LLM 出力に重大な問題が出たら、即座に モデルやプロンプトをロールバック
  • 影響を受けたユーザーへの通知方針を準備
  • root cause analysis (RCA) を 24 時間以内に文書化

試す

監視設計を Claude に。

▶ 監視設計依頼
B2C のチャットボット (月 100 万リクエスト) に必須の Observability 項目を 10 個リストアップしてください。各項目に「メトリクス名 / 取得方法 / 望ましい SLO 値の目安」を表で。

Hands-on 演習

演習 1: シンプルなコストガードレール

1 ユーザーあたりの 1 日のトークン上限を超えたら 429 を返す Flask middleware を書いてください。

  • ユーザー識別はリクエストヘッダ X-User-Id
  • 上限: 100K input / 50K output トークン / 24h
  • ストレージは sqlite or Redis (どちらでも)
  • 上限超過時は 429 + 残量情報を返す
▶ Playground を開いて実行
💡 ヒント

実運用なら Redis + Lua スクリプトで atomic 更新が望ましいですが、SQLite + transaction でも十分実用できます。

進捗保存にはログインが必要 クイズに挑戦 (4問)

💬 このレッスンへの質問 (0)

全質問を見る →
質問の投稿には ログイン が必要です。閲覧は誰でも可能です。

まだ質問はありません。最初の 1 件を投稿してみましょう。