---
title: Amazon Bedrock의 Claude (Opus 4.6 및 이전 버전)
url: https://platform.claude.com/docs/ko/build-with-claude/claude-on-amazon-bedrock-legacy
description: ARN 버전 모델 식별자와 함께 InvokeModel 및 Converse API를 사용하는 Claude 모델용 레거시 Amazon Bedrock 통합입니다.
---

<Note>
  이 페이지는 레거시 Amazon Bedrock 통합, 즉 ARN 버전 모델 식별자와 AWS 이벤트 스트림 인코딩을 사용하는 `InvokeModel` 및 `Converse` API를 다룹니다. Messages-API Bedrock 엔드포인트에서 사용 가능한 모델에 대해서는 [Amazon Bedrock의 Claude](https://platform.claude.com/docs/ko/build-with-claude/claude-in-amazon-bedrock)를 참조하세요. 해당 엔드포인트는 SSE 스트리밍과 함께 `/anthropic/v1/messages`에서 Messages API를 사용합니다. AWS Marketplace 청구 및 일반적으로 당일 기능 액세스를 제공하는 Anthropic 운영 대안에 대해서는 [Claude Platform on AWS](https://platform.claude.com/docs/ko/build-with-claude/claude-platform-on-aws)를 참조하세요. 기존 Bedrock 사용자는 [마이그레이션 가이드](https://platform.claude.com/docs/ko/build-with-claude/claude-platform-on-aws#migrating-from-amazon-bedrock)를 따를 수 있습니다.
</Note>

Bedrock을 통해 Claude를 호출하는 것은 Claude API에서 직접 Claude를 호출하는 방식과 약간 다릅니다. 이 가이드는 Anthropic의 [클라이언트 SDK](https://platform.claude.com/docs/ko/cli-sdks-libraries/overview) 중 하나를 사용하여 Bedrock에서 Claude에 대한 API 호출을 완료하는 과정을 안내합니다.

이 가이드는 이미 [AWS 계정](https://portal.aws.amazon.com/billing/signup)에 가입하고 프로그래밍 방식 액세스를 구성했다고 가정합니다.

## AWS CLI 설치 및 구성

1. 버전 `2.13.23` 이상의 [AWS CLI 버전을 설치](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-welcome.html)하세요.
2. AWS configure 명령을 사용하여 AWS 자격 증명을 구성하거나([AWS CLI 구성](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) 참조), AWS 대시보드 내에서 "Command line or programmatic access"로 이동하여 모달 창의 지침에 따라 자격 증명을 찾으세요.
3. 자격 증명이 작동하는지 확인하세요:

```bash AWS CLI
aws sts get-caller-identity
```

## Bedrock 액세스를 위한 SDK 설치

Anthropic의 [클라이언트 SDK](https://platform.claude.com/docs/ko/cli-sdks-libraries/overview)는 Bedrock을 지원합니다. `boto3`와 같은 AWS SDK를 직접 사용할 수도 있습니다.

<Tabs>
  <Tab title="Python">
    ```bash
    pip install -U "anthropic[bedrock]"
    ```
  </Tab>

  <Tab title="TypeScript">
    ```bash
    npm install @anthropic-ai/bedrock-sdk
    ```
  </Tab>

  <Tab title="C#">
    ```bash
    dotnet add package Anthropic.Bedrock
    ```
  </Tab>

  <Tab title="Go">
    ```bash
    go get github.com/anthropics/anthropic-sdk-go/bedrock
    ```
  </Tab>

  <Tab title="Java">
    <CodeGroup>
      ```groovy Gradle
      implementation("com.anthropic:anthropic-java:2.73.0")
      implementation("com.anthropic:anthropic-java-bedrock:2.73.0")
      ```

      ```xml Maven
      <dependency>
          <groupId>com.anthropic</groupId>
          <artifactId>anthropic-java</artifactId>
          <version>2.73.0</version>
      </dependency>
      <dependency>
          <groupId>com.anthropic</groupId>
          <artifactId>anthropic-java-bedrock</artifactId>
          <version>2.73.0</version>
      </dependency>
      ```

      ```java Java
      import com.anthropic.client.AnthropicClient;
      import com.anthropic.client.okhttp.AnthropicOkHttpClient;
      import com.anthropic.bedrock.backends.BedrockBackend;
      import com.anthropic.models.messages.MessageCreateParams;
      import com.anthropic.models.messages.Message;
      import com.anthropic.models.messages.Model;

      public class BasicMessage {
          public static void main(String[] args) {
              AnthropicClient client = AnthropicOkHttpClient.builder()
                  .backend(BedrockBackend.fromEnv())
                  .build();

              MessageCreateParams params = MessageCreateParams.builder()
                  .model(Model.CLAUDE_OPUS_4_6)
                  .maxTokens(1024L)
                  .addUserMessage("What is the capital of France?")
                  .build();

              Message response = client.messages().create(params);
              response.content().stream()
                  .flatMap(block -> block.text().stream())
                  .forEach(textBlock -> System.out.println(textBlock.text()));
          }
      }
      ```
    </CodeGroup>
  </Tab>

  <Tab title="PHP">
    ```bash
    composer require anthropic-ai/sdk aws/aws-sdk-php
    ```
  </Tab>

  <Tab title="Ruby">
    ```bash
    # Gemfile
    gem "anthropic"
    gem "aws-sdk-bedrockruntime"
    ```
  </Tab>

  <Tab title="Boto3 (Python)">
    ```bash
    pip install "boto3>=1.28.59"
    ```
  </Tab>
</Tabs>

## Bedrock 액세스

### Anthropic 모델 구독

[AWS Console > Bedrock > Model Access](https://console.aws.amazon.com/bedrock/home?region=us-west-2#/modelaccess)로 이동하여 Anthropic 모델에 대한 액세스를 요청하세요. Anthropic 모델 가용성은 리전에 따라 다릅니다. 최신 정보는 [AWS 문서](https://docs.aws.amazon.com/bedrock/latest/userguide/models-regions.html)를 참조하세요.

#### API 모델 ID

<Note>
  Claude Fable 5.1, Claude Fable 5, Claude Opus 5.5, Claude Opus 5, Claude Sonnet 5.5, Claude Sonnet 5, Claude Haiku 5.5, Claude Opus 4.8 및 Claude Opus 4.7은 `bedrock-runtime`의 `InvokeModel`을 통해 접근할 수 있습니다. 이러한 요청은 [Amazon Bedrock의 Claude](https://platform.claude.com/docs/ko/build-with-claude/claude-in-amazon-bedrock) 엔드포인트와 동일한 인프라에서 처리됩니다. 네이티브 Messages API 요청 형식과 완전한 기능 동등성을 원하시면 해당 페이지를 사용하세요. 이러한 모델은 ARN 버전 모델 ID가 없기 때문에 이 페이지의 모델 표에서 제외되어 있습니다.
</Note>

수명 주기 용어(지원 중단, 종료)는 [모델 지원 중단](https://platform.claude.com/docs/ko/about-claude/model-deprecations)에 정의되어 있습니다. 파트너가 운영하는 플랫폼의 수명 주기 날짜는 파트너가 설정하며 Claude API 일정과 다를 수 있습니다. Amazon Bedrock에서 모델의 현재 종료 날짜는 [Amazon Bedrock의 모델 수명 주기 페이지](https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle.html)를 참조하세요.

AWS는 최신 Claude 모델을 온디맨드 처리량이 아닌 "[cross-region inference](https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference.html)"(교차 리전 추론)를 통해 제공합니다. 이러한 모델의 경우 기본 모델 ID를 전달하는 요청은 다음과 같은 HTTP 400 오류와 함께 실패합니다:

```text wrap
Invocation of model ID anthropic.claude-sonnet-4-5-20250929-v1:0 with on-demand throughput isn't supported. Retry your request with the ID or ARN of an inference profile that contains this model.
```

이러한 모델을 호출하려면 기본 모델 ID 대신 "inference profile"(추론 프로필)을 전달하세요. 추론 프로필 ID는 다음 표에서 "예"로 표시된 열의 접두사를 기본 모델 ID 앞에 붙인 것입니다. 예: us.anthropic.claude-sonnet-4-5-20250929-v1:0. `arn:aws:bedrock:{region}:{account-id}:inference-profile/{inference-profile-id}` 형식의 전체 추론 프로필 ARN을 전달할 수도 있습니다. 사용 가능한 추론 프로필에 대한 AWS의 공식 목록은 [추론 프로필에 지원되는 리전 및 모델](https://docs.aws.amazon.com/bedrock/latest/userguide/inference-profiles-support.html)을 참조하세요. 접두사가 라우팅과 가격에 미치는 영향에 대해서는 [글로벌 엔드포인트와 리전 엔드포인트 비교](https://platform.claude.com/docs/ko/build-with-claude/claude-on-amazon-bedrock-legacy#global-vs-regional-endpoints) 섹션을 참조하세요.

| Model                                                                                                 | Base Bedrock model ID                       | `global` | `us` | `eu` | `jp` | `apac` |
| :---------------------------------------------------------------------------------------------------- | :------------------------------------------ | :------- | :--- | :--- | :--- | :----- |
| Claude Opus 4.6                                                                                       | `anthropic.claude-opus-4-6-v1`              | Yes      | Yes  | Yes  | Yes  | Yes    |
| Claude Opus 4.5                                                                                       | `anthropic.claude-opus-4-5-20251101-v1:0`   | Yes      | Yes  | Yes  | No   | No     |
| Claude Opus 4.1 ([deprecated](https://platform.claude.com/docs/ko/about-claude/model-deprecations))   | `anthropic.claude-opus-4-1-20250805-v1:0`   | No       | Yes  | No   | No   | No     |
| Claude Sonnet 4.6                                                                                     | `anthropic.claude-sonnet-4-6`               | Yes      | Yes  | Yes  | Yes  | No     |
| Claude Sonnet 4.5 ([deprecated](https://platform.claude.com/docs/ko/about-claude/model-deprecations)) | `anthropic.claude-sonnet-4-5-20250929-v1:0` | Yes      | Yes  | Yes  | Yes  | No     |
| Claude Sonnet 4 ([deprecated](https://platform.claude.com/docs/ko/about-claude/model-deprecations))   | `anthropic.claude-sonnet-4-20250514-v1:0`   | Yes      | Yes  | Yes  | No   | Yes    |
| Claude Haiku 4.5                                                                                      | `anthropic.claude-haiku-4-5-20251001-v1:0`  | Yes      | Yes  | Yes  | No   | No     |

### 사용 가능한 모델 나열

다음 예제는 Bedrock을 통해 사용 가능한 모든 Claude 모델 목록을 출력하는 방법을 보여줍니다:

<CodeGroup>
  ```bash AWS CLI
  aws bedrock list-foundation-models --region=us-west-2 --by-provider anthropic --query "modelSummaries[*].modelId"
  ```

  ```python Boto3 (Python)
  import boto3

  bedrock = boto3.client(service_name="bedrock")
  response = bedrock.list_foundation_models(byProvider="anthropic")

  for summary in response["modelSummaries"]:
      print(summary["modelId"])
  ```

  ```typescript TypeScript
  import { BedrockClient, ListFoundationModelsCommand } from "@aws-sdk/client-bedrock";

  const client = new BedrockClient({ region: "us-west-2" });

  const command = new ListFoundationModelsCommand({ byProvider: "anthropic" });
  const response = await client.send(command);

  if (response.modelSummaries) {
    for (const summary of response.modelSummaries) {
      console.log(summary.modelId);
    }
  }
  ```

  ```csharp C#
  using Amazon;
  using Amazon.Bedrock;
  using Amazon.Bedrock.Model;

  var client = new AmazonBedrockClient(RegionEndpoint.USWest2);

  var request = new ListFoundationModelsRequest
  {
      ByProvider = "anthropic"
  };

  var response = await client.ListFoundationModelsAsync(request);

  foreach (var summary in response.ModelSummaries)
  {
      Console.WriteLine(summary.ModelId);
  }
  ```

  ```go Go
  import (
  	"context"
  	"fmt"
  	"log"

  	"github.com/aws/aws-sdk-go-v2/config"
  	"github.com/aws/aws-sdk-go-v2/service/bedrock"
  )
  // ...
  	cfg, err := config.LoadDefaultConfig(context.TODO(), config.WithRegion("us-west-2"))
  	if err != nil {
  		log.Fatal(err)
  	}

  	client := bedrock.NewFromConfig(cfg)

  	byProvider := "anthropic"
  	response, err := client.ListFoundationModels(context.TODO(), &bedrock.ListFoundationModelsInput{
  		ByProvider: &byProvider,
  	})
  	if err != nil {
  		log.Fatal(err)
  	}

  	for _, summary := range response.ModelSummaries {
  		fmt.Println(*summary.ModelId)
  	}
  ```

  ```java Java
  import software.amazon.awssdk.regions.Region;
  import software.amazon.awssdk.services.bedrock.BedrockClient;
  import software.amazon.awssdk.services.bedrock.model.ListFoundationModelsRequest;
  import software.amazon.awssdk.services.bedrock.model.ListFoundationModelsResponse;
  import software.amazon.awssdk.services.bedrock.model.FoundationModelSummary;

  public class ListAnthropicModels {
      public static void main(String[] args) {
          BedrockClient client = BedrockClient.builder()
              .region(Region.US_WEST_2)
              .build();

          ListFoundationModelsRequest request = ListFoundationModelsRequest.builder()
              .byProvider("anthropic")
              .build();

          ListFoundationModelsResponse response = client.listFoundationModels(request);

          for (FoundationModelSummary summary : response.modelSummaries()) {
              System.out.println(summary.modelId());
          }

          client.close();
      }
  }
  ```

  ```php PHP
  <?php

  use Aws\Bedrock\BedrockClient;

  $client = new BedrockClient([
      'region' => 'us-west-2',
      'version' => 'latest'
  ]);

  $result = $client->listFoundationModels([
      'byProvider' => 'anthropic'
  ]);

  foreach ($result['modelSummaries'] as $summary) {
      echo $summary['modelId'] . PHP_EOL;
  }
  ```

  ```ruby Ruby
  require "aws-sdk-bedrock"

  client = Aws::Bedrock::Client.new(region: "us-west-2")

  response = client.list_foundation_models({
    by_provider: "anthropic"
  })

  response.model_summaries.each do |summary|
    puts summary.model_id
  end
  ```
</CodeGroup>

### 요청하기

다음 예제는 Bedrock의 Claude에서 텍스트를 생성하는 방법을 보여줍니다:

<Tabs>
  <Tab title="cURL">
    <Note>
      AWS 자격 증명으로 `InvokeModel` API를 호출하려면 SigV4 요청 서명이 필요하며, 다른 탭의 SDK는 이를 자동으로 처리합니다. 독립적인 cURL 명령으로 호출할 수 있는 Bedrock 엔드포인트에 대해서는 [Amazon Bedrock의 Claude](https://platform.claude.com/docs/ko/build-with-claude/claude-in-amazon-bedrock#making-your-first-request)를 참조하세요.
    </Note>
  </Tab>

  <Tab title="CLI">
    <Note>
      `ant` CLI는 Amazon Bedrock을 지원하지 않습니다. 대신 SDK 예제 중 하나를 사용하세요.
    </Note>
  </Tab>

  <Tab title="Python">
    ```python
    from anthropic import AnthropicBedrock

    client = AnthropicBedrock(
        # 아래 키를 제공하거나 기본 AWS 자격 증명 공급자를 사용하여 인증합니다. 예를 들어
        # ~/.aws/credentials 또는 "AWS_SECRET_ACCESS_KEY" 및 "AWS_ACCESS_KEY_ID" 환경 변수를 사용할 수 있습니다.
        aws_access_key="<access key>",
        aws_secret_key="<secret key>",
        # 임시 자격 증명은 aws_session_token과 함께 사용할 수 있습니다.
        # 자세한 내용은 https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html 을 참조하세요.
        aws_session_token="<session_token>",
        # aws_region은 요청이 전송되는 AWS 리전을 변경합니다. 제공되지 않으면 SDK는
        # AWS_REGION / AWS_DEFAULT_REGION을 읽은 다음, boto3 세션 또는 AWS 프로필에 구성된 리전을 읽으며
        # (~/.aws/config 포함), 리전을 확인할 수 없으면 ValueError를 발생시킵니다.
        aws_region="us-west-2",
    )

    message = client.messages.create(
        model="global.anthropic.claude-opus-4-6-v1",
        max_tokens=256,
        messages=[{"role": "user", "content": "Hello, world"}],
    )
    print(message.content)
    ```
  </Tab>

  <Tab title="TypeScript">
    ```typescript
    import AnthropicBedrock from "@anthropic-ai/bedrock-sdk";

    const client = new AnthropicBedrock({
      // 아래 키를 제공하거나 기본 AWS 자격 증명 공급자를 사용하여
      // 인증하세요. 예를 들어
      // ~/.aws/credentials 또는 "AWS_SECRET_ACCESS_KEY" 및
      // "AWS_ACCESS_KEY_ID" 환경 변수를 사용할 수 있습니다.
      awsAccessKey: "<access key>",
      awsSecretKey: "<secret key>",

      // awsSessionToken으로 임시 자격 증명을 사용할 수 있습니다.
      // 자세한 내용은 https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html 을 참조하세요.
      awsSessionToken: "<session_token>",

      // awsRegion은 요청이 전송되는 aws 리전을
      // 변경합니다. 기본적으로 SDK는 AWS_REGION을 읽고,
      // 해당 값이 없으면 us-east-1을 기본값으로 사용합니다. 참고로
      // SDK는 리전을 위해 ~/.aws/config를 읽지 않습니다.
      awsRegion: "us-west-2"
    });

    const message = await client.messages.create({
      model: "global.anthropic.claude-opus-4-6-v1",
      max_tokens: 256,
      messages: [{ role: "user", content: "Hello, world" }]
    });
    console.log(message);
    ```
  </Tab>

  <Tab title="C#">
    ```csharp
    using Anthropic.Bedrock;
    using Anthropic.Models.Messages;

    AnthropicBedrockClient client = new(
        await AnthropicBedrockCredentialsHelper.FromEnv()
        ?? throw new InvalidOperationException("AWS credentials not configured.")
    );

    var response = await client.Messages.Create(new MessageCreateParams
    {
        Model = "global.anthropic.claude-opus-4-6-v1",
        MaxTokens = 256,
        Messages = [new() { Role = Role.User, Content = "Hello, world" }],
    });

    Console.WriteLine(
        string.Join("", response.Content
            .Select(block => block.Value)
            .OfType<TextBlock>()
            .Select(textBlock => textBlock.Text)));
    ```
  </Tab>

  <Tab title="Go">
    ```go
    import (
    	"context"
    	"fmt"

    	"github.com/anthropics/anthropic-sdk-go"
    	"github.com/anthropics/anthropic-sdk-go/bedrock"
    )
    // ...
    	// 기본 AWS 자격 증명 공급자 체인을 사용합니다
    	client := anthropic.NewClient(
    		bedrock.WithLoadDefaultConfig(context.Background()),
    	)

    	message, err := client.Messages.New(context.Background(), anthropic.MessageNewParams{
    		Model:     "global.anthropic.claude-opus-4-6-v1",
    		MaxTokens: 256,
    		Messages: []anthropic.MessageParam{
    			anthropic.NewUserMessage(anthropic.NewTextBlock("Hello, world")),
    		},
    	})
    	if err != nil {
    		panic(err)
    	}
    	fmt.Println(message.Content)
    ```
  </Tab>

  <Tab title="Java">
    ```java
    import com.anthropic.bedrock.backends.BedrockBackend;
    import com.anthropic.client.AnthropicClient;
    import com.anthropic.client.okhttp.AnthropicOkHttpClient;
    import com.anthropic.models.messages.Message;
    import com.anthropic.models.messages.MessageCreateParams;

    public class BedrockExample {

      public static void main(String[] args) {
        // 기본 AWS 자격 증명 공급자 체인을 사용합니다
        AnthropicClient client = AnthropicOkHttpClient.builder()
          .backend(BedrockBackend.fromEnv())
          .build();

        Message message = client
          .messages()
          .create(
            MessageCreateParams.builder()
              .model("global.anthropic.claude-opus-4-6-v1")
              .maxTokens(256)
              .addUserMessage("Hello, world")
              .build()
          );

        System.out.println(message.content());
      }
    }
    ```
  </Tab>

  <Tab title="PHP">
    ```php
    <?php

    use Anthropic\Bedrock;

    $client = Bedrock\Client::withCredentials(
        accessKeyId: getenv("AWS_ACCESS_KEY_ID"),
        secretAccessKey: getenv("AWS_SECRET_ACCESS_KEY"),
        region: 'us-west-2',
        securityToken: getenv("AWS_SESSION_TOKEN"),
    );

    $message = $client->messages->create(
        maxTokens: 256,
        messages: [
            ['role' => 'user', 'content' => 'Hello, world']
        ],
        model: 'global.anthropic.claude-opus-4-6-v1',
    );
    echo $message->content[0]->text;
    ```
  </Tab>

  <Tab title="Ruby">
    ```ruby
    require "anthropic"

    client = Anthropic::BedrockClient.new

    message = client.messages.create(
      model: "global.anthropic.claude-opus-4-6-v1",
      max_tokens: 256,
      messages: [{role: "user", content: "Hello, world"}]
    )

    puts message.content.first.text
    ```
  </Tab>

  <Tab title="Boto3 (Python)">
    ```python
    import boto3
    import json

    bedrock = boto3.client(service_name="bedrock-runtime")
    body = json.dumps(
        {
            "max_tokens": 256,
            "messages": [{"role": "user", "content": "Hello, world"}],
            "anthropic_version": "bedrock-2023-05-31",
        }
    )

    response = bedrock.invoke_model(
        body=body, modelId="global.anthropic.claude-opus-4-6-v1"
    )

    response_body = json.loads(response.get("body").read())
    print(response_body.get("content"))
    ```
  </Tab>
</Tabs>

자세한 내용은 [클라이언트 SDK](https://platform.claude.com/docs/ko/cli-sdks-libraries/overview)와 [공식 Bedrock 문서](https://docs.aws.amazon.com/bedrock/)를 참조하세요.

### Bearer 토큰 인증

AWS 자격 증명 대신 bearer 토큰을 사용하여 Bedrock에 인증할 수 있습니다. 이는 팀이 AWS 자격 증명, IAM 역할 또는 계정 수준 권한을 관리하지 않고도 Bedrock에 액세스해야 하는 기업 환경에서 유용합니다.

가장 간단한 방법은 `AWS_BEARER_TOKEN_BEDROCK` 환경 변수를 설정하는 것이며, SDK는 환경에서 자격 증명을 확인할 때 이를 자동으로 감지합니다.

프로그래밍 방식으로 토큰을 제공하려면:

<Tabs>
  <Tab title="cURL">
    <Note>
      이 섹션에서는 SDK 클라이언트에서 bearer 토큰을 구성하는 방법을 보여주며, SDK 클라이언트는 `AWS_BEARER_TOKEN_BEDROCK` 환경 변수에서도 토큰을 읽습니다. bearer 토큰으로 직접 HTTP 요청을 보내려면 [Amazon Bedrock 문서](https://docs.aws.amazon.com/bedrock/)를 참조하세요.
    </Note>
  </Tab>

  <Tab title="CLI">
    <Note>
      `ant` CLI는 Amazon Bedrock을 지원하지 않습니다. 대신 SDK 예제 중 하나를 사용하세요.
    </Note>
  </Tab>

  <Tab title="Python">
    ```python
    from anthropic import AnthropicBedrock

    client = AnthropicBedrock(
        api_key="your-bearer-token",
        aws_region="us-west-2",
    )

    message = client.messages.create(
        model="us.anthropic.claude-sonnet-4-5-20250929-v1:0",
        max_tokens=1024,
        messages=[{"role": "user", "content": "Hello!"}],
    )
    print(message.content)
    ```
  </Tab>

  <Tab title="TypeScript">
    ```typescript
    import AnthropicBedrock from "@anthropic-ai/bedrock-sdk";

    const client = new AnthropicBedrock({
      apiKey: "your-bearer-token",
      awsRegion: "us-west-2"
    });

    const message = await client.messages.create({
      model: "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
      max_tokens: 1024,
      messages: [{ role: "user", content: "Hello!" }]
    });
    console.log(message);
    ```
  </Tab>

  <Tab title="C#">
    ```csharp
    using Anthropic.Bedrock;
    using Anthropic.Models.Messages;

    var client = new AnthropicBedrockClient(
        new AnthropicBedrockApiTokenCredentials
        {
            BearerToken = "your-bearer-token",
            Region = "us-west-2",
        }
    );

    var response = await client.Messages.Create(new MessageCreateParams
    {
        Model = "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
        MaxTokens = 1024,
        Messages = [new() { Role = Role.User, Content = "Hello!" }],
    });
    ```
  </Tab>

  <Tab title="Go">
    ```go
    import (
    	"context"
    	"fmt"

    	"github.com/anthropics/anthropic-sdk-go"
    	"github.com/anthropics/anthropic-sdk-go/bedrock"
    	"github.com/aws/aws-sdk-go-v2/aws"
    )
    // ...
    	cfg := aws.Config{
    		Region:                  "us-west-2",
    		BearerAuthTokenProvider: bedrock.NewStaticBearerTokenProvider("your-bearer-token"),
    	}
    	client := anthropic.NewClient(
    		bedrock.WithConfig(cfg),
    	)

    	message, err := client.Messages.New(context.TODO(), anthropic.MessageNewParams{
    		Model:     "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
    		MaxTokens: 1024,
    		Messages: []anthropic.MessageParam{
    			anthropic.NewUserMessage(anthropic.NewTextBlock("Hello!")),
    		},
    	})
    	if err != nil {
    		panic(err)
    	}
    	fmt.Println(message.Content[0].Text)
    ```
  </Tab>

  <Tab title="Java">
    ```java
    import com.anthropic.bedrock.backends.BedrockBackend;
    import com.anthropic.client.AnthropicClient;
    import com.anthropic.client.okhttp.AnthropicOkHttpClient;
    import com.anthropic.models.messages.MessageCreateParams;

    // 옵션 1: AWS_BEARER_TOKEN_BEDROCK 환경 변수를 설정하고 fromEnv()를 사용합니다
    AnthropicClient client = AnthropicOkHttpClient.builder()
      .backend(BedrockBackend.fromEnv())
      .build();

    // 옵션 2: 프로그래밍 방식으로 토큰을 제공합니다
    client = AnthropicOkHttpClient.builder()
      .backend(BedrockBackend.builder()
        .apiKey("your-bearer-token")
        .build())
      .build();

    MessageCreateParams params = MessageCreateParams.builder()
      .model("us.anthropic.claude-sonnet-4-5-20250929-v1:0")
      .maxTokens(1024)
      .addUserMessage("Hello!")
      .build();

    client.messages().create(params).content().stream()
      .flatMap(block -> block.text().stream())
      .forEach(textBlock -> System.out.println(textBlock.text()));
    ```
  </Tab>

  <Tab title="PHP">
    ```php
    <?php

    use Anthropic\Bedrock;

    $client = Bedrock\Client::withApiKey('your-bearer-token', 'us-west-2');

    $message = $client->messages->create(
        maxTokens: 1024,
        messages: [
            ['role' => 'user', 'content' => 'Hello!']
        ],
        model: 'us.anthropic.claude-sonnet-4-5-20250929-v1:0',
    );
    echo $message->content[0]->text;
    ```
  </Tab>

  <Tab title="Ruby">
    ```ruby
    require "anthropic"

    client = Anthropic::BedrockClient.new(
      api_key: "your-bearer-token",
      aws_region: "us-west-2"
    )

    message = client.messages.create(
      model: "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
      max_tokens: 1024,
      messages: [{role: "user", content: "Hello!"}]
    )
    puts message.content.first.text
    ```
  </Tab>
</Tabs>

## 활동 로깅

Bedrock은 사용과 관련된 프롬프트 및 완성 결과를 로깅할 수 있는 [호출 로깅 서비스](https://docs.aws.amazon.com/bedrock/latest/userguide/model-invocation-logging.html)를 제공합니다.

Anthropic은 활동을 파악하고 잠재적인 오용을 조사할 수 있도록 최소 30일 롤링 기준으로 활동을 로깅할 것을 권장합니다.

<Note>
  이 서비스를 켜도 AWS나 Anthropic이 귀하의 콘텐츠에 액세스할 수 있게 되지는 않습니다.
</Note>

## 기능 지원

Amazon Bedrock 가용성이 포함된 전체 기능 목록은 [기능 개요](https://platform.claude.com/docs/ko/build-with-claude/overview)를 참조하세요.

### 지원되는 주요 기능

* [Messages API](https://platform.claude.com/docs/ko/api/messages/create)
* [프롬프트 캐싱](https://platform.claude.com/docs/ko/build-with-claude/prompt-caching)
* [사고](https://platform.claude.com/docs/ko/build-with-claude/thinking)
* [도구 사용](https://platform.claude.com/docs/ko/agents-and-tools/tool-use/overview) — [Bash 도구](https://platform.claude.com/docs/ko/agents-and-tools/tool-use/bash-tool), [컴퓨터 사용 도구](https://platform.claude.com/docs/ko/agents-and-tools/tool-use/computer-use-tool), [메모리 도구](https://platform.claude.com/docs/ko/agents-and-tools/tool-use/memory-tool), [텍스트 편집기 도구](https://platform.claude.com/docs/ko/agents-and-tools/tool-use/text-editor-tool) 포함
* [인용](https://platform.claude.com/docs/ko/build-with-claude/citations)
* [구조화된 출력](https://platform.claude.com/docs/ko/build-with-claude/structured-outputs)([호환성](https://platform.claude.com/docs/ko/build-with-claude/structured-outputs#compatibility) 섹션의 Amazon Bedrock 참고 사항에 나열된 모델에 한함)

### 지원되지 않는 기능

* 입력 소스(이미지 및 문서용 URL 소스, Files API)
* 서버 측 도구(코드 실행, 웹 검색, 웹 가져오기, 어드바이저)
* 에이전트 인프라(Agent Skills, MCP 커넥터, 프로그래밍 방식 도구 호출)
* API 엔드포인트(Message Batches, Models, Admin, Compliance, Usage and Cost)
* Claude Managed Agents
* 서버 측 폴백([`fallbacks` 매개변수](https://platform.claude.com/docs/ko/build-with-claude/refusals-and-fallback#server-side-fallback). 대신 [클라이언트 측 폴백 패턴](https://platform.claude.com/docs/ko/build-with-claude/refusals-and-fallback#client-side-fallback)을 사용하세요)
* 자동 프롬프트 캐싱([최상위 `cache_control` 필드](https://platform.claude.com/docs/ko/build-with-claude/prompt-caching#automatic-caching). 대신 [명시적 캐시 중단점](https://platform.claude.com/docs/ko/build-with-claude/prompt-caching#explicit-cache-breakpoints)을 사용하세요)
* [컴퓨터 사용](https://platform.claude.com/docs/ko/agents-and-tools/tool-use/computer-use-tool) 및 [브라우저 사용](https://platform.claude.com/docs/ko/agents-and-tools/tool-use/browser-use-tool) 도구 세트(`computer_toolset_20260801` 및 `browser_toolset_20260801`은 현재 Amazon Bedrock에서 사용할 수 없습니다. 베타 컴퓨터 사용 도구 버전은 계속 사용할 수 있습니다)

### Bedrock의 PDF 지원

PDF 지원은 Converse API와 InvokeModel API 모두를 통해 Bedrock에서 사용할 수 있습니다. PDF 처리 기능 및 제한 사항에 대한 자세한 내용은 [Amazon Bedrock PDF 지원](https://platform.claude.com/docs/ko/build-with-claude/pdf-support#amazon-bedrock-pdf-support)을 참조하세요.

**Converse API 사용자를 위한 중요 고려 사항:**

* 시각적 PDF 분석(차트, 이미지, 레이아웃)에는 인용이 활성화되어 있어야 합니다
* 인용이 없으면 기본 텍스트 추출만 가능합니다
* 강제 인용 없이 완전한 제어를 원하면 InvokeModel API를 사용하세요

### Bedrock의 대화 중간 시스템 메시지

[대화 중간 시스템 메시지](https://platform.claude.com/docs/ko/build-with-claude/mid-conversation-system-messages)는 Claude Fable 5.1, Claude Fable 5, Claude Opus 5.5, Claude Opus 5, Claude Opus 4.8, Claude Sonnet 5.5 및 Claude Haiku 5.5에서 InvokeModel API를 통해 사용할 수 있습니다. [API 모델 ID](https://platform.claude.com/docs/ko/build-with-claude/claude-on-amazon-bedrock-legacy#api-model-ids) 아래의 참고 사항에 설명된 대로, 이러한 요청은 [Amazon Bedrock의 Claude](https://platform.claude.com/docs/ko/build-with-claude/claude-in-amazon-bedrock) 엔드포인트와 동일한 인프라에서 처리됩니다. 대화 중간 시스템 메시지에는 베타 헤더가 필요하지 않습니다. 이 기능은 Claude Sonnet 5에서는 사용할 수 없습니다. 대신 최상위 `system` 필드를 사용하세요. 이 페이지의 모델 표에 있는 ARN 버전 모델에서도 사용할 수 없습니다.

`role: "system"` 메시지는 Claude Fable 5.1 및 Claude Opus 5.5에서 `output_config.effort`를 설정하여 [대화 중간에 effort를 변경](https://platform.claude.com/docs/ko/build-with-claude/effort#change-effort-mid-conversation-beta)할 수도 있습니다. 이 기능은 베타 상태입니다. 요청 본문의 `anthropic_beta` 배열에 `mid-conversation-output-config-2026-07-01`을 추가하세요. 해당 값이 없거나 Claude Fable 5, Claude Opus 5 또는 Claude Opus 4.8에서는 요청이 400 오류 `messages.N.output_config: Extra inputs are not permitted`를 반환합니다. 오류에서 `N`은 `messages` 내 `system` 메시지의 인덱스입니다.

**Converse API 사용자의 경우:** Converse API는 최상위 [`system` 매개변수](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html)를 통해 시스템 지침을 받습니다. 대화 중간에 시스템 지침을 추가하려면 InvokeModel API를 사용하세요.

### 컨텍스트 윈도우

Amazon Bedrock에서 Claude Fable 5.1, Claude Fable 5, Claude Opus 5.5, Claude Opus 5, Claude Opus 4.8, Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 5.5, Claude Sonnet 5, Claude Sonnet 4.6 및 Claude Haiku 5.5 모델은 [1M 토큰 "context window"(컨텍스트 윈도우)](https://platform.claude.com/docs/ko/build-with-claude/context-windows)를 제공합니다. Sonnet 4.5(지원 중단) 및 Sonnet 4(지원 중단)를 포함한 다른 Claude 모델은 200k 토큰 컨텍스트 윈도우를 제공합니다.

Bedrock은 요청 페이로드를 20MB로 제한합니다. 대용량 문서나 많은 이미지를 보낼 때는 토큰 제한보다 먼저 이 제한에 도달할 수 있습니다.

## 글로벌 엔드포인트와 리전 엔드포인트 비교

**Claude Sonnet 4.5 및 이후의 모든 모델**부터 Bedrock은 두 가지 엔드포인트 유형을 제공합니다:

* **글로벌 엔드포인트:** 최대 가용성을 위한 동적 라우팅
* **리전 엔드포인트:** 특정 지리적 리전을 통한 데이터 라우팅 보장

리전 엔드포인트에는 글로벌 엔드포인트 대비 10%의 가격 프리미엄이 적용됩니다.

<Note>
  이는 Claude Sonnet 4.5(지원 중단) 및 이후 모델에만 적용됩니다. 이전 모델(Claude Sonnet 4(지원 중단) 및 그 이전)은 기존 가격 구조를 유지합니다.
</Note>

### 각 옵션을 사용해야 하는 경우

**글로벌 엔드포인트(권장):**

* 최대 가용성과 가동 시간 제공
* 사용 가능한 용량이 있는 리전으로 요청을 동적으로 라우팅
* 가격 프리미엄 없음
* 데이터 레지던시가 유연한 애플리케이션에 가장 적합

**리전 엔드포인트(CRIS):**

* 특정 지리적 리전을 통해 트래픽 라우팅
* 데이터 레지던시 및 규정 준수 요구 사항에 필요
* 미국, EU, 일본, 아시아 태평양에서 사용 가능
* 10% 가격 프리미엄은 전용 리전 용량을 위한 인프라 비용을 반영

### 구현

**글로벌 엔드포인트 사용(Opus 4.6, Sonnet 4.6, Sonnet 4.5(지원 중단)의 기본값):**

Claude Opus 4.6, Sonnet 4.6, Sonnet 4.5(지원 중단)의 모델 ID에는 이미 `global.` 접두사가 포함되어 있습니다:

<Tabs>
  <Tab title="cURL">
    <Note>
      AWS 자격 증명으로 `InvokeModel` API를 호출하려면 SigV4 요청 서명이 필요하며, 다른 탭의 SDK는 이를 자동으로 처리합니다. 독립적인 cURL 명령으로 호출할 수 있는 Bedrock 엔드포인트에 대해서는 [Amazon Bedrock의 Claude](https://platform.claude.com/docs/ko/build-with-claude/claude-in-amazon-bedrock#making-your-first-request)를 참조하세요.
    </Note>
  </Tab>

  <Tab title="CLI">
    <Note>
      `ant` CLI는 Amazon Bedrock을 지원하지 않습니다. 대신 SDK 예제 중 하나를 사용하세요.
    </Note>
  </Tab>

  <Tab title="Python">
    ```python
    from anthropic import AnthropicBedrock

    client = AnthropicBedrock(aws_region="us-west-2")

    message = client.messages.create(
        model="global.anthropic.claude-opus-4-6-v1",
        max_tokens=256,
        messages=[{"role": "user", "content": "Hello, world"}],
    )
    ```
  </Tab>

  <Tab title="TypeScript">
    ```typescript
    import AnthropicBedrock from "@anthropic-ai/bedrock-sdk";

    const client = new AnthropicBedrock({
      awsRegion: "us-west-2"
    });

    const message = await client.messages.create({
      model: "global.anthropic.claude-opus-4-6-v1",
      max_tokens: 256,
      messages: [{ role: "user", content: "Hello, world" }]
    });
    ```
  </Tab>

  <Tab title="C#">
    ```csharp
    using Anthropic.Bedrock;
    using Anthropic.Models.Messages;

    // C# Bedrock 클라이언트는 글로벌 라우팅을 위해 리전 접두사가 붙은 모델 ID를 사용합니다
    AnthropicBedrockClient client = new(
        await AnthropicBedrockCredentialsHelper.FromEnv()
        ?? throw new InvalidOperationException("AWS credentials not configured.")
    );

    var response = await client.Messages.Create(new MessageCreateParams
    {
        // 글로벌 교차 리전 추론에는 "global." 접두사를 사용하세요
        Model = "global.anthropic.claude-opus-4-6-v1",
        MaxTokens = 256,
        Messages = [new() { Role = Role.User, Content = "Hello, world" }],
    });
    ```
  </Tab>

  <Tab title="Go">
    ```go
    import (
    	"context"

    	"github.com/anthropics/anthropic-sdk-go"
    	"github.com/anthropics/anthropic-sdk-go/bedrock"
    )
    // ...
    	// 기본 AWS 자격 증명 공급자 체인을 사용합니다
    	client := anthropic.NewClient(
    		bedrock.WithLoadDefaultConfig(context.Background()),
    	)

    	message, _ := client.Messages.New(context.Background(), anthropic.MessageNewParams{
    		Model:     "global.anthropic.claude-opus-4-6-v1",
    		MaxTokens: 256,
    		Messages: []anthropic.MessageParam{
    			anthropic.NewUserMessage(anthropic.NewTextBlock("Hello, world")),
    		},
    	})
    ```
  </Tab>

  <Tab title="Java">
    ```java
    import com.anthropic.bedrock.backends.BedrockBackend;
    import com.anthropic.client.AnthropicClient;
    import com.anthropic.client.okhttp.AnthropicOkHttpClient;
    import com.anthropic.models.messages.MessageCreateParams;

    // 기본 AWS 자격 증명 공급자 체인을 사용합니다
    AnthropicClient client = AnthropicOkHttpClient.builder()
      .backend(BedrockBackend.fromEnv())
      .build();

    var message = client
      .messages()
      .create(
        MessageCreateParams.builder()
          .model("global.anthropic.claude-opus-4-6-v1")
          .maxTokens(256)
          .addUserMessage("Hello, world")
          .build()
      );
    ```
  </Tab>

  <Tab title="PHP">
    ```php
    <?php

    use Anthropic\Bedrock;

    $client = Bedrock\Client::fromEnvironment();

    $message = $client->messages->create(
        maxTokens: 256,
        messages: [
            ['role' => 'user', 'content' => 'Hello, world']
        ],
        model: 'global.anthropic.claude-opus-4-6-v1',
    );
    ```
  </Tab>

  <Tab title="Ruby">
    ```ruby
    require "anthropic"

    # 기본 자격 증명은 AWS_REGION 환경 변수에서 리전을 확인합니다
    client = Anthropic::BedrockClient.new

    message = client.messages.create(
      # 글로벌 교차 리전 추론에는 "global." 접두사를 사용하세요
      model: "global.anthropic.claude-opus-4-6-v1",
      max_tokens: 256,
      messages: [{role: "user", content: "Hello, world"}]
    )
    ```
  </Tab>
</Tabs>

**리전 엔드포인트 사용(CRIS):**

리전 엔드포인트를 사용하려면 `global.` 접두사를 `us.`와 같은 리전 접두사로 바꾸세요:

<Tabs>
  <Tab title="cURL">
    <Note>
      AWS 자격 증명으로 `InvokeModel` API를 호출하려면 SigV4 요청 서명이 필요하며, 다른 탭의 SDK는 이를 자동으로 처리합니다. 독립적인 cURL 명령으로 호출할 수 있는 Bedrock 엔드포인트에 대해서는 [Amazon Bedrock의 Claude](https://platform.claude.com/docs/ko/build-with-claude/claude-in-amazon-bedrock#making-your-first-request)를 참조하세요.
    </Note>
  </Tab>

  <Tab title="CLI">
    <Note>
      `ant` CLI는 Amazon Bedrock을 지원하지 않습니다. 대신 SDK 예제 중 하나를 사용하세요.
    </Note>
  </Tab>

  <Tab title="Python">
    ```python
    from anthropic import AnthropicBedrock

    client = AnthropicBedrock(aws_region="us-west-2")

    # 미국 리전 엔드포인트(CRIS) 사용
    message = client.messages.create(
        model="us.anthropic.claude-opus-4-6-v1",  # Regional prefix
        max_tokens=256,
        messages=[{"role": "user", "content": "Hello, world"}],
    )
    ```
  </Tab>

  <Tab title="TypeScript">
    ```typescript
    import AnthropicBedrock from "@anthropic-ai/bedrock-sdk";

    const client = new AnthropicBedrock({
      awsRegion: "us-west-2"
    });

    // 미국 리전 엔드포인트 사용 (CRIS)
    const message = await client.messages.create({
      model: "us.anthropic.claude-opus-4-6-v1", // Regional prefix
      max_tokens: 256,
      messages: [{ role: "user", content: "Hello, world" }]
    });
    ```
  </Tab>

  <Tab title="C#">
    ```csharp
    using Anthropic.Bedrock;
    using Anthropic.Models.Messages;

    AnthropicBedrockClient client = new(
        new AnthropicBedrockPrivateKeyCredentials { Region = "us-west-2" }
    );

    // 미국 리전 엔드포인트(CRIS) 사용
    var response = await client.Messages.Create(new MessageCreateParams
    {
        Model = "us.anthropic.claude-opus-4-6-v1", // Regional prefix
        MaxTokens = 256,
        Messages = [new() { Role = Role.User, Content = "Hello, world" }],
    });
    ```
  </Tab>

  <Tab title="Go">
    ```go
    import (
    	"context"

    	"github.com/anthropics/anthropic-sdk-go"
    	"github.com/anthropics/anthropic-sdk-go/bedrock"
    )
    // ...
    	// 기본 AWS 자격 증명 공급자 체인을 사용합니다
    	client := anthropic.NewClient(
    		bedrock.WithLoadDefaultConfig(context.Background()),
    	)

    	// US 리전 엔드포인트(CRIS)를 사용합니다
    	message, _ := client.Messages.New(context.Background(), anthropic.MessageNewParams{
    		Model:     "us.anthropic.claude-opus-4-6-v1", // Regional prefix
    		MaxTokens: 256,
    		Messages: []anthropic.MessageParam{
    			anthropic.NewUserMessage(anthropic.NewTextBlock("Hello, world")),
    		},
    	})
    ```
  </Tab>

  <Tab title="Java">
    ```java
    import com.anthropic.bedrock.backends.BedrockBackend;
    import com.anthropic.client.AnthropicClient;
    import com.anthropic.client.okhttp.AnthropicOkHttpClient;
    import com.anthropic.models.messages.MessageCreateParams;

    // 기본 AWS 자격 증명 공급자 체인을 사용합니다
    AnthropicClient client = AnthropicOkHttpClient.builder()
      .backend(BedrockBackend.fromEnv())
      .build();

    // US 리전 엔드포인트(CRIS)를 사용합니다
    var message = client
      .messages()
      .create(
        MessageCreateParams.builder()
          .model("us.anthropic.claude-opus-4-6-v1") // Regional prefix
          .maxTokens(256)
          .addUserMessage("Hello, world")
          .build()
      );
    ```
  </Tab>

  <Tab title="PHP">
    ```php
    <?php

    use Anthropic\Bedrock;

    $client = Bedrock\Client::fromEnvironment();

    $message = $client->messages->create(
        maxTokens: 256,
        messages: [
            ['role' => 'user', 'content' => 'Hello, world']
        ],
        model: 'us.anthropic.claude-opus-4-6-v1',
    );
    ```
  </Tab>

  <Tab title="Ruby">
    ```ruby
    require "anthropic"

    # 미국 리전 엔드포인트(CRIS) 사용
    client = Anthropic::BedrockClient.new(aws_region: "us-west-2")

    message = client.messages.create(
      model: "us.anthropic.claude-opus-4-6-v1", # Regional prefix
      max_tokens: 256,
      messages: [{role: "user", content: "Hello, world"}]
    )
    ```
  </Tab>
</Tabs>

<Note>
  **Claude Mythos Preview**는 Amazon Bedrock에서 초대받은 고객이 사용할 수 있는 연구 프리뷰 모델입니다. 자세한 내용은 [Project Glasswing](https://anthropic.com/glasswing)을 참조하세요.
</Note>

## 추가 리소스

* **Bedrock 가격:** [Amazon Bedrock 가격 페이지](https://aws.amazon.com/bedrock/pricing/)
* **AWS 가격 문서:** [Bedrock 가격 가이드](https://docs.aws.amazon.com/bedrock/latest/userguide/bedrock-pricing.html)
* **AWS 블로그 게시물:** [Amazon Bedrock에서 Claude Sonnet 4.5 소개](https://aws.amazon.com/blogs/aws/introducing-claude-sonnet-4-5-in-amazon-bedrock-anthropics-most-intelligent-model-best-for-coding-and-complex-agents/)
* **Anthropic 가격 세부 정보:** [클라우드 플랫폼 가격](https://platform.claude.com/docs/ko/about-claude/pricing#cloud-platform-pricing)
