AWS Bedrock

AWS Bedrock

엔터프라이즈급 보안과 컴플라이언스로 AWS 인프라를 통해 Claude, Nova, Llama 등을 사용해요.

출처: 문서

본문

사전 요구 사항 (Prerequisites)

  • 리전에서 Bedrock이 활성화된 AWS 계정
  • Bedrock Console에서 모델 접근이 부여됨 (일부 모델은 승인 필요)
  • AWS 자격 증명 구성 (아래 인증 참고)

구성 (Configuration)

models:
  bedrock-claude:
    provider: amazon-bedrock
    model: global.anthropic.claude-sonnet-4-5-20250929-v1:0
    max_tokens: 64000
    provider_opts:
      region: us-east-1

인증 (Authentication)

옵션 1: Bedrock API 키 (가장 간단) — Option 1: Bedrock API Key (Simplest)

export AWS_BEARER_TOKEN_BEDROCK="your-key"
models:
  bedrock:
    provider: amazon-bedrock
    model: global.anthropic.claude-sonnet-4-5-20250929-v1:0
    token_key: AWS_BEARER_TOKEN_BEDROCK # env var name
    provider_opts:
      region: us-east-1

옵션 2: AWS 자격 증명 (기본) — Option 2: AWS Credentials (Default)

표준 AWS SDK 자격 증명 체인을 사용해요: env vars → shared credentials → config → IAM roles.

models:
  bedrock:
    provider: amazon-bedrock
    model: global.anthropic.claude-sonnet-4-5-20250929-v1:0
    provider_opts:
      profile: my-aws-profile
      region: us-east-1

IAM 역할 위임 포함 (With IAM Role Assumption)

models:
  bedrock:
    provider: amazon-bedrock
    model: global.anthropic.claude-sonnet-4-5-20250929-v1:0
    provider_opts:
      role_arn: "arn:aws:iam::123456789012:role/BedrockAccessRole"
      external_id: "my-external-id"

제공자 옵션 (Provider Options)

Option Type Default Description
region string us-east-1 AWS 리전
profile string — AWS 프로필 이름
role_arn string — assume role용 IAM 역할 ARN
role_session_name string docker-agent-bedrock-session 위임된 역할용 세션 이름
external_id string — 역할 위임용 External ID
endpoint_url string — 커스텀 엔드포인트 (VPC/테스트)
interleaved_thinking bool auto 도구 호출 사이 추론 허용 (Claude); Claude 모델에 thinking 버짓이 설정되면 자동 활성화; 필수 beta 헤더 자동 추가
disable_prompt_caching bool false 자동 프롬프트 캐싱 비활성화

추론 프로필 (Inference Profiles)

최적 라우팅을 위해 추론 프로필 접두사를 사용해요:

Prefix Routes To
global. 모든 상용 AWS 리전 (권장)
us. US 리전만
eu. EU 리전만 (GDPR 컴플라이언스)
apac. 아시아 태평양 리전만

Tip 추론 프로필 (Inference profiles) 자동 교차 리전 라우팅에는 모델 ID에 global. 접두사를 사용하세요. GDPR 컴플라이언스에는 eu. 접두사를 사용하세요.

생각 버짓 (Claude on Bedrock) — Thinking Budget

Bedrock Claude 모델은 extended thinking — 모델이 응답을 만들기 전의 내부 추론 단계 — 을 지원해요. thinking_budget 을 토큰 수(1024–32768) 또는 자동 매핑되는 effort 레벨 문자열로 설정해요:

Effort level Token budget
minimal 1,024
low 2,048
medium 8,192
high 16,384
xhigh / max 32,768
models:
  bedrock-claude-thinking:
    provider: amazon-bedrock
    model: global.anthropic.claude-sonnet-4-5-20250929-v1:0
    thinking_budget: 8192 # tokens, or use an effort string like "medium"
    max_tokens: 16384 # must be > thinking_budget
    provider_opts:
      region: us-east-1

thinking_budget 은 1024 이상이고 max_tokens 보다 작아야 해요. 이 범위 밖의 값은 경고로 로그되고 무시돼요.

적응형 thinking (Opus 4.6+) — Adaptive thinking

더 새로운 Claude Opus 모델(4.6, 4.7, 4.8)은 토큰 기반 thinking을 거부해요 — Bedrock이 thinking.type=adaptive 을 요구하는 ValidationException 을 반환해요. 이 모델들에는 adaptive thinking을 사용해요:

models:
  bedrock-opus-adaptive:
    provider: amazon-bedrock
    model: global.anthropic.claude-opus-4-8
    thinking_budget: adaptive/high # adaptive | adaptive/low | adaptive/medium | adaptive/high | adaptive/xhigh | adaptive/max
    provider_opts:
      region: us-east-1

Docker Agent는 이 모델들(Bedrock 스타일 ID 포함)을 인식하고 구성된 토큰 버짓이나 effort 레벨을 투명하게 adaptive thinking으로 강제 변환하며 경고를 로그해요 — 그래서 Opus 4.8에서 thinking_budget: 32768 은 실패하지 않지만, adaptive 또는 adaptive/<effort> 가 권장 구성이에요. 여전히 토큰 기반 thinking을 쓰는 이전 모델(예: Sonnet 4.5)에서는 adaptive 가 그대로 전달되어 Bedrock이 거부해요 — 거기서는 토큰 수나 effort 레벨을 대신 사용하세요.

Note Temperature와 top_p Bedrock Claude는 extended thinking이 활성화된 동안 temperature와 top_p를 억제해요 — Anthropic은 내부적으로 temperature=1.0 을 요구해요.

인터리브 thinking (Claude on Bedrock) — Interleaved Thinking

인터리브 thinking은 모델이 시작에서뿐 아니라 도구 호출 사이에도 추론하게 해요. 복잡한 에이전트 작업에 유용해요. thinking 버짓과 함께 활성화해요:

models:
  bedrock-claude-interleaved:
    provider: amazon-bedrock
    model: global.anthropic.claude-sonnet-4-5-20250929-v1:0
    thinking_budget: high
    provider_opts:
      region: us-east-1
      # interleaved_thinking is auto-enabled when thinking_budget is set

Docker Agent는 Bedrock 호스팅 Claude 모델에 thinking 버짓이 구성될 때마다 interleaved_thinking 을 자동 활성화하고 interleaved-thinking-2025-05-14 베타 헤더를 자동으로 추가해요. thinking 버짓이 활성화된 동안 interleaved_thinking: false 를 설정하면, Bedrock이 베타 헤더 없이 버짓을 무시할 수 있으므로 경고가 로그돼요.

전체 교차 제공자 개요는 Thinking / Reasoning 가이드 참고.

프롬프트 캐싱 (Prompt Caching)

지원 모델에서 대기 시간과 비용을 줄이기 위해 자동 활성화돼요. 시스템 프롬프트, 도구 정의, 최근 메시지가 5분 TTL로 캐시돼요.

# Disable if needed
provider_opts:
  disable_prompt_caching: true

더 알아보기 (Learn more)