

# Amazon Bedrock과 RDS for Oracle 통합
<a name="Oracle.BedrockIntegration"></a>

RDS for Oracle은 Amazon Bedrock과의 통합을 지원하므로 SQL을 사용하여 Oracle 데이터베이스에서 직접 파운데이션 모델을 간접적으로 호출할 수 있습니다. 이 통합을 통해 데이터베이스에서 데이터를 이동하지 않고도 텍스트 생성, 요약, 임베딩 생성과 같은 생성형 AI 기능을 사용할 수 있습니다.

**참고**  
Amazon Bedrock 통합은 Oracle Database 26ai에서만 지원됩니다.

**Topics**
+ [Bedrock 통합 요구 사항](#Oracle.BedrockIntegration.requirements)
+ [Bedrock 통합 구성](#Oracle.BedrockIntegration.Configuring)
+ [Bedrock 통합 사용](#Oracle.BedrockIntegration.Using)

## Bedrock 통합 요구 사항
<a name="Oracle.BedrockIntegration.requirements"></a>

Amazon Bedrock과 RDS for Oracle 통합을 사용하려면 다음 요구 사항을 충족해야 합니다.

### 데이터베이스 요구 사항
<a name="Oracle.BedrockIntegration.requirements.Database"></a>
+ DB 인스턴스는 Oracle Database 26ai (26.0.0.0) 이상을 실행해야 합니다.
+ Bedrock 모델을 간접적으로 호출하는 데이터베이스 사용자는 `DBMS_CLOUD` 및 `DBMS_CLOUD_AI` 패키지에 대한 `EXECUTE` 권한이 있어야 합니다.
+ 데이터베이스는 Bedrock 런타임 엔드포인트에 대한 아웃바운드 HTTPS 액세스를 허용하는 액세스 제어 항목(ACE)으로 구성되어야 합니다. 자세한 내용은 [Bedrock 통합 구성](#Oracle.BedrockIntegration.Configuring) 섹션을 참조하세요.

### AWS 자격 증명 요구 사항
<a name="Oracle.BedrockIntegration.requirements.Credentials"></a>
+ 원하는 Amazon Bedrock 파운데이션 모델(`bedrock:InvokeModel` 및 선택적으로 `bedrock:InvokeModelWithResponseStream` 작업)을 간접적으로 호출할 권한이 있는 IAM 사용자 또는 역할이 있어야 합니다.
+ Amazon Bedrock 콘솔을 사용하여 원하는 파운데이션 모델에 대한 액세스 권한을 요청하고 부여받아야 합니다. 자세한 내용은 *Amazon Bedrock 사용 설명서*의 [Amazon Bedrock 파운데이션 모델 액세스](https://docs.aws.amazon.com/bedrock/latest/userguide/model-access.html)를 참조하세요.
+ `DBMS_CLOUD.CREATE_CREDENTIAL`을 사용하여 IAM 자격 증명을 데이터베이스에 저장하려면 AWS 액세스 키(액세스 키 ID 및 시크릿 액세스 키)가 있어야 합니다.

### Amazon VPC 네트워크 요구 사항
<a name="Oracle.BedrockIntegration.requirements.Network"></a>

RDS for Oracle DB 인스턴스는 포트 443(HTTPS)의 Amazon Bedrock 런타임 엔드포인트(`bedrock-runtime.{{region}}.amazonaws.com`)에 연결할 수 있어야 합니다. 이를 다음 중 한 가지 방법으로 달성할 수 있습니다.

**옵션 1: Amazon VPC 인터페이스 엔드포인트(AWS PrivateLink) – 권장**  
Amazon Bedrock 런타임 서비스에 대한 Amazon VPC 인터페이스 엔드포인트를 생성합니다. 이렇게 하면 AWS 네트워크 내에서 모든 트래픽이 비공개로 유지되며 인터넷 액세스가 필요하지 않습니다.

1. 서비스 이름 `com.amazonaws.{{region}}.bedrock-runtime`을 사용하여 Amazon RDS 엔드포인트를 생성합니다.

1. 이 엔드포인트를 Amazon RDS DB 인스턴스와 동일한 Amazon VPC 및 서브넷(또는 DB 인스턴스 서브넷에 연결된 서브넷)에 배치합니다.

1. DB 인스턴스의 보안 그룹에서 인바운드 HTTPS(포트 443)를 허용하는 보안 그룹을 엔드포인트에 연결합니다.

1. 표준 호스트 이름 `bedrock-runtime.{{region}}.amazonaws.com`이 프라이빗 엔드포인트 IP 주소로 확인되도록 엔드포인트에 대해 프라이빗 DNS를 활성화합니다.

1. DB 인스턴스의 보안 그룹이 엔드포인트의 보안 그룹(또는 엔드포인트의 프라이빗 IP 주소)에 대한 아웃바운드 HTTPS(포트 443)를 허용하는지 확인합니다.

**옵션 2: NAT 게이트웨이(인터넷 라우팅)**  
Amazon VPC 엔드포인트를 사용하지 않는 경우 DB 인스턴스의 서브넷에는 NAT 게이트웨이를 통해 인터넷으로 연결되는 경로가 있어야 합니다.

1. DB 인스턴스가 NAT 게이트웨이에 대한 경로가 있는 프라이빗 서브넷에 있는지 확인합니다.

1. NAT 게이트웨이는 인터넷 게이트웨이로 라우팅하는 경로가 있는 퍼블릭 서브넷에 있어야 합니다.

1. DB 인스턴스의 보안 그룹은 `bedrock-runtime.{{region}}.amazonaws.com`에 대한 아웃바운드 HTTPS(포트 443)를 허용해야 합니다.

1. DB 인스턴스의 서브넷에 있는 모든 Amazon VPC 네트워크 ACL은 아웃바운드 TCP 443 및 해당 임시 인바운드 반환 트래픽(TCP 포트 1024–65535)을 허용해야 합니다.

다음 표에는 네트워크 경로가 요약되어 있습니다.


**Bedrock 통합을 위한 네트워크 경로**  

| 접근 방식 | 인터넷 액세스 필요 | 트래픽 경로 | 
| --- | --- | --- | 
| Amazon VPC 엔드포인트(AWS PrivateLink) | 아니요 | DB 인스턴스 → Amazon VPC 엔드포인트 → Bedrock 서비스 | 
| NAT 게이트웨이 | 예(아웃바운드만 해당) | DB 인스턴스 → NAT 게이트웨이 → 인터넷 게이트웨이 → Bedrock 서비스 | 

## Bedrock 통합 구성
<a name="Oracle.BedrockIntegration.Configuring"></a>

RDS for Oracle DB 인스턴스에 대해 Amazon Bedrock 통합을 구성하려면 다음 단계를 완료합니다.

### 1단계: Amazon VPC 네트워크 연결 구성
<a name="Oracle.BedrockIntegration.Configuring.Step1"></a>

[Amazon VPC 네트워크 요구 사항](#Oracle.BedrockIntegration.requirements.Network)에 설명된 네트워크 옵션 중 하나를 사용하여 DB 인스턴스가 Bedrock 런타임 엔드포인트에 도달할 수 있는지 확인합니다. 구성 후 연결을 확인하기 위해 이후 단계에서 데이터베이스에서 테스트할 수 있습니다.

### 2단계: Bedrock 권한으로 AWS 자격 증명 획득
<a name="Oracle.BedrockIntegration.Configuring.Step2"></a>

다음 정책을 사용하여 IAM 사용자 또는 역할을 생성합니다(또는 기존 자격 증명에 연결).

```
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "BedrockInvoke",
      "Effect": "Allow",
      "Action": [
        "bedrock:InvokeModel",
        "bedrock:InvokeModelWithResponseStream"
      ],
      "Resource": [
        "arn:aws:bedrock:{{region}}::foundation-model/*"
      ]
    }
  ]
}
```

액세스를 특정 모델로 제한하려면 와일드카드를 다음과 같은 특정 모델 ARN으로 바꿉니다.

```
"arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-sonnet-4-5-20250929-v1:0"
```

IAM 콘솔에서 이 IAM 사용자의 액세스 키를 생성합니다. 다음 단계를 위해 액세스 키 ID 및 시크릿 액세스 키가 필요합니다.

### 3단계: 데이터베이스 권한 부여
<a name="Oracle.BedrockIntegration.Configuring.Step3"></a>

DBA로 연결하고 애플리케이션 사용자에게 필요한 권한을 부여합니다.

```
-- Grant EXECUTE on DBMS_CLOUD and DBMS_CLOUD_AI
GRANT EXECUTE ON DBMS_CLOUD TO {{db_user}};
GRANT EXECUTE ON DBMS_CLOUD_AI TO {{db_user}};
```

### 4단계: Bedrock 엔드포인트에 대한 네트워크 ACL 액세스 권한 부여
<a name="Oracle.BedrockIntegration.Configuring.Step4"></a>

데이터베이스 사용자 네트워크 ACL에 Bedrock 런타임 엔드포인트에 대한 액세스 권한을 부여합니다.

```
BEGIN
  DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
    host => 'bedrock-runtime.{{region}}.amazonaws.com',
    ace  => xs$ace_type(
              privilege_list => xs$name_list('http'),
              principal_name => '{{db_user}}',
              principal_type => xs_acl.ptype_db)
  );
END;
/
```

{{region}}을 AWS 리전(예: `us-east-1`)으로 바꾸고 {{db\_user}}를 Bedrock 모델을 간접적으로 호출할 Oracle 데이터베이스 사용자로 바꿉니다.

### 5단계: 데이터베이스에서 자격 증명 생성
<a name="Oracle.BedrockIntegration.Configuring.Step5"></a>

애플리케이션 사용자로 연결하고 `DBMS_CLOUD`를 사용하여 자격 증명 객체를 생성합니다.

```
BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'AWS_BEDROCK_CRED',
    username        => '{{your_AWS_access_key_id}}',
    password        => '{{your_AWS_secret_access_key}}'
  );
END;
/
```

### 6단계: Bedrock용 AI 프로필 생성
<a name="Oracle.BedrockIntegration.Configuring.Step6"></a>

자격 증명을 참조하고 AWS를 공급자로 지정하는 `DBMS_CLOUD_AI`를 사용하여 AI 프로필을 생성합니다.

```
BEGIN
  DBMS_CLOUD_AI.CREATE_PROFILE(
    profile_name => 'BEDROCK_PROFILE',
    attributes   => '{"provider": "aws",
      "credential_name": "AWS_BEDROCK_CRED",
      "model": "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
      "object_list": [{"owner": "{{schema}}", "name": "{{table1}}"},
                      {"owner": "{{schema}}", "name": "{{table2}}"}]
    }'
  );
END;
/
```

`us-east-1` 이외의 리전에서 Amazon Bedrock 런타임 엔드포인트를 사용하려면 프로필 속성 JSON에 `region` 및 `target_language` 속성을 포함합니다. `region`을 Amazon Bedrock 런타임 엔드포인트가 위치한 리전(예: `us-west-2`)으로 설정합니다.

`region`을 설정하는 경우 `target_language` 또는 `source_language`도 포함해야 합니다. `chat` 또는 `runsql`와 같이 번역을 사용하지 않는 작업의 경우에도 두 속성을 모두 설정해야 합니다.

`target_language` 값은 `translate` 작업에만 영향을 줍니다. `region` 없이 `target_language`만 포함하는 경우 프로필은 `bedrock-runtime.us-east-1.amazonaws.com`을 계속 사용합니다.

**참고**  
Oracle `DBMS_CLOUD_AI` 패키지의 알려진 제한으로 인해 `target_language`를 `region`과 함께 설정해야 합니다.

다음 예제에서는 `us-west-2` 리전을 사용하는 프로필을 생성합니다.

```
BEGIN
  DBMS_CLOUD_AI.CREATE_PROFILE(
    profile_name => 'BEDROCK_PROFILE_USW2',
    attributes   => '{"provider": "aws",
      "credential_name": "AWS_BEDROCK_CRED",
      "region": "us-west-2",
      "target_language": "en",
      "model": "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
      "object_list": [{"owner": "{{schema}}", "name": "{{table1}}"},
                      {"owner": "{{schema}}", "name": "{{table2}}"}]
    }'
  );
END;
/
```

`model` 속성을 명시적으로 지정해야 합니다. AWS 공급자에는 기본 모델이 제공되지 않습니다. 모델 ID는 다음 참조를 참조하세요.
+ 기본 모델: [Amazon Bedrock 기본 모델 ID](https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html)입니다.
+ 교차 리전 추론 프로필: [교차 리전 추론에 지원되는 리전 및 모델](https://docs.aws.amazon.com/bedrock/latest/userguide/cross-region-inference-support.html)입니다.
+ 프로비저닝된 처리량: 프로비저닝된 처리량의 ARN을 지정합니다.
+ 사용자 지정 모델: 프로비저닝된 처리량을 구매한 다음, 생성된 프로비저닝된 모델의 ARN을 지정합니다.

### Bedrock 통합 확인
<a name="Oracle.BedrockIntegration.Configuring.Verifying"></a>

간단한 프롬프트로 연결을 테스트합니다.

```
EXEC DBMS_CLOUD_AI.SET_PROFILE('BEDROCK_PROFILE');
SELECT AI chat what is Amazon RDS;
```

응답이 성공적으로 반환되면 Bedrock 통합이 올바르게 구성된 것입니다.

## Bedrock 통합 사용
<a name="Oracle.BedrockIntegration.Using"></a>

통합을 구성한 후 Select AI와 함께 SQL을 사용하여 Oracle 데이터베이스에서 Amazon Bedrock 파운데이션 모델을 간접적으로 호출할 수 있습니다.

`SELECT AI` 작업(`runsql`, `showsql`, `narrate`, `chat`, `explainsql`), `DBMS_CLOUD_AI.GENERATE` 함수, 멀티턴 대화, 검색 증강 생성(RAG)을 포함하여 Amazon Bedrock의 전체 사용 예제는 다음 Oracle 설명서를 참조하세요.
+ [Example: Select AI with AWS](https://docs.oracle.com/en/cloud/paas/autonomous-database/serverless/adbsb/select-ai-examples.html#GUID-A2B7D8BB-5CBF-49D4-B12C-8AB54BA7D0A2)
+ [Manage AI Profiles – Use AWS](https://docs.oracle.com/en/cloud/paas/autonomous-database/serverless/adbsb/select-ai-manage-profiles.html#GUID-B71D2617-F079-4982-A979-6C1C8C58B577)
+ [DBMS\_CLOUD\_AI Package Reference](https://docs.oracle.com/en/database/oracle/oracle-database/26/arpls/dbms_cloud_ai1.html)