
AWS Bedrock에서 모델을 claude-sonnet-3.5에서 claude-sonnet-4.6으로 업그레이드한 이야기
요약
AWS Bedrock에서 Claude Sonnet 3.5를 4.6으로 업그레이드하며 겪은 프롬프트 캐싱 도입 과정과 기술적 장애물을 다룹니다. SCP 설정 변경과 크로스 리전 추론 프로파일 적용 등 인프라 설정의 중요성을 강조합니다.
핵심 포인트
- 프롬프트 캐싱을 위해 Sonnet 4.6 업그레이드 필요
- SCP(Service Control Policy)를 통한 모델 사용 권한 확인 필수
- 4.6 버전은 크로스 리전 추론 프로파일(jp. 접두사) 사용 권장
- 캐시 포인트는 최대 4개, 1,024 토큰 이후부터 설정 가능
프로젝트에서 일정량의 시스템 프롬프트(System Prompt)를 읽어들이는 AI 채팅봇 기능을 만들게 되었다.
시스템 프롬프트의 양을 고려했을 때 프롬프트 캐싱(Prompt Caching)이 필요할 것 같아 도입하기로 했다. 프롬프트 캐시는 sonnet 4 이상에서만 지원된다고 하여, 기존에 sonnet 3.5만 사용하던 환경에서 업그레이드를 시도했으나 상당히 고전했던 이야기다.
SCP(Service Control Policy)에 제한이 없는지 확인하고, IAM 역할(Role)과 모델 ID를 지정한다.
우선, 모델을 업그레이드하기 위해서는 SCP(Service Control Policy)를 업그레이드해야 하며, 이 부분이 가장 고전했던 지점이다.
SCP란 간단히 말해 "이 계정(또는 OU)에서 무엇을 허용할 것인가"를 지정하는 것으로, 여기에 Bedrock에서 사용할 수 있는 모델을 제한하는 설정이 있었다.
하지만 나의 경우, 기존 AWS 조직이 PMA 조직(Program Management Account / 파트너 관리 계정)이었고, SPP(Solution Provider Program / 재판매 프로그램) 산하에 있었기 때문에 SCP 변경을 AWS 파트너(Reseller)를 통해 요청해야 했다.
"솔직히 파트너에게 요청하는 건 번거로운데..."라고 생각했지만, 다행히 기존에 자사 조직이 존재하고 있어 그쪽으로 이전함으로써 자유롭게 모델을 지정할 수 있게 되었다.
따라서 모델 ID를 단순히 지정하는 것뿐만 아니라, 이와 같은 계정, OU 레벨의 함정이 있다는 점을 전달하고 싶다.
이는 claude-sonnet-3.5에서 claude-sonnet-4.6으로 업그레이드할 때만 깨달은 주의사항이다.
3.5 버전 당시에는 도쿄 리전의 모델을 직접 호출했기 때문에, IAM 역할에는 도쿄 리전의 모델 ARN(Amazon Resource Name: AWS 리소스를 고유하게 식별하는 식별자)만 지정되어 있어도 동작했다.
하지만 4.6 버전에서는 크로스 리전 추론 프로파일(Cross-region Inference Profile, jp. 접두사)을 통해서만 호출할 수 있으며, 도쿄와 오사카 리전을 가로질러 라우팅된다. 따라서 두 리전의 모델 ARN과 추론 프로파일의 ARN을 모두 허용해야 한다.
"Resource": [
"arn:aws:bedrock:ap-northeast-1::foundation-model/anthropic.claude*",
+ "arn:aws:bedrock:ap-northeast-3::foundation-model/anthropic.claude*",
...
SCP에 문제가 없음을 확인(나의 경우는 AWS 조직 이전)했다면, 실제로 요청할 프롬프트를 변경한다.
다음과 같이 지정한다.
jp.anthropic.claude-sonnet-4-6
※ 이하는 AI가 출력한 사용법에 관한 내용입니다.
※ 이번에 나는 Converse API를 사용했습니다.
시스템 프롬프트의 "매번 동일한 부분"을 캐싱하여, 입력 토큰(Input Token) 비용과 레이턴시(Latency)를 줄이는 메커니즘.
시스템 프롬프트를 변화 빈도가 낮은 순서로 나열하고, 경계에 cachePoint를 둔다.
[불변의 규칙] → cachePoint → [설정값] → cachePoint → [매번 바뀌는 입력]
import type { SystemContentBlock } from "@aws-sdk/client-bedrock-runtime";
const system: SystemContentBlock[] = [
// 모든 요청 공통 (불변)
...
cachePoint는 최대 4개까지 가능 - 캐시 포인트는 1,024 토큰 이후부터 설정 가능 (Sonnet 4.6의 경우). 두 번째 포인트부터는 누적 2,048, 3,072...와 같이 1,024 토큰 단위로 배치할 수 있다.
- 캐시 히트(Cache Hit) 시: 입력 토큰 단가가 약 90% 할인 - 캐시 쓰기(Cache Write) 시: 평소보다 약간 높음 (최초 1회)
→ 동일한 프롬프트가 반복해서 사용되는 채팅이나 멀티 테넌트(Multi-tenant) SaaS에서 효과가 크다.
한 번도 실행된 적 없는 모델은 실행되기까지 수십 분에서 수 시간이 걸릴 수 있으므로 바로 사용할 수는 없다. (https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html)
이로 인해 처음 수십 분 동안 사용할 수 없어 상당히 초조했지만, 시간이 지나자 해결되었다.
따라서 사전에 AWS 콘솔에서 새로운 모델을 호출해 두거나, 자동 구독 (Automatic Subscription) 처리를 영구적으로 설정해 두는 대응책이 유효하다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기