← Claude API & Claude Code 活用
LESSON 06 / 06

本番運用:エラー処理・レート制限・モニタリング

所要時間 12分 上級レベル

本コースの最終レッスンでは、Claude API を本番環境で安定稼働させるための実務知識をまとめます。

主要なエラー種別

  • 400 Bad Request:パラメータ誤り。入力検証で防ぐ
  • 401 Unauthorized:APIキー誤り。シークレット管理を確認
  • 429 Rate Limit:レート制限超過。リトライ必要
  • 500 系:Anthropic 側障害。指数バックオフでリトライ
  • 529 Overloaded:負荷集中。少し待ってリトライ

リトライ戦略

import time
from anthropic import Anthropic, APIStatusError

client = Anthropic()

def call_with_retry(messages, max_retries=5):
    for attempt in range(max_retries):
        try:
            return client.messages.create(
                model="claude-sonnet-4-5",
                max_tokens=1024,
                messages=messages,
            )
        except APIStatusError as e:
            if e.status_code in (429, 500, 502, 503, 504, 529):
                wait = 2 ** attempt  # 指数バックオフ
                time.sleep(wait)
                continue
            raise
    raise RuntimeError("max retries exceeded")

公式SDKは内部でリトライを実装しているため、追加処理は最小限でもOKです。

レート制限の理解

Claude API のレート制限は3つの軸:

  • RPM:Requests per minute(1分あたりリクエスト数)
  • ITPM:Input tokens per minute
  • OTPM:Output tokens per minute

使用ティアごとに上限が異なり、利用実績に応じて自動昇格します。

モニタリングの基本指標

  • リクエスト数(成功/失敗)
  • p50・p95・p99 レイテンシ
  • トークン使用量(入力・出力・キャッシュ)
  • 1リクエストあたりコスト
  • エラー率(種別ごと)

Anthropic Console でも基本メトリクスは確認できますが、本番ではDatadog/Grafanaなどへ統合が推奨です。

コスト暴走を防ぐ仕組み

  • Console で月次予算アラートを設定
  • ユーザーごとの使用上限をアプリ側でも実装
  • 長すぎる会話履歴を自動切り詰め
  • キャッシュヒット率を監視(70%以上が目安)

コース修了おめでとうございます

本コース「Claude API & Claude Code 活用」はこれで完了です。プロンプトエンジニアリング・API活用・エージェント構築・運用設計まで、実務で必要な全領域を一通りカバーしました。あとは作りたいプロダクトを定め、手を動かすのみです。