프롬프트 캐싱 5곳, 캐시를 만들면 더 비싸지는 곳이 있습니다
글쓴이김성진발행일

긴 시스템 프롬프트를 매 요청마다 다시 보내고 있다면, 캐시를 켜는 순간 청구서가 달라집니다.
그런데 방향이 항상 좋은 쪽은 아닙니다. 오픈AI와 앤트로픽은 캐시를 “처음 만드는” 순간, 그 토큰에 표준 입력가의 1.25배를 매깁니다. 반면 구글은 캐시를 만드는 순간에도 정가만 받습니다 — 대신 다른 데서 값을 받습니다.
이 글은 이런 분을 위해 썼습니다.
시스템 프롬프트·도구 정의·참고 문서처럼 매번 똑같은 내용을 반복해서 보내는 API 호출이 있는 분, 그리고 “캐싱 켜면 무조건 싸진다”고 알고 있다가 실제 청구서를 보고 놀란 분입니다.
이 글에서 다루는 다섯 곳은 이렇습니다.
- OpenAI API — GPT-5.6 계열부터 캐시 쓰기에 요금을 매기기 시작했습니다.
- Anthropic Claude API — 5분·1시간, 두 가지 캐시 유지 시간을 고를 수 있습니다.
- Google Gemini API — 암시적(자동) 캐싱은 기본으로 켜져 있고 무료입니다.
- AWS Bedrock — 클로드·GPT-5.6·노바를 하나의 API로 캐싱합니다.
- Azure OpenAI (Microsoft Foundry) — 정액제(PTU) 배포에서는 캐시 읽기가 사실상 공짜입니다.
숫자는 전부 2026년 9월 17일 기준으로 각 사의 공식 요금·기술 문서를 직접 읽어 옮겼습니다. 확인하지 못한 값은 맨 아래 따로 모아 두었습니다.
캐시를 만드는 순간 — 웃돈을 받는 곳과 안 받는 곳
프롬프트 캐싱은 두 단계로 나뉩니다. 처음 보낸 긴 프롬프트를 캐시에 쓰는(write) 단계, 그리고 같은 프롬프트가 다시 왔을 때 캐시에서 읽는(read) 단계입니다. 대부분 서비스는 읽기만 할인해 주고, 쓰기는 오히려 더 받습니다.
| 서비스 | 캐시 쓰기 요금 | 비고 |
|---|---|---|
| OpenAI (GPT-5.6 계열) | 표준 입력가의 1.25배 | GPT-5.5 이하는 쓰기 무료 |
| Anthropic Claude | 5분 캐시 1.25배 / 1시간 캐시 2배 | 전 모델 공통 |
| Google Gemini | 표준 입력가 그대로 (웃돈 없음) | 암시적·명시적 모두 동일 |
| AWS Bedrock (Claude) | 5분 1.25배 / 1시간 2배 | 앤트로픽 직접 API와 동일 |
| AWS Bedrock (GPT-5.6) | 1.25배 | 오픈AI 직접 API와 동일 |
| Azure OpenAI (GPT-5.6, Standard) | 1.25배 | GPT-5.5 이하는 쓰기 무료 |
정리하면 다섯 곳 중 구글만 캐시를 만드는 데 웃돈이 없습니다. 나머지 넷은 “처음 한 번은 비싸게, 그다음부터 싸게”라는 같은 공식을 씁니다 — 오픈AI 계열(오픈AI 직접·Bedrock·Azure)과 앤트로픽 계열(직접·Bedrock)이 서로 다른 배율을 쓸 뿐입니다.
예전에 쓰던 모델은 캐시 쓰기가 무료였습니다
“캐시 켜면 무조건 이득”이라는 인식이 왜 퍼져 있었는지도 짚을 필요가 있습니다. 오픈AI의 GPT-5.5 이전 모델들은 캐시 쓰기에 요금을 매기지 않았습니다. 애저 공식 문서도 “GPT-5.6 이전 모델은 캐시 쓰기에 추가 요금이 없다”고 못 박고 있습니다. 즉 예전 모델 기준으로는 캐싱이 순수하게 공짜 할인이었고, 손해 볼 방법 자체가 없었습니다.
GPT-5.6부터 이 공식이 깨졌습니다. 캐시 쓰기에 1.25배 요금이 새로 붙으면서, 캐싱을 켜는 쪽이 오히려 비싸지는 경우가 처음 생겼습니다. 딱 한 번 쓰고 다시는 안 부르는 프롬프트라면, 캐시 쓰기 요금(정가의 1.25배)만 내고 할인은 한 번도 못 받은 채 끝납니다 — 정가로 한 번 낼 때보다 25% 더 비싼 셈입니다. 직접 계산해 보면 딱 한 번이라도 재사용하는 순간(=같은 프롬프트를 총 두 번 부르는 순간) 캐싱 쪽 총액이 정가보다 낮아집니다.
앤트로픽 클로드는 처음부터 캐시 쓰기 요금이 있었던 쪽이라 이번에 새로 바뀐 게 없습니다. 반대로 구글은 지금도 쓰기 요금이 없는 쪽을 유지하고 있습니다. 오픈AI가 유일하게 “무료였다가 유료로 바뀐” 진영입니다.
모델별 정가표 — 오픈AI 4종 · 클로드 4종
배율만 보면 감이 안 잡히니, 실제 리스트 가격(100만 토큰당·달러)을 나란히 놓습니다.
오픈AI 직접 API (Standard)
| 모델 | 입력 | 캐시된 입력 | 출력 |
|---|---|---|---|
| gpt-6-astra | $10.00 | $1.00 | $50.00 |
| gpt-5.6-sol | $4.00 | $0.40 | $20.00 |
| gpt-5.6-terra | $2.00 | $0.20 | $12.00 |
| gpt-5.6-luna | $0.20 | $0.02 | $1.20 |
앤트로픽 Claude API
| 모델 | 입력 | 5분 캐시 쓰기 | 캐시 읽기 | 출력 |
|---|---|---|---|---|
| Claude Fable 5.1 | $10.00 | $12.50 | $0.25 (97.5%↓) | $50.00 |
| Claude Opus 5 | $5.00 | $6.25 | $0.50 | $25.00 |
| Claude Sonnet 5 | $2.00 | $2.50 | $0.20 | $10.00 |
| Claude Haiku 4.5 | $1.00 | $1.25 | $0.10 | $5.00 |
두 표를 겹쳐 보면 재미있는 지점이 하나 나옵니다. 오픈AI의 중간급 모델(gpt-5.6-terra, 입력 $2.00)과 앤트로픽의 중간급 모델(Claude Sonnet 5, 입력 $2.00)이 기준 단가부터 정확히 같습니다. 그런데 캐시 읽기 값은 둘 다 $0.20로 같지만, 캐시를 만드는 값(쓰기)은 오픈AI가 $2.50, 앤트로픽 5분 캐시도 $2.50으로 역시 같습니다 — 다만 앤트로픽은 여기서 1시간 캐시(2배, $4.00)라는 선택지가 하나 더 있다는 차이입니다.
가장 비싼 모델 두 개(gpt-6-astra, Claude Fable 5.1)는 입력가가 나란히 $10.00으로 같은데, 캐시 읽기 할인은 오픈AI가 90%($1.00), 앤트로픽이 97.5%($0.25)로 갈립니다. 최상위 모델을 캐싱으로 많이 돌린다면 캐시 읽기 단가가 4배($1.00 대 $0.25) 벌어진 채로 누적됩니다.
읽기 할인은 거의 다 90%인데, 딱 한 모델만 다릅니다
캐시를 다시 읽을 때 할인율은 신기할 정도로 다섯 곳이 비슷합니다.
| 서비스 | 캐시 읽기 할인 |
|---|---|
| OpenAI (GPT-5.6) | 90% (정가의 0.1배) |
| Anthropic Claude (대부분 모델) | 90% (정가의 0.1배) |
| Anthropic Claude Fable 5.1 · Mythos 5.1 | 97.5% (정가의 0.025배) |
| Google Gemini | 90% (정가의 0.1배) |
| AWS Bedrock | 90% (정가의 0.1배, 모델 공통) |
| Azure OpenAI (Standard) | 약 90% |
| Azure OpenAI (PTU, 정액제) | 최대 100% |
앤트로픽의 최상위 모델 두 개(Fable 5.1·Mythos 5.1)만 캐시 읽기 할인이 97.5%로, 다른 모델의 90%보다 더 깊습니다. 그리고 애저의 PTU(정액 처리량 구매) 배포는 캐시 읽기가 최대 100% 할인 — 사실상 공짜라고 공식 문서에 적혀 있습니다. 이 부분은 아래에서 따로 다룹니다.
최소 토큰 수 — 512부터 4,096까지, 8배 차이
프롬프트가 일정 길이를 넘어야 캐시가 걸립니다. 이 최소치가 모델마다 다릅니다.
| 모델 | 최소 토큰 |
|---|---|
| Claude Opus 5 · Claude Sonnet 5 (신형) | 512 ~ 1,024 |
| Claude Opus 4.8 · Sonnet 4.6 | 1,024 |
| Claude Opus 4.6 · Haiku 4.5 | 4,096 |
| GPT-5.6 계열(오픈AI·Bedrock·Azure 공통) | 1,024 |
| Gemini 2.5/3.x 계열 | 2,048 ~ 4,096 |
가장 눈에 띄는 건 클로드 하이쿠 4.5입니다. 가장 저렴하고 가벼운 모델인데 최소 토큰은 오히려 4,096으로, 오퍼스 5(512)의 8배입니다. 짧은 시스템 프롬프트로 하이쿠를 쓰고 있다면 캐시가 아예 안 걸리고 있을 가능성이 있습니다 — 응답의 cache_read_input_tokens가 계속 0이라면 이게 원인입니다.
TTL — 고정된 곳과 고를 수 있는 곳
캐시가 얼마나 오래 사는지(TTL, Time To Live)도 다섯 곳이 다 다릅니다.
| 서비스 | TTL |
|---|---|
| OpenAI (GPT-5.6) | 30분 고정 (선택 불가) |
| OpenAI (GPT-5.5 이하) | 24시간 또는 in-memory |
| Anthropic Claude | 5분 또는 1시간, 선택 가능 |
| Google Gemini (암시적) | 명시 안 됨 — “best effort” |
| AWS Bedrock (Claude) | 5분 또는 1시간 |
| AWS Bedrock (GPT-5.6) | 30분 고정 |
| Azure OpenAI (GPT-5.6) | 30분 고정 |
| Azure OpenAI (GPT-5.5 이하, 확장 보존) | 최대 24시간 |
앤트로픽만 유일하게 요청 단위로 5분/1시간을 직접 고를 수 있습니다. 1시간 캐시는 쓰기 비용이 2배로 더 비싸지만, 공식 문서는 “5분보다 뜸하게, 1시간보다는 자주 부르는 워크로드”에 권장한다고 밝히고 있습니다 — 예를 들어 에이전트 하위 작업이 5분 넘게 걸리거나, 사용자가 대화 중간에 5분 이상 침묵할 때입니다.
구글만 따로 받는 요금 — 캐시 보관료
구글은 캐시 쓰기에 웃돈이 없는 대신, 암시적 캐싱이 아닌 명시적(explicit) 캐싱을 쓰면 별도의 보관료(storage)가 시간당 붙습니다.
| 모델 | 캐시 보관료 (100만 토큰당·시간당) |
|---|---|
| Gemini 3.8 Flash | $0.50 (2026년 말까지) → $1.00 |
| Gemini 3.5 Flash | $1.00 |
| Gemini 2.5 Flash | $1.00 |
| Gemini 3.1 Pro Preview | $4.50 |
제미나이 3.1 프로의 보관료(시간당 $4.50)는 플래시 모델(시간당 $0.501.00)의 4.59배입니다. 큰 모델일수록 캐시를 오래 들고 있는 값이 훨씬 비싸진다는 뜻입니다.
단, 이 보관료는 명시적 캐싱에만 붙습니다. 구글은 2.5 이상 전 모델에서 암시적 캐싱을 기본으로 켜 두는데, 이쪽은 보관료가 없고 그냥 캐시가 맞으면 할인된 값으로, 안 맞으면 정가로 청구될 뿐입니다. 대신 암시적 캐싱은 “반드시 걸린다”는 보장이 없는 best-effort 방식입니다.
자동으로 켜지는 곳과 직접 표시해야 하는 곳
캐시를 코드로 직접 지정해야 하는지(명시적), 아니면 알아서 되는지(암시적)도 다릅니다.
- 암시적만 지원: GPT-5.5 이하, Gemini(2.5 이상 전 모델 기본값)
- 암시적 + 명시적 둘 다 지원: GPT-5.6 계열, Anthropic Claude 전 모델, Bedrock의 Claude·GPT-5.6
- 명시적을 쓰려면 직접 표시: Anthropic은
cache_control블록, GPT-5.6은prompt_cache_breakpoint, Bedrock은cachePoint필드를 프롬프트 구조에 넣어야 합니다.
실무적으로는 GPT-5.6·클로드 쪽이 더 손이 갑니다 — 정적인 내용(시스템 프롬프트·도구 정의)을 앞에, 매번 바뀌는 내용을 뒤에 두고 그 경계에 체크포인트를 찍어야 캐시가 확실하게 걸립니다. 반면 구글의 암시적 캐싱은 코드를 안 건드려도 저절로 동작합니다.
10만 토큰 시스템 프롬프트, 하루 100번 불러봤습니다
말로는 감이 안 잡히니 실제로 계산해 봤습니다. 조건: 시스템 프롬프트(도구 정의 포함) 10만 토큰짜리를 캐시 TTL 안에서 하루 100번 재사용한다고 가정합니다 — 처음 1번은 캐시 쓰기, 나머지 99번은 캐시 읽기입니다.
오픈AI GPT-5.6 Terra (입력 $2.00 / 캐시 $0.20 / 쓰기 $2.50, 100만 토큰당)
- 캐싱 없이: 100회 × 10만 토큰 × $2.00 = $20.00
- 캐싱 사용: 쓰기 10만 토큰 × $2.50 + 읽기 990만 토큰 × $0.20 = $0.25 + $1.98 = $2.23
- 89% 절감
앤트로픽 Claude Opus 5 (입력 $5.00 / 캐시 읽기 $0.50 / 5분 쓰기 $6.25, 100만 토큰당)
- 캐싱 없이: 100회 × 10만 토큰 × $5.00 = $50.00
- 캐싱 사용: 쓰기 $0.625 + 읽기 990만 토큰 × $0.50 = $0.625 + $4.95 = $5.575
- 89% 절감
두 곳 다 캐시 쓰기 웃돈을 감안해도 90%에 가까운 절감이 납니다. 재사용 횟수가 100번이 아니라 훨씬 적어도 이득인지가 갈리는 지점인데, 배율(쓰기 1.25배·읽기 0.1배)로 직접 계산해 보면 같은 프롬프트를 딱 한 번이라도 다시 부르면(총 두 번째 호출부터) 이미 정가보다 저렴합니다(쓰기 1.25배 + 읽기 0.1배 = 1.35배 < 정가로 두 번 낸 값 2.00배).
구글은 이 계산이 다릅니다. 암시적 캐싱을 쓰면 위 오픈AI·앤트로픽과 비슷한 절감이 나지만 보장이 없고, 명시적 캐싱을 쓰면 계산이 하나 더 필요합니다 — 캐시를 몇 시간이나 살려 둘 것인가에 따라 시간당 보관료가 계속 쌓이기 때문입니다. 짧게 쓰고 버리면 저렴하고, 하루 종일 켜 두면 모델에 따라(특히 3.1 프로는 시간당 $4.50) 보관료가 절감분을 갉아먹을 수 있습니다.
실제로 절감이 나고 있는지는 감이 아니라 응답 필드로 확인하는 게 맞습니다. 오픈AI·애저는 cached_tokens와 cache_write_tokens를, 앤트로픽은 cache_creation_input_tokens와 cache_read_input_tokens를, Bedrock은 cacheReadInputTokens·cacheWriteInputTokens를 응답에 실어 줍니다. 이 값을 매 요청마다 로그로 쌓아 두면, 캐시 적중률이 떨어지는 순간(프롬프트 앞부분이 바뀌었거나 TTL을 넘겼거나)을 요금 청구서보다 먼저 알아챌 수 있습니다.
Bedrock에 얹으면 뭐가 같고 뭐가 다른가
AWS Bedrock은 클로드·GPT-5.6·아마존 노바를 하나의 API(Converse/InvokeModel)로 캐싱합니다. 핵심은 밑에 깔린 모델의 배율을 그대로 물려받는다는 점입니다 — 클로드를 올리면 앤트로픽의 1.25배/2배 규칙을, GPT-5.6을 올리면 오픈AI의 1.25배 규칙을 그대로 씁니다.
Bedrock만의 차이는 두 가지입니다.
- 체크포인트 개수 상한이 통일돼 있습니다 — 모델과 무관하게 요청당 최대 4개까지 캐시 체크포인트를 찍을 수 있습니다(
tools→system→messages순서로 처리). - 앤트로픽 모델에는 “단순화된 캐시 관리”가 있습니다 — 체크포인트 위치를 정확히 계산하지 않아도, 정적 콘텐츠 끝에 체크포인트 하나만 찍으면 시스템이 앞쪽 최대 20개 콘텐츠 블록까지 훑어서 가장 긴 일치 구간을 알아서 찾아 줍니다.
노바(Nova) 모델도 암시적 캐싱을 지원하지만, 이번 확인에서는 클로드·GPT-5.6처럼 정확한 쓰기·읽기 배율을 공식 문서에서 찾지 못했습니다 — 아래 “확인 못한 것”에 남겨둡니다.
Azure의 PTU만 가진 무기 — 캐시 읽기가 공짜
애저 오픈AI의 배포 방식은 두 가지입니다. 종량제인 Standard와, 처리량을 미리 사서 고정 요금을 내는 **PTU(Provisioned Throughput Unit)**입니다.
Standard 배포는 위에서 본 오픈AI 직접 API와 사실상 같은 규칙(90% 할인, GPT-5.6부터 1.25배 쓰기)을 씁니다. 하지만 PTU 배포는 캐시 읽기에 최대 100% 할인이 붙는다고 마이크로소프트 공식 문서가 명시합니다 — PTU 자체가 “미리 산 처리량”이라 토큰당 과금 구조가 아니기 때문입니다. 이미 PTU를 쓰고 있다면 캐시를 켜는 것만으로 같은 처리량 예산 안에서 더 많은 요청을 처리할 수 있다는 뜻입니다.
다만 PTU 배포는 명시적 캐시 체크포인트를 지원하지 않습니다(prompt_cache_breakpoint 사용 불가) — 암시적 캐싱만 자동으로 적용됩니다. 정밀한 제어와 공짜 읽기를 동시에 가질 수는 없는 구조입니다.
애저는 구형 모델(GPT-4.1~5.4 계열)에 한해 확장 보존(extended retention) 도 지원합니다. 메모리가 가득 차면 GPU 로컬 스토리지로 캐시를 옮겨 최대 24시간까지 유지하는 방식으로, 다섯 곳 중 가장 긴 TTL입니다. 단 GPT-5.6부터는 이 기능이 폐기되고 30분 고정으로 통일됩니다.
문서에 없어서 못 적은 숫자
비교 글에서 제일 위험한 건 없는 숫자를 채워 넣는 일입니다. 이번에 확인하지 못한 항목을 그대로 적어 둡니다.
- Amazon Nova의 캐시 쓰기·읽기 정확한 배율: 공식 문서는 노바가 암시적 캐싱을 지원한다고만 밝히고, 클로드·GPT-5.6처럼 숫자로 명시된 배율(1.25배 등)은 이번 확인 범위에서 찾지 못했습니다.
- Azure OpenAI의 정확한 리스트 가격($/100만 토큰): 캐시 할인 “배율”은 마이크로소프트 공식 문서로 확인했지만, 모델별 기준 단가 자체는 이번에 애저 가격 페이지에서 숫자로 직접 확인하지 못했습니다. 메커니즘은 오픈AI 직접 API와 동일하다고 문서가 밝히고 있습니다.
- Google Gemini 암시적 캐싱의 정확한 TTL: “best effort”라고만 적혀 있고, 구체적인 분·시간 단위 기본값은 공개 문서에서 찾지 못했습니다.
- Bedrock에 올라간 모델의 기준 단가가 각 사 직접 API와 완전히 같은지: 배율 규칙은 동일하다고 확인했지만, 100만 토큰당 정확한 리스트 가격이 리전별로 달라질 가능성은 개별 확인이 필요합니다.
이 항목들은 각 사 콘솔에서 계정을 만들어 직접 확인해야 합니다.
캐시가 갑자기 안 걸리는 흔한 이유 세 가지
요금표를 다 외워도 실제로는 캐시가 안 걸려서 손해 보는 경우가 더 많습니다. 다섯 곳 문서에 공통으로 나오는 실수 세 가지입니다.
1. 앞부분 글자 하나만 달라도 통째로 미스입니다. 오픈AI·애저 문서 모두 “첫 1,024토큰 안에서 글자 하나라도 다르면 캐시 미스”라고 명시합니다. 타임스탬프나 요청 ID를 시스템 프롬프트 맨 앞에 넣는 습관이 있다면, 그 프롬프트는 절대 캐시되지 않습니다. 정적인 내용(지침·도구 정의)은 앞에, 매번 바뀌는 내용(사용자 질문·현재 시각)은 반드시 뒤에 둬야 합니다.
2. 도구(tools) 정의를 하나라도 바꾸면 뒤에 있는 캐시까지 같이 깨집니다. Bedrock 문서가 이 순서를 명확히 밝히고 있습니다 — 체크포인트는 tools → system → messages 순서로 처리되고, 앞 구간이 바뀌면 뒤 구간 캐시까지 연쇄적으로 무효화됩니다. 실험 삼아 도구 설명 문구 하나를 고쳤는데 캐시 적중률이 갑자기 0으로 떨어졌다면 바로 이 이유입니다.
3. 최소 토큰 수 미만이면 에러 없이 그냥 조용히 안 걸립니다. 앤트로픽 공식 문서가 특히 이 점을 강조합니다 — 최소치 미만 프롬프트를 보내도 요청은 정상적으로 처리되고 에러도 안 뜹니다. 응답의 cache_creation_input_tokens와 cache_read_input_tokens가 계속 0인지 직접 확인해야만 알 수 있습니다. “캐싱 켜놨는데 왜 청구서가 그대로지”라는 의문의 8할이 여기서 시작됩니다.
고르는 순서
다섯 곳을 한 번에 비교하려 하면 답이 안 나옵니다. 아래 순서로 걸러 내는 편이 빠릅니다.
1. 이미 애저 PTU를 쓰고 있습니까? 그러면 고민할 것도 없이 캐시부터 켜십시오. 읽기가 최대 100% 할인이라 같은 처리량 예산으로 더 많은 요청을 처리합니다.
2. 캐시 재사용 횟수가 하루 2~3번뿐입니까? 오픈AI나 앤트로픽도 여전히 이득입니다. 쓰기 웃돈(1.25배)을 감안해도 딱 2번 재사용하면 본전을 넘깁니다.
3. 언제 다시 호출될지 예측이 안 됩니까? 구글의 암시적 캐싱이 유리합니다. 코드를 안 건드려도 맞으면 할인, 안 맞아도 정가일 뿐이라 손해 볼 일이 없습니다. 대신 “반드시 걸린다”는 보장은 포기해야 합니다.
4. 시스템 프롬프트가 30분보다 뜸하게, 1시간보다는 자주 불립니까? 앤트로픽의 1시간 캐시가 정확히 이 틈을 겨냥한 옵션입니다. 다른 넷은 TTL을 고를 수 없습니다.
5. 클로드 하이쿠 4.5처럼 최소 토큰이 높은 모델을 짧은 프롬프트에 쓰고 있습니까?
캐시가 애초에 안 걸리고 있을 가능성부터 확인하십시오. cache_read_input_tokens가 계속 0이라면 프롬프트를 4,096 토큰 이상으로 늘리거나 모델을 바꿔야 합니다.
마지막으로 하나만 덧붙이면, 이 다섯 곳 중 어디를 고르든 “캐시를 켜면 무조건 싸진다”는 가정부터 버리는 게 맞습니다. 오픈AI·앤트로픽은 쓰기 웃돈이 있고, 구글은 명시적 캐싱에 보관료가 따로 붙습니다. 절감액은 재사용 횟수에 달려 있지, 캐싱 스위치 자체에 달려 있지 않습니다.
API를 어디에 물릴지 아직 못 정했다면 AI API 5곳의 데이터 정책을 비교한 글을 같이 보시고, 캐싱 이후에도 요청이 어디서 새는지 들여다보고 싶다면 LLM 관측 도구를 비교한 글을 참고하시면 그림이 맞춰집니다.