Amazon Bedrock의 Claude

Amazon Bedrock의 Claude (Claude in Amazon Bedrock, Opus 4.7 이상)

이 가이드는 Amazon Bedrock에서 Claude를 설정하고 API 호출을 하는 방법을 안내해요. Amazon Bedrock의 Claude는 AWS 관리형 인프라에서 운영자 접근 제로(Anthropic 직원이 추론 인프라에 접근할 수 없음)로 실행되므로, Anthropic 퍼스트파티 API와 같은 Messages API 모양을 사용하면서 민감한 애플리케이션을 완전히 AWS 보안 경계 안에서 구축할 수 있어요. 이전 Amazon Bedrock 통합은 Claude on Amazon Bedrock (Opus 4.6 이하)에서 문서화돼요.

출처: 문서

본문

이 가이드는 Amazon Bedrock에서 Claude를 설정하고 API 호출을 하는 방법을 안내해요. Amazon Bedrock의 Claude는 AWS 관리형 인프라에서 운영자 접근 제로로 실행돼요. Anthropic 직원이 추론 인프라에 접근할 수 없어요. 따라서 Anthropic 퍼스트파티 API와 같은 Messages API 모양을 사용하면서 민감한 애플리케이션을 완전히 AWS 보안 경계 안에서 구축할 수 있어요.

참고: 이 페이지는 Messages API를 /anthropic/v1/messages에서 AWS 관리형 인프라로 제공하는 Amazon Bedrock의 Claude를 다뤄요. 이전 Amazon Bedrock 통합(InvokeModelConverse API, ARN 버전 모델 식별자)은 계속 사용할 수 있고 Claude on Amazon Bedrock (Opus 4.6 이하)에서 문서화돼요. AWS Marketplace 청구와 보통 당일 기능 접근이 있는 AWS에서 Anthropic 운영 대안은 Claude Platform on AWS를 참고하세요.

접근 (Access)

Amazon Bedrock은 각 Claude 모델에 대해 접근 기준을 개별적으로 설정해요. Claude Fable 5.1, Claude Fable 5, Claude Opus 4.8, Claude Sonnet 5, Claude Opus 4.7, Claude Haiku 4.5는 모든 Amazon Bedrock 고객에게 열려 있어요. 다른 모델의 현재 기준은 AWS 콘솔의 Amazon Bedrock 모델 접근을 확인하세요. Claude Mythos Preview는 Project Glasswing을 통한 초대가 필요해요. 지역 가용성은 지역을 참고하세요.

사전 요구 사항 (Prerequisites)

시작하기 전에 다음이 있는지 확인하세요:

Claude Mythos Preview는 추가로 Bedrock Marketplace 팀이 허용 목록에 올린 전용 AWS 계정이 필요해요. Anthropic 계정 담당자가 허용 목록을 위해 계정 ID를 제출할 수 있고(보통 24시간 내 처리), 완료되면 AWS가 환영 이메일을 보내요.

인증 (Authentication)

Amazon Bedrock의 Claude는 세 가지 인증 경로를 지원해요. 보안 요구 사항에 가장 잘 맞는 것을 고르세요.

Bedrock 서비스 역할 (권장)

가장 안전하고 오래 지속되는 접근을 위해 AWS 관리 키가 있는 Bedrock 서비스 역할을 사용하세요:

AWS 관리자가 Bedrock 서비스 역할을 프로비저닝하고 개발자에게 서비스 역할 ARN에 대한 `iam:PassRole` 권한을 부여해요. API를 호출할 때 Bedrock이 당신을 대신해 서비스 역할을 가정해요. 요청에 역할을 연결하는 방법은 [Amazon Bedrock 문서](https://docs.aws.amazon.com/bedrock/latest/userguide/bedrock-mantle.html)를 참고하세요.

IAM 가정 역할 (IAM assumed roles)

최대 12시간 세션의 ID 페더레이션 접근을 위해:

사용할 Claude 모델에 범위가 지정된 IAM 역할을 만드세요. 신뢰 정책은 당신의 ID 제공자(SAML, OIDC, AWS Identity Center)를 지명해요. 권한 정책은 허용된 모델 ARN에서만 `bedrock-mantle:CreateInference`를 부여해요. 회사 ID 제공자를 통해 인증한 다음 IAM 역할을 가정하세요. AWS STS가 SDK나 CLI가 요청을 서명하는 데 사용하는 임시 자격 증명을 발행해요.

Bearer 토큰 (Bearer tokens)

IAM 역할 없이 단기 접근을 위해(12시간 최대, 가장 선호되지 않음):

`bedrock:BearerTokenType` 조건이 단기 토큰과 일치하지 않으면 `bedrock:CallWithBearerToken`을 거부하는 정책을 연결해 장기 키를 차단하세요. `aws-bedrock-token-generator` CLI를 사용해 bearer 토큰을 발행하세요. 각 요청의 `x-api-key` 헤더에 전달하세요.

SDK 설치하기

Anthropic의 클라이언트 SDK는 Bedrock 전용 패키지나 모듈을 통해 Amazon Bedrock의 Claude를 지원해요.

```bash pip install -U "anthropic[bedrock]" ``` ```bash npm install @anthropic-ai/bedrock-sdk ``` ```bash dotnet add package Anthropic.Bedrock ``` ```bash go get github.com/anthropics/anthropic-sdk-go/bedrock ``` ```kotlin implementation("com.anthropic:anthropic-java:2.65.0") implementation("com.anthropic:anthropic-java-bedrock:2.65.0") ```
  <Tab title="Maven">
    ```xml
    <dependency>
        <groupId>com.anthropic</groupId>
        <artifactId>anthropic-java</artifactId>
        <version>2.65.0</version>
    </dependency>
    <dependency>
        <groupId>com.anthropic</groupId>
        <artifactId>anthropic-java-bedrock</artifactId>
        <version>2.65.0</version>
    </dependency>
    ```
  </Tab>
</Tabs>
```bash composer require anthropic-ai/sdk aws/aws-sdk-php ``` ```bash # Gemfile gem "anthropic" gem "aws-sdk-core" ```

첫 요청 만들기

엔드포인트는 https://bedrock-mantle.{region}.api.aws/anthropic/v1/messages 패턴을 따라요. InvokeModel 기반 통합과 달리 이 엔드포인트는 표준 SSE 스트리밍과 Anthropic 퍼스트파티 API와 같은 요청 본문 모양을 사용해요.

SDK는 표준 AWS 우선순위로 자격 증명과 지역을 해결해요: 생성자 인자, 그 다음 환경 변수(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN, AWS_REGION), 그 다음 AWS 구성 파일과 자격 증명 체인(SSO, 가정 역할, ECS 태스크 역할, IMDS).

```bash curl https://bedrock-mantle.us-east-1.api.aws/anthropic/v1/messages \ --aws-sigv4 "aws:amz:us-east-1:bedrock-mantle" \ --user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \ -H "x-amz-security-token: $AWS_SESSION_TOKEN" \ -H "content-type: application/json" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "anthropic.claude-opus-5-5", "max_tokens": 1024, "messages": [ {"role": "user", "content": "Hello, Claude"} ] }' ``` `ant` CLI는 Amazon Bedrock을 지원하지 않아요. cURL이나 SDK를 사용하세요. ```python from anthropic import AnthropicBedrockMantle
client = AnthropicBedrockMantle(aws_region="us-east-1")

message = client.messages.create(
    model="anthropic.claude-opus-5-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello, Claude"}],
)

print(next(block.text for block in message.content if block.type == "text"))
```
```typescript import { AnthropicBedrockMantle } from "@anthropic-ai/bedrock-sdk";
const client = new AnthropicBedrockMantle({
  awsRegion: "us-east-1"
});

const message = await client.messages.create({
  model: "anthropic.claude-opus-5-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Hello, Claude" }]
});

const textBlock = message.content.find((block) => block.type === "text");
if (textBlock) {
  console.log(textBlock.text);
}
```
```csharp using Anthropic.Bedrock; using Anthropic.Models.Messages;
var client = new AnthropicBedrockMantleClient(new() { AwsRegion = "us-east-1" });

var message = await client.Messages.Create(new()
{
    Model = "anthropic.claude-opus-5-5",
    MaxTokens = 1024,
    Messages = [new() { Role = Role.User, Content = "Hello, Claude" }],
});

foreach (var item in message.Content)
{
    if (item.Value is TextBlock block)
    {
        Console.WriteLine(block.Text);
        break;
    }
}
```
```go client, err := bedrock.NewMantleClient(context.Background(), bedrock.MantleClientConfig{ AWSRegion: "us-east-1", }) if err != nil { panic(err) }
message, err := client.Messages.New(context.Background(), anthropic.MessageNewParams{
	Model:     "anthropic.claude-opus-5-5",
	MaxTokens: 1024,
	Messages: []anthropic.MessageParam{
		anthropic.NewUserMessage(anthropic.NewTextBlock("Hello, Claude")),
	},
})
if err != nil {
	panic(err)
}

for _, block := range message.Content {
	if textBlock, ok := block.AsAny().(anthropic.TextBlock); ok {
		fmt.Println(textBlock.Text)
		break
	}
}
```
```java import com.anthropic.bedrock.backends.BedrockMantleBackend; import com.anthropic.client.AnthropicClient; import com.anthropic.client.okhttp.AnthropicOkHttpClient; import com.anthropic.models.messages.ContentBlock; import com.anthropic.models.messages.Message; import com.anthropic.models.messages.MessageCreateParams;
void main() {
    AnthropicClient client = AnthropicOkHttpClient.builder()
        .backend(BedrockMantleBackend.fromEnv())
        .build();

    Message message = client.messages().create(
        MessageCreateParams.builder()
            .model("anthropic.claude-opus-5-5")
            .maxTokens(1024)
            .addUserMessage("Hello, Claude")
            .build()
    );

    message.content().stream()
            .filter(ContentBlock::isText)
            .findFirst()
            .ifPresent(block -> IO.println(block.asText().text()));
}
```
```php use Anthropic\Bedrock\MantleClient;
$client = new MantleClient(awsRegion: 'us-east-1');

$message = $client->messages->create(
    model: 'anthropic.claude-opus-5-5',
    maxTokens: 1024,
    messages: [
        ['role' => 'user', 'content' => 'Hello, Claude'],
    ],
);

echo array_find($message->content, fn ($block) => $block->type === 'text')->text;
```
```ruby require "anthropic"
client = Anthropic::BedrockMantleClient.new(aws_region: "us-east-1")

message = client.messages.create(
  model: "anthropic.claude-opus-5-5",
  max_tokens: 1024,
  messages: [{role: "user", content: "Hello, Claude"}]
)

puts message.content.find { it.type == :text }.text
```

: 표준 Anthropic 클라이언트를 사용할 수도 있어요. base_urlhttps://bedrock-mantle.{region}.api.aws/anthropic으로 설정하고 bearer 토큰을 api_key로 전달하세요. 이 경로는 bearer 토큰 인증만 지원해요. SigV4 서명은 전용 클라이언트가 필요해요.

지원 모델 (Supported models)

Amazon Bedrock의 Claude에서 모델 ID는 anthropic. 제공자 접두사를 지녀요. 모델 능력과 동작은 모델 개요 페이지에서 문서화돼요.

모델 모델 ID 접근
Claude Fable 5.1 anthropic.claude-fable-5-1 개방
Claude Mythos 5.1 (제한적 가용성) anthropic.claude-mythos-5-1 초대 전용
Claude Fable 5 anthropic.claude-fable-5 개방
Claude Mythos 5 (제한적 가용성) anthropic.claude-mythos-5 초대 전용
Claude Mythos Preview (제한적 가용성) anthropic.claude-mythos-preview 초대 전용
Claude Opus 5.5 anthropic.claude-opus-5-5 접근 참고
Claude Opus 5 anthropic.claude-opus-5 접근 참고
Claude Opus 4.8 anthropic.claude-opus-4-8 개방
Claude Opus 4.7 anthropic.claude-opus-4-7 개방
Claude Sonnet 5 anthropic.claude-sonnet-5 개방
Claude Haiku 4.5 anthropic.claude-haiku-4-5 개방

Amazon Bedrock의 Claude Fable 5.1에는 Claude Code 2.1.255 이상, Claude Opus 5.5에는 2.1.280 이상을 사용하세요. 업그레이드는 claude update를 실행하세요.

: 더 새로운 Claude 모델로 업그레이드하시나요? Claude Code에서 /claude-api migrate를 실행해 코드베이스 전반에 모델 ID 교체와 호환성이 깨지는 매개변수 변경을 적용하세요. 이 스킬은 코드가 대상으로 하는 클라우드 플랫폼을 감지해 그 플랫폼에 맞게 모델 ID 형식과 기능 변경을 조정해요. 더 새로운 Claude 모델로 마이그레이션을 참고하세요.

기능 지원 (Feature support)

Amazon Bedrock 가용성이 있는 전체 기능 목록은 기능 개요를 참고하세요.

지원되는 기능 하이라이트

지원되지 않는 기능

  • 구조화된 출력
  • 입력 소스(이미지·문서용 URL 소스, Files API)
  • 서버 측 도구(code execution, web search, web fetch, advisor)
  • 에이전트 인프라(Agent Skills, MCP 커넥터, 프로그래매틱 도구 호출)
  • API 엔드포인트(Message Batches, Models, Admin, Compliance, Usage and Cost)
  • Claude Managed Agents
  • 서버 측 폴백(fallbacks 매개변수. 대신 클라이언트 측 폴백 패턴 사용)
  • 컴퓨터 사용browser use 도구셋(computer_toolset_20260801browser_toolset_20260801은 현재 Amazon Bedrock에서 사용할 수 없음. 베타 컴퓨터 사용 도구 버전은 계속 사용 가능)

지역 (Regions)

Amazon Bedrock의 Claude는 다음 AWS 지역에서 사용할 수 있어요. Amazon Bedrock은 두 가지 엔드포인트 유형을 제공해요:

  • Global: 최대 가용성을 위해 모든 사용 가능한 지역에 걸친 동적 라우팅. 가격 프리미엄 없음.
  • Regional: 엔드포인트가 지정한 단일 AWS 지역으로 해석되어 데이터 레지던시 요구 사항 충족. 지역 엔드포인트는 글로벌 엔드포인트보다 10% 가격 프리미엄을 지녀요. 지리 내 여러 지역에 걸쳐 라우팅하려면 추론 프로필(US, EU, JP, AU)을 사용하세요. 표에서 In-region only로 표시된 지역은 추론 프로필 없이 직접 단일 지역 라우팅을 지원해요.

글로벌 엔드포인트는 Claude Fable 5.1, Claude Fable 5, Claude Opus 5.5, Claude Opus 5, Claude Opus 4.8, Claude Opus 4.7, Claude Sonnet 5, Claude Haiku 4.5에 사용할 수 있어요. Claude Fable 5.1의 지역 엔드포인트는 현재 us-east-1에서만 사용할 수 있어요. Claude Mythos Preview는 지역 전용이며 us-east-1에서 사용할 수 있어요.

AWS 지역 위치 엔드포인트 유형
af-south-1 Africa (Cape Town) Global
ap-northeast-1 Asia Pacific (Tokyo) Global, JP, In-region only
ap-northeast-2 Asia Pacific (Seoul) Global
ap-northeast-3 Asia Pacific (Osaka) Global, JP
ap-south-1 Asia Pacific (Mumbai) Global
ap-south-2 Asia Pacific (Hyderabad) Global
ap-southeast-1 Asia Pacific (Singapore) Global
ap-southeast-2 Asia Pacific (Sydney) Global, AU
ap-southeast-3 Asia Pacific (Jakarta) Global
ap-southeast-4 Asia Pacific (Melbourne) Global, AU, In-region only
ca-central-1 Canada (Central) Global, US
ca-west-1 Canada West (Calgary) Global
eu-central-1 Europe (Frankfurt) Global, EU
eu-central-2 Europe (Zurich) Global, EU
eu-north-1 Europe (Stockholm) Global, EU, In-region only
eu-south-1 Europe (Milan) Global, EU
eu-south-2 Europe (Spain) Global, EU
eu-west-1 Europe (Ireland) Global, EU, In-region only
eu-west-2 Europe (London) Global, EU
eu-west-3 Europe (Paris) Global, EU
il-central-1 Israel (Tel Aviv) Global
me-central-1 Middle East (UAE) Global
sa-east-1 South America (São Paulo) Global
us-east-1 US East (N. Virginia) Global, US, In-region only
us-east-2 US East (Ohio) Global, US, In-region only
us-west-1 US West (N. California) Global, US
us-west-2 US West (Oregon) Global, US, In-region only

할당량 (Quotas)

기본 할당량은 분당 입력 토큰 2백만(TPM)이에요. 추가 Anthropic 승인 없이 최대 5백만 입력 TPM과 50만 출력 TPM을 요청할 수 있어요. AWS가 Bedrock 측에서 분당 요청(RPM) 한도를 적용해요. RPM 조정은 AWS 지원에 문의하세요.

데이터 보존 (Data retention)

이 제공의 데이터 처리는 Amazon Bedrock이 규율해요. 자세한 내용은 Amazon Bedrock의 데이터 보호를 참고하세요.

모니터링과 로깅 (Monitoring and logging)

Amazon Bedrock의 Claude는 CloudWatch와 CloudTrail 둘 다에 로그를 방출해요. Anthropic은 사용 패턴을 이해하고 잠재적 문제를 조사하기 위해 활동 로그를 최소 30일 단위로 보관할 것을 권장해요.

지원 (Support)

지원은 [email protected] 으로 연락하세요. AWS 계정 ID와 실패한 API 응답의 request-id를 포함하세요.

참고: Claude Mythos Preview는 Amazon Bedrock에서 초대받은 고객에게 제공되는 연구 미리보기 모델이에요. 자세한 내용은 Project Glasswing을 참고하세요.

더 알아보기 (Learn more)