Claude Code์™€ ๋ชจ๋ธ ์ œ๊ณต์ž(Anthropic API, Cloud Provider) ์‚ฌ์ด์— ์œ„์น˜ํ•˜๋Š” ์ค‘์•™ ํ”„๋ก์‹œ ๋ ˆ์ด์–ด. ์ธ์ฆ, ์‚ฌ์šฉ๋Ÿ‰ ์ถ”์ , ๋น„์šฉ ์ œ์–ด, ๊ฐ์‚ฌ ๋กœ๊น…, ๋ชจ๋ธ ๋ผ์šฐํŒ…์„ ํ•œ ๊ณณ์—์„œ ๊ด€๋ฆฌํ•œ๋‹ค.

ํ•ด๋‹น ๊ฐœ๋…์ด ํ•„์š”ํ•œ ์ด์œ 

  • ์ค‘์•™ ์ง‘์ค‘ ์ธ์ฆ: API ํ‚ค๋ฅผ ๊ฐ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋ฐฐํฌํ•˜๋Š” ๋Œ€์‹ , LLM Gateway์—์„œ ์ผ๊ด„ ๊ด€๋ฆฌ
  • ์‚ฌ์šฉ๋Ÿ‰ ๋ชจ๋‹ˆํ„ฐ๋ง: ํŒ€/ํ”„๋กœ์ ํŠธ๋ณ„ ์‚ฌ์šฉ๋Ÿ‰์„ ํ•œ ๊ณณ์—์„œ ์ถ”์ 
  • ๋น„์šฉ ์ œ์–ด: ์˜ˆ์‚ฐ, rate limit์„ LLM Gateway ๋ ˆ๋ฒจ์—์„œ ์„ค์ •
  • ๊ฐ์‚ฌ ๋กœ๊น…: ๋ชจ๋“  ๋ชจ๋ธ ์ƒํ˜ธ์ž‘์šฉ์„ ์ปดํ”Œ๋ผ์ด์–ธ์Šค์šฉ์œผ๋กœ ๊ธฐ๋ก
  • ๋ชจ๋ธ ๋ผ์šฐํŒ…: ์ฝ”๋“œ ๋ณ€๊ฒฝ ์—†์ด Cloud Provider ๊ฐ„ ์ „ํ™˜ ๊ฐ€๋Šฅ

AS-IS

sequenceDiagram
    autonumber
    participant Dev1 as Developer 1
    participant Dev2 as Developer 2
    participant CC as Claude Code
    participant API as ๋ชจ๋ธ ์ œ๊ณต์ž

    Dev1->>CC: ์š”์ฒญ (์ž์ฒด API Key)
    CC->>API: ์ง์ ‘ ํ˜ธ์ถœ
    Dev2->>CC: ์š”์ฒญ (์ž์ฒด API Key)
    CC->>API: ์ง์ ‘ ํ˜ธ์ถœ

    Note over Dev1,API: ๊ฐ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ๋ณ„ API Key ๊ด€๋ฆฌ<br/>์‚ฌ์šฉ๋Ÿ‰ ์ถ”์  ๋ถˆ๊ฐ€, ๋น„์šฉ ์ œ์–ด ์–ด๋ ค์›€

TO-BE

sequenceDiagram
    autonumber
    participant Dev1 as Developer 1
    participant Dev2 as Developer 2
    participant CC as Claude Code
    participant GW as LLM Gateway
    participant API as ๋ชจ๋ธ ์ œ๊ณต์ž

    Dev1->>CC: ์š”์ฒญ
    CC->>GW: LLM Gateway ๊ฒฝ์œ 
    GW->>GW: ์ธ์ฆ, ๋กœ๊น…, rate limit ์ฒดํฌ
    GW->>API: ์ธ์ฆ๋œ ์š”์ฒญ ์ „๋‹ฌ
    API-->>GW: ์‘๋‹ต
    GW-->>CC: ์‘๋‹ต ์ „๋‹ฌ

    Dev2->>CC: ์š”์ฒญ
    CC->>GW: LLM Gateway ๊ฒฝ์œ 
    GW->>API: ์ธ์ฆ๋œ ์š”์ฒญ ์ „๋‹ฌ
    API-->>GW: ์‘๋‹ต
    GW-->>CC: ์‘๋‹ต ์ „๋‹ฌ

    Note over Dev1,API: ์ค‘์•™์—์„œ ์ธ์ฆ/๋น„์šฉ/๊ฐ์‚ฌ ์ผ๊ด„ ๊ด€๋ฆฌ

LLM Gateway vs Cloud Provider ์—ญํ•  ์ฐจ์ด

LLM Gateway์™€ Cloud Provider(Bedrock/Vertex AI/Foundry)๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋ ˆ์ด์–ด์ด๋ฉฐ ๋…๋ฆฝ์ ์œผ๋กœ ์กฐํ•ฉํ•  ์ˆ˜ ์žˆ๋‹ค.

LLM GatewayCloud Provider (Bedrock/Vertex/Foundry)
ํ•ต์‹ฌ ์—ญํ• LLM ์š”์ฒญ์˜ ํŠธ๋ž˜ํ”ฝ ๊ด€๋ฆฌ์กฐ์ง์˜ ์ธํ”„๋ผ ์ •์ฑ… ์ค€์ˆ˜
๊ตฌ์ฒด์ ์œผ๋กœ๋น„์šฉ ์ถ”์ , ๋กœ๊น…, rate limit, fallback, ๋ผ์šฐํŒ…๊ธฐ์กด IAM/๊ฒฐ์ œ/๋ณด์•ˆ ๊ฐ์‚ฌ ์ฒด๊ณ„ ์•ˆ์—์„œ ๋ชจ๋ธ ์‚ฌ์šฉ
๋น„์œ ๊ณ ์†๋„๋กœ ํ†จ๊ฒŒ์ดํŠธ (์ฐจ๋Ÿ‰ ์นด์šดํŠธ, ์š”๊ธˆ ์ง•์ˆ˜)์–ด๋–ค ๋‚˜๋ผ ๋„๋กœ๋ฅผ ์“ธ์ง€ ์„ ํƒ (๋ฒ•๋ฅ /๊ทœ์ œ ์ค€์ˆ˜)
์„ ํƒ ๊ธฐ์ค€โ€LLM ์‚ฌ์šฉ์„ ์ค‘์•™์—์„œ ๊ด€๋ฆฌํ•˜๊ณ  ์‹ถ์€๊ฐ€?""๊ธฐ์กด ํด๋ผ์šฐ๋“œ ์ •์ฑ…/๊ณ„์ • ๋‚ด์—์„œ ์จ์•ผ ํ•˜๋Š”๊ฐ€?โ€

Q) โ€œAnthropic API ์ง์ ‘ ํ˜ธ์ถœํ•˜๋ฉด ๋˜๋Š” ๊ฑฐ ์•„๋‹ˆ์•ผ? Cloud Provider๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ๊ฐ€ ๋ญ์•ผ?โ€

Cloud Provider ์—†์ด Anthropic API ์ง์ ‘ ํ˜ธ์ถœ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. Cloud Provider๊ฐ€ ํ•„์š”ํ•œ ๊ฑด ๊ธฐ์—… ํ™˜๊ฒฝ์˜ ์ œ์•ฝ ๋•Œ๋ฌธ์ด๋‹ค:

Anthropic API ์ง์ ‘Cloud Provider ๊ฒฝ์œ 
์„ค์ • ๋‚œ์ด๋„๊ฐ„๋‹จ (API Key๋งŒ ์žˆ์œผ๋ฉด ๋จ)๋ณต์žก (IAM, VPC ๋“ฑ ์„ค์ • ํ•„์š”)
๋ฐ์ดํ„ฐ ์ฃผ๊ถŒAnthropic ์ธํ”„๋ผ์—์„œ ์ฒ˜๋ฆฌ์›ํ•˜๋Š” ๋ฆฌ์ „ ์„ ํƒ ๊ฐ€๋Šฅ
๊ธฐ์กด ๊ฒฐ์ œ ์ฒด๊ณ„๋ณ„๋„ Anthropic ๊ฒฐ์ œAWS/GCP ๊ธฐ์กด ์ฒญ๊ตฌ์„œ์— ํ†ตํ•ฉ
๋ณด์•ˆ ๊ฐ์‚ฌAnthropic ๋Œ€์‹œ๋ณด๋“œCloudTrail, Audit Logs ๋“ฑ ๊ธฐ์กด ๋ณด์•ˆ ์ฒด๊ณ„ ํ™œ์šฉ
์‚ฌ๋‚ด ์ •์ฑ…๋ณ„๋„ SaaS ์Šน์ธ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Œ์ด๋ฏธ ์Šน์ธ๋œ ํด๋ผ์šฐ๋“œ ๊ณ„์ •์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

๋งŽ์€ ๊ธฐ์—…์—์„œ โ€œ์™ธ๋ถ€ SaaS์— ์ง์ ‘ ์—ฐ๊ฒฐ ๊ธˆ์ง€, ์Šน์ธ๋œ Cloud Provider๋งŒ ์‚ฌ์šฉโ€ ์ •์ฑ…์ด ์žˆ์–ด Anthropic API ์ง์ ‘ ํ˜ธ์ถœ์ด ์ •์ฑ…์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ Cloud Provider๋ฅผ ๊ฒฝ์œ ํ•œ๋‹ค.

๊ฐœ์ธ ๊ฐœ๋ฐœ์ž:  Claude Code โ†’ Anthropic API (์ถฉ๋ถ„ํ•จ)
๊ธฐ์—… ํ™˜๊ฒฝ:    Claude Code โ†’ Cloud Provider (๋ณด์•ˆ/์ •์ฑ…/๋น„์šฉ ์š”๊ตฌ์‚ฌํ•ญ)

์กฐํ•ฉ ๊ฐ€๋Šฅํ•œ ๊ตฌ์„ฑ:

1) Anthropic ์ง์ ‘              โ† ๊ฐœ์ธ/์†Œ๊ทœ๋ชจ
2) Cloud Provider๋งŒ            โ† ๊ธฐ์—…, ํด๋ผ์šฐ๋“œ ์ •์ฑ… ์ค€์ˆ˜
3) LLM Gateway๋งŒ               โ† ๋น„์šฉ/๋กœ๊น… ๊ด€๋ฆฌ ํ•„์š”
4) LLM Gateway + Cloud Provider โ† ๋‘˜ ๋‹ค ํ•„์š”ํ•œ ๊ธฐ์—…

LLM Gateway์˜ ๋…๋ฆฝ์„ฑ: ์ž…๊ตฌ ํฌ๋งท๊ณผ ์ถœ๊ตฌ Cloud Provider

LLM Gateway๋Š” Anthropic์ด๋‚˜ ํŠน์ • Cloud Provider์™€ ๋ฌด๊ด€ํ•œ ๋…๋ฆฝ ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค. LLM Gateway ์„ค์ •์—์„œ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์€ ๋‘ ๊ฐ€์ง€:

  • ์ž…๊ตฌ: Claude Code โ†’ LLM Gateway์— ๋ณด๋‚ด๋Š” API ํฌ๋งท (ํ”„๋กœํ† ์ฝœ)####
  • ์ถœ๊ตฌ: LLM Gateway โ†’ ์‹ค์ œ ๋ชจ๋ธ์„ ํ˜ธ์ถœํ•˜๋Š” Cloud Provider (๋ชฉ์ ์ง€)

์ด ๋‘ ๊ฐ€์ง€๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ์„ค์ •ํ•œ๋‹ค. ์ž…๊ตฌ ํฌ๋งท๊ณผ ์ถœ๊ตฌ Cloud Provider๊ฐ€ ๋‹ฌ๋ผ๋„ LLM Gateway๊ฐ€ ํฌ๋งท์„ ๋ณ€ํ™˜ํ•ด์ค€๋‹ค.

์ž…๊ตฌ ํฌ๋งท๋ณ„ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •

# LLM Gateway๊ฐ€ Anthropic Messages ํฌ๋งท์œผ๋กœ ์š”์ฒญ์„ ๋ฐ›๊ฒ ๋‹ค
export ANTHROPIC_BASE_URL=https://your-gateway.com
 
# LLM Gateway๊ฐ€ Bedrock ํฌ๋งท์œผ๋กœ ์š”์ฒญ์„ ๋ฐ›๊ฒ ๋‹ค
export ANTHROPIC_BEDROCK_BASE_URL='https://your-gateway.com/bedrock'
export CLAUDE_CODE_SKIP_BEDROCK_AUTH=1
export CLAUDE_CODE_USE_BEDROCK=1
 
# LLM Gateway๊ฐ€ Vertex ํฌ๋งท์œผ๋กœ ์š”์ฒญ์„ ๋ฐ›๊ฒ ๋‹ค
export ANTHROPIC_VERTEX_BASE_URL='https://your-gateway.com/vertex'
export CLAUDE_CODE_SKIP_VERTEX_AUTH=1
export CLAUDE_CODE_USE_VERTEX=1

Q) โ€œBedrock ํฌ๋งท์œผ๋กœ ๋ฐ›์œผ๋ฉด์„œ ์‹ค์ œ๋กœ๋Š” Vertex AI Cloud Provider๋กœ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•œ๊ฐ€?โ€

๊ฐ€๋Šฅํ•˜๋‹ค. ๋‹ค์Œ ์„ค์ •์ด ์˜๋ฏธํ•˜๋Š” ๋ฐ”๋ฅผ ํ•œ ์ค„์”ฉ ํ•ด์„ํ•˜๋ฉด:

export ANTHROPIC_BEDROCK_BASE_URL='https://your-gateway.com/bedrock'
# โ†’ "๋‚ด LLM Gateway ์ฃผ์†Œ๋Š” ์ด๊ฑฐ๊ณ , Bedrock ํฌ๋งท์œผ๋กœ ์š”์ฒญ์„ ๋ณด๋‚ผ๊ฒŒ"
 
export CLAUDE_CODE_SKIP_BEDROCK_AUTH=1
# โ†’ "AWS ์ธ์ฆ์€ ๋‚ด๊ฐ€ ์•ˆ ํ• ๊ฒŒ, LLM Gateway๊ฐ€ ์•Œ์•„์„œ ํ•ด"
 
export CLAUDE_CODE_USE_BEDROCK=1
# โ†’ "Bedrock ๋ชจ๋“œ ํ™œ์„ฑํ™”"
sequenceDiagram
    autonumber
    participant CC as Claude Code
    participant GW as ๋‚ด LLM Gateway<br/>(Anthropic/AWS์™€ ๋ฌด๊ด€)
    participant VX as Vertex AI (GCP)

    CC->>GW: Bedrock ํฌ๋งท์œผ๋กœ ์š”์ฒญ<br/>POST /invoke
    Note over GW: 1. Bedrock ํฌ๋งท ํŒŒ์‹ฑ<br/>2. Vertex ํฌ๋งท์œผ๋กœ ๋ณ€ํ™˜<br/>3. GCP ์ธ์ฆ ์ฒ˜๋ฆฌ
    GW->>VX: Vertex ํฌ๋งท์œผ๋กœ ์ „๋‹ฌ<br/>POST :rawPredict
    VX-->>GW: ์‘๋‹ต
    Note over GW: Vertex โ†’ Bedrock ํฌ๋งท ๋ณ€ํ™˜
    GW-->>CC: Bedrock ํฌ๋งท์œผ๋กœ ์‘๋‹ต

    Note over CC,VX: Claude Code๋Š” Bedrock๊ณผ ํ†ต์‹ ํ•œ๋‹ค๊ณ  "๋ฏฟ์Œ"<br/>์‹ค์ œ๋กœ๋Š” Vertex AI๊ฐ€ ์ฒ˜๋ฆฌ

**์ž…๊ตฌ(ํ”„๋กœํ† ์ฝœ)**๊ณผ **์ถœ๊ตฌ(Cloud Provider)**๋Š” ์™„์ „ํžˆ ๋…๋ฆฝ์ ์ด๋‹ค:

์„ค์ •ํ•œ ๊ฒƒ์‹ค์ œ ์˜๋ฏธ
์ž…๊ตฌ ํฌ๋งทBedrock (/invoke)Claude Code๊ฐ€ LLM Gateway์— ๋ณด๋‚ด๋Š” ์š”์ฒญ ํ˜•์‹
์ถœ๊ตฌ Cloud ProviderVertex AILLM Gateway๊ฐ€ ์‹ค์ œ๋กœ ๋ชจ๋ธ์„ ํ˜ธ์ถœํ•˜๋Š” ๊ณณ
์ธ์ฆSKIP_BEDROCK_AUTH=1Claude Code๋Š” AWS ํ‚ค ๋ถˆํ•„์š”, LLM Gateway๊ฐ€ GCP ์ธ์ฆ ์ฒ˜๋ฆฌ

LLM Gateway ์š”๊ตฌ์‚ฌํ•ญ

LLM Gateway๊ฐ€ Claude Code์™€ ๋™์ž‘ํ•˜๋ ค๋ฉด ๋‹ค์Œ API ํฌ๋งท ์ค‘ ํ•˜๋‚˜๋ฅผ ์ง€์›ํ•ด์•ผ ํ•œ๋‹ค:

API ํฌ๋งทEndpointํ•„์ˆ˜ ์ „๋‹ฌ ํ•ญ๋ชฉ
Anthropic Messages/v1/messages, /v1/messages/count_tokensํ—ค๋”: anthropic-beta, anthropic-version
Bedrock InvokeModel/invoke, /invoke-with-response-streamBody: anthropic_beta, anthropic_version
Vertex rawPredict:rawPredict, :streamRawPredictํ—ค๋”: anthropic-beta, anthropic-version

Base URL๊ณผ Endpoint์˜ ์ฐจ์ด

  • Base URL = ์„œ๋น„์Šค์˜ ๋ฃจํŠธ ์ฃผ์†Œ. ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ
  • Endpoint = ์„œ๋น„์Šค๊ฐ€ ์ œ๊ณตํ•˜๋Š” ํŠน์ • ๊ฒฝ๋กœ(path). Claude Code๊ฐ€ ์ž๋™์œผ๋กœ Base URL ๋’ค์— ๋ถ™์ž„
  • Full URL = Base URL + Endpoint
Full URL = Base URL + Endpoint

์˜ˆ์‹œ:
Base URL:  https://bedrock-runtime.us-east-1.amazonaws.com
Endpoint:  /invoke
Full URL:  https://bedrock-runtime.us-east-1.amazonaws.com/invoke
Cloud ProviderBase URL (ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ์„ค์ •)Endpoint (Claude Code๊ฐ€ ์ž๋™ ํ˜ธ์ถœ)
Anthropichttps://api.anthropic.com/v1/messages
Bedrockhttps://bedrock-runtime.{region}.amazonaws.com/invoke
Vertex AIhttps://{region}-aiplatform.googleapis.com:rawPredict

Vertex AI์˜ :rawPredict ํ‘œ๊ธฐ๋ฒ•์€ Google์˜ gRPC ์Šคํƒ€์ผ๋กœ, ๋ฆฌ์†Œ์Šค ๊ฒฝ๋กœ ๋’ค์— ์ฝœ๋ก ์œผ๋กœ ๋ถ™๋Š”๋‹ค:

https://us-east5-aiplatform.googleapis.com/v1/projects/{project}/locations/{region}/publishers/anthropic/models/claude-sonnet-4-6:rawPredict

Base URL๊ณผ Endpoint์€ ๋™์ผํ•˜์ง€ ์•Š๋‹ค:

# ์ด๋ ‡๊ฒŒ ์„ค์ •ํ•˜๋ฉด:
export ANTHROPIC_BASE_URL=https://my-gateway.com
 
# Claude Code๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ์ด๋ ‡๊ฒŒ ํ˜ธ์ถœ:
# POST https://my-gateway.com/v1/messages   โ† /v1/messages๋Š” ์ž๋™ ์ถ”๊ฐ€

๊ฐœ๋ฐœ์ž ๊ด€์ ์—์„œ์˜ ์„ค์ •

LLM Gateway + Cloud Provider๊ฐ€ ๋ชจ๋‘ ์„ค์ •๋œ ํ™˜๊ฒฝ์—์„œ ๊ฐœ๋ฐœ์ž๋Š” LLM Gateway URL 1๊ฐœ๋งŒ ์•Œ๋ฉด ๋œ๋‹ค.

๊ตฌ์„ฑ ์š”์†Œ๋ˆ„๊ฐ€ ์„ค์ •๊ฐœ๋ฐœ์ž๊ฐ€ ์•Œ์•„์•ผ ํ•˜๋Š” ๊ฒƒ
Cloud Provider (Bedrock/Vertex)๊ด€๋ฆฌ์ž (Infra/DevOps)๋ชฐ๋ผ๋„ ๋จ
LLM Gateway (LiteLLM ๋“ฑ)๊ด€๋ฆฌ์ž (Infra/DevOps)LLM Gateway URL 1๊ฐœ๋งŒ
Claude Code๊ฐœ๋ฐœ์žexport ANTHROPIC_BASE_URL=https://gateway:4000

Cloud Provider ์—ฐ๊ฒฐ, ์ธ์ฆ, ๋ผ์šฐํŒ…์€ LLM Gateway๊ฐ€ ๋Œ€์‹  ์ฒ˜๋ฆฌํ•œ๋‹ค.

LiteLLM: ์˜คํ”ˆ์†Œ์Šค LLM Gateway

LiteLLM์€ 100+ LLM Cloud Provider์˜ API๋ฅผ ํ•˜๋‚˜์˜ ํ†ตํ•ฉ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ถ”์ƒํ™”ํ•˜๋Š” ์˜คํ”ˆ์†Œ์Šค LLM Gateway์ด๋‹ค. Cloud Provider๋งˆ๋‹ค API ํฌ๋งท, ์ธ์ฆ ๋ฐฉ์‹, ๋ชจ๋ธ๋ช…์ด ์ „๋ถ€ ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•œ๋‹ค.

AS-IS (LiteLLM ์—†์ด)

sequenceDiagram
    autonumber
    participant Dev1 as Developer A
    participant Dev2 as Developer B
    participant Ant as Anthropic API
    participant BR as AWS Bedrock
    participant VX as Vertex AI

    Dev1->>Ant: API Key A๋กœ ํ˜ธ์ถœ (Anthropic ํฌ๋งท)
    Dev1->>BR: AWS Credentials๋กœ ํ˜ธ์ถœ (Bedrock ํฌ๋งท)
    Dev2->>VX: GCP Credentials๋กœ ํ˜ธ์ถœ (Vertex ํฌ๋งท)
    Dev2->>Ant: API Key B๋กœ ํ˜ธ์ถœ (Anthropic ํฌ๋งท)

    Note over Dev1,VX: ๋ฌธ์ œ์ :<br/>1. ๊ฐ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ Cloud Provider ํ‚ค๋ฅผ ๊ฐœ๋ณ„ ๊ด€๋ฆฌ<br/>2. Cloud Provider๋ณ„ API ํฌ๋งท์ด ๋‹ค๋ฆ„<br/>3. ์ „์ฒด ์‚ฌ์šฉ๋Ÿ‰/๋น„์šฉ ์ถ”์  ๋ถˆ๊ฐ€<br/>4. Cloud Provider ์žฅ์•  ์‹œ ์ˆ˜๋™ ์ „ํ™˜ ํ•„์š”

TO-BE (LiteLLM ์‚ฌ์šฉ)

sequenceDiagram
    autonumber
    participant Dev1 as Developer A
    participant Dev2 as Developer B
    participant Lite as LiteLLM (LLM Gateway)
    participant Ant as Anthropic API
    participant BR as AWS Bedrock

    Dev1->>Lite: ํ†ตํ•ฉ ํฌ๋งท์œผ๋กœ ์š”์ฒญ (1๊ฐœ ํ‚ค)
    Dev2->>Lite: ํ†ตํ•ฉ ํฌ๋งท์œผ๋กœ ์š”์ฒญ (1๊ฐœ ํ‚ค)
    Lite->>Lite: ์ธ์ฆ, ๋กœ๊น…, rate limit
    Lite->>Ant: ๋ผ์šฐํŒ… (Anthropic ํฌ๋งท์œผ๋กœ ๋ณ€ํ™˜)
    Ant-->>Lite: ์‘๋‹ต

    Note over Lite,Ant: Anthropic ์žฅ์•  ๋ฐœ์ƒ!
    Lite->>BR: ์ž๋™ fallback (Bedrock ํฌ๋งท์œผ๋กœ ๋ณ€ํ™˜)
    BR-->>Lite: ์‘๋‹ต
    Lite-->>Dev1: ์‘๋‹ต (๊ฐœ๋ฐœ์ž๋Š” ์ „ํ™˜์„ ๋ชจ๋ฆ„)

    Note over Dev1,BR: ํ•ด๊ฒฐ:<br/>1. ๊ฐœ๋ฐœ์ž๋Š” 1๊ฐœ LLM Gateway ํ‚ค๋งŒ ๊ด€๋ฆฌ<br/>2. ํ†ตํ•ฉ API ํฌ๋งท<br/>3. ์ค‘์•™ ์‚ฌ์šฉ๋Ÿ‰/๋น„์šฉ ์ถ”์ <br/>4. ์ž๋™ load balancing + fallback

LiteLLM ๊ธฐ๋ณธ ์„ค์ • (ํ†ตํ•ฉ Endpoint, ๊ถŒ์žฅ)

export ANTHROPIC_BASE_URL=https://litellm-server:4000

์ธ์ฆ์€ ์ •์  API ํ‚ค ๋˜๋Š” ๋™์  ํ—ฌํผ ์Šคํฌ๋ฆฝํŠธ๋กœ ์„ค์ •:

# ์ •์  ํ‚ค
export ANTHROPIC_AUTH_TOKEN=sk-litellm-static-key
 
# ๋™์  ํ‚ค (Claude Code settings ํŒŒ์ผ)
# { "apiKeyHelper": "~/bin/get-litellm-key.sh" }

Fallback ๋น„์šฉ ๊ตฌ์กฐ

Q) โ€œFallback์„ ์œ„ํ•ด Bedrock, Anthropic ๋ชจ๋‘ ์„ค์ •ํ•˜๋ ค๋ฉด ๊ฐ๊ฐ ๋ณ„๋„ ๋น„์šฉ์ด ๋“œ๋Š” ๊ฑฐ์ง€?โ€

๋งž๋‹ค. ๊ฐ Cloud Provider/Anthropic ์—ฐ๊ฒฐ์€ ๋ณ„๋„ ๊ณ„์ • + ๋ณ„๋„ ๋น„์šฉ์ด๋‹ค. LiteLLM ์ž์ฒด๋Š” ๋ฌด๋ฃŒ ์˜คํ”ˆ์†Œ์Šค์ด์ง€๋งŒ, ์—ฐ๊ฒฐํ•˜๋Š” ๊ฐ ๋ชจ๋ธ ์ œ๊ณต์ž๋Š” ๋ชจ๋‘ ์œ ๋ฃŒ์ด๋‹ค.

ํ•ญ๋ชฉ๋น„์šฉ ๋ฐœ์ƒ ์—ฌ๋ถ€์„ค๋ช…
Anthropic API ๊ณ„์ •์‚ฌ์šฉํ•œ ๋งŒํผ ๊ณผ๊ธˆAPI Key ๋ฐœ๊ธ‰ ํ•„์š”
AWS Bedrock ๊ณ„์ •์‚ฌ์šฉํ•œ ๋งŒํผ ๊ณผ๊ธˆAWS ๊ณ„์ • + Bedrock ํ™œ์„ฑํ™” ํ•„์š”
GCP Vertex AI ๊ณ„์ •์‚ฌ์šฉํ•œ ๋งŒํผ ๊ณผ๊ธˆGCP ๊ณ„์ • + Vertex ํ™œ์„ฑํ™” ํ•„์š”
LiteLLM ์„œ๋ฒ„์„œ๋ฒ„ ์šด์˜ ๋น„์šฉ์˜คํ”ˆ์†Œ์Šค์ง€๋งŒ ์„œ๋ฒ„ ์ธํ”„๋ผ ํ•„์š”
"LiteLLM์œผ๋กœ fallback ์„ค์ •ํ•˜์ž!" ์˜ ์‹ค์ œ ์˜๋ฏธ:

  Anthropic ๊ณ„์ • ์œ ์ง€๋น„   โ† ๋ˆ
+ AWS Bedrock ๊ณ„์ • ์œ ์ง€๋น„  โ† ๋ˆ
+ LiteLLM ์„œ๋ฒ„ ์šด์˜๋น„      โ† ๋ˆ
โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
= ์•ˆ์ •์„ฑ ํ™•๋ณด              โ† ๋Œ€๊ฐ€

โ€œ์„ค์ •ํ•˜๋ฉด ์ข‹์œผ๋‹ˆ ํ•˜์žโ€๊ฐ€ ์•„๋‹ˆ๋ผ **โ€œN๊ฐœ Cloud Provider ๋น„์šฉ์„ ์ง€๋ถˆํ•˜๊ณ  ์•ˆ์ •์„ฑ์„ ์‚ฌ๋Š” ๊ฒƒโ€**์ด๋‹ค. ์‹ค์ œ ๊ณผ๊ธˆ์€ ์‚ฌ์šฉํ•œ ์ชฝ์—๋งŒ ๋ฐœ์ƒํ•˜์ง€๋งŒ, ๊ณ„์ •์€ ๋ชจ๋‘ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค.

Fallback ์„ค์ •์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹Œ LiteLLM ์„œ๋ฒ„ ๊ด€๋ฆฌ์ž๊ฐ€ ๋‹ด๋‹นํ•œ๋‹ค:

# LiteLLM ์„œ๋ฒ„ config (๊ด€๋ฆฌ์ž๊ฐ€ ์„ค์ •)
model_list:
  - model_name: claude-sonnet
    litellm_params:
      model: anthropic/claude-sonnet-4-6
      api_key: sk-ant-xxx              # โ† Anthropic ๊ณ„์ • ํ•„์š” (๋ˆ)
  - model_name: claude-sonnet
    litellm_params:
      model: bedrock/claude-sonnet-4-6  # โ† AWS ๊ณ„์ • ํ•„์š” (๋ˆ)
      aws_access_key_id: xxx
      aws_secret_access_key: xxx

์ฐธ๊ณ  ๋ฌธ์„œ