

# Amazon Bedrock と RDS for Oracle の統合
<a name="Oracle.BedrockIntegration"></a>

RDS for Oracle は Amazon Bedrock との統合をサポートしているため、SQL を使用して Oracle Database から直接基盤モデルを呼び出すことができます。この統合により、データベースからデータを移動することなく、テキスト生成、要約、埋め込み生成などの生成 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 ID の 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 VPC インターフェイスエンドポイントを作成します。

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 ユーザーまたはロールを作成します (または既存の ID にアタッチします)。

```
{
  "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 Database ユーザーに置き換えます。

### ステップ 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>

`DBMS_CLOUD_AI` を使用して、認証情報を参照し、プロバイダーとして AWS を指定する 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 Database から 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)