Amazon Bedrock과 RDS for Oracle 통합
RDS for Oracle은 Amazon Bedrock과의 통합을 지원하므로 SQL을 사용하여 Oracle 데이터베이스에서 직접 파운데이션 모델을 간접적으로 호출할 수 있습니다. 이 통합을 통해 데이터베이스에서 데이터를 이동하지 않고도 텍스트 생성, 요약, 임베딩 생성과 같은 생성형 AI 기능을 사용할 수 있습니다.
참고
Amazon Bedrock 통합은 Oracle Database 26ai에서만 지원됩니다.
Bedrock 통합 요구 사항
Amazon Bedrock과 RDS for Oracle 통합을 사용하려면 다음 요구 사항을 충족해야 합니다.
데이터베이스 요구 사항
-
DB 인스턴스는 Oracle Database 26ai (26.0.0.0) 이상을 실행해야 합니다.
-
Bedrock 모델을 간접적으로 호출하는 데이터베이스 사용자는
DBMS_CLOUD및DBMS_CLOUD_AI패키지에 대한EXECUTE권한이 있어야 합니다. -
데이터베이스는 Bedrock 런타임 엔드포인트에 대한 아웃바운드 HTTPS 액세스를 허용하는 액세스 제어 항목(ACE)으로 구성되어야 합니다. 자세한 내용은 Bedrock 통합 구성 섹션을 참조하세요.
AWS 자격 증명 요구 사항
-
원하는 Amazon Bedrock 파운데이션 모델(
bedrock:InvokeModel및 선택적으로bedrock:InvokeModelWithResponseStream작업)을 간접적으로 호출할 권한이 있는 IAM 사용자 또는 역할이 있어야 합니다. -
Amazon Bedrock 콘솔을 사용하여 원하는 파운데이션 모델에 대한 액세스 권한을 요청하고 부여받아야 합니다. 자세한 내용은 Amazon Bedrock 사용 설명서의 Amazon Bedrock 파운데이션 모델 액세스를 참조하세요.
-
DBMS_CLOUD.CREATE_CREDENTIAL을 사용하여 IAM 자격 증명을 데이터베이스에 저장하려면 AWS 액세스 키(액세스 키 ID 및 시크릿 액세스 키)가 있어야 합니다.
Amazon VPC 네트워크 요구 사항
RDS for Oracle DB 인스턴스는 포트 443(HTTPS)의 Amazon Bedrock 런타임 엔드포인트(bedrock-runtime.)에 연결할 수 있어야 합니다. 이를 다음 중 한 가지 방법으로 달성할 수 있습니다.region.amazonaws.com
옵션 1: Amazon VPC 인터페이스 엔드포인트(AWS PrivateLink) – 권장
Amazon Bedrock 런타임 서비스에 대한 Amazon VPC 인터페이스 엔드포인트를 생성합니다. 이렇게 하면 AWS 네트워크 내에서 모든 트래픽이 비공개로 유지되며 인터넷 액세스가 필요하지 않습니다.
-
서비스 이름
com.amazonaws.을 사용하여 Amazon RDS 엔드포인트를 생성합니다.region.bedrock-runtime -
이 엔드포인트를 Amazon RDS DB 인스턴스와 동일한 Amazon VPC 및 서브넷(또는 DB 인스턴스 서브넷에 연결된 서브넷)에 배치합니다.
-
DB 인스턴스의 보안 그룹에서 인바운드 HTTPS(포트 443)를 허용하는 보안 그룹을 엔드포인트에 연결합니다.
-
표준 호스트 이름
bedrock-runtime.이 프라이빗 엔드포인트 IP 주소로 확인되도록 엔드포인트에 대해 프라이빗 DNS를 활성화합니다.region.amazonaws.com -
DB 인스턴스의 보안 그룹이 엔드포인트의 보안 그룹(또는 엔드포인트의 프라이빗 IP 주소)에 대한 아웃바운드 HTTPS(포트 443)를 허용하는지 확인합니다.
옵션 2: NAT 게이트웨이(인터넷 라우팅)
Amazon VPC 엔드포인트를 사용하지 않는 경우 DB 인스턴스의 서브넷에는 NAT 게이트웨이를 통해 인터넷으로 연결되는 경로가 있어야 합니다.
-
DB 인스턴스가 NAT 게이트웨이에 대한 경로가 있는 프라이빗 서브넷에 있는지 확인합니다.
-
NAT 게이트웨이는 인터넷 게이트웨이로 라우팅하는 경로가 있는 퍼블릭 서브넷에 있어야 합니다.
-
DB 인스턴스의 보안 그룹은
bedrock-runtime.에 대한 아웃바운드 HTTPS(포트 443)를 허용해야 합니다.region.amazonaws.com -
DB 인스턴스의 서브넷에 있는 모든 Amazon VPC 네트워크 ACL은 아웃바운드 TCP 443 및 해당 임시 인바운드 반환 트래픽(TCP 포트 1024–65535)을 허용해야 합니다.
다음 표에는 네트워크 경로가 요약되어 있습니다.
| 접근 방식 | 인터넷 액세스 필요 | 트래픽 경로 |
|---|---|---|
|
Amazon VPC 엔드포인트(AWS PrivateLink) |
아니요 |
DB 인스턴스 → Amazon VPC 엔드포인트 → Bedrock 서비스 |
|
NAT 게이트웨이 |
예(아웃바운드만 해당) |
DB 인스턴스 → NAT 게이트웨이 → 인터넷 게이트웨이 → Bedrock 서비스 |
Bedrock 통합 구성
RDS for Oracle DB 인스턴스에 대해 Amazon Bedrock 통합을 구성하려면 다음 단계를 완료합니다.
1단계: Amazon VPC 네트워크 연결 구성
Amazon VPC 네트워크 요구 사항에 설명된 네트워크 옵션 중 하나를 사용하여 DB 인스턴스가 Bedrock 런타임 엔드포인트에 도달할 수 있는지 확인합니다. 구성 후 연결을 확인하기 위해 이후 단계에서 데이터베이스에서 테스트할 수 있습니다.
2단계: Bedrock 권한으로 AWS 자격 증명 획득
다음 정책을 사용하여 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단계: 데이터베이스 권한 부여
DBA로 연결하고 애플리케이션 사용자에게 필요한 권한을 부여합니다.
-- Grant EXECUTE on DBMS_CLOUD and DBMS_CLOUD_AI GRANT EXECUTE ON DBMS_CLOUD TOdb_user; GRANT EXECUTE ON DBMS_CLOUD_AI TOdb_user;
4단계: Bedrock 엔드포인트에 대한 네트워크 ACL 액세스 권한 부여
데이터베이스 사용자 네트워크 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단계: 데이터베이스에서 자격 증명 생성
애플리케이션 사용자로 연결하고 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 프로필 생성
자격 증명을 참조하고 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입니다.
-
교차 리전 추론 프로필: 교차 리전 추론에 지원되는 리전 및 모델입니다.
-
프로비저닝된 처리량: 프로비저닝된 처리량의 ARN을 지정합니다.
-
사용자 지정 모델: 프로비저닝된 처리량을 구매한 다음, 생성된 프로비저닝된 모델의 ARN을 지정합니다.
Bedrock 통합 확인
간단한 프롬프트로 연결을 테스트합니다.
EXEC DBMS_CLOUD_AI.SET_PROFILE('BEDROCK_PROFILE'); SELECT AI chat what is Amazon RDS;
응답이 성공적으로 반환되면 Bedrock 통합이 올바르게 구성된 것입니다.
Bedrock 통합 사용
통합을 구성한 후 Select AI와 함께 SQL을 사용하여 Oracle 데이터베이스에서 Amazon Bedrock 파운데이션 모델을 간접적으로 호출할 수 있습니다.
SELECT
AI 작업(runsql, showsql, narrate, chat, explainsql), DBMS_CLOUD_AI.GENERATE 함수, 멀티턴 대화, 검색 증강 생성(RAG)을 포함하여 Amazon Bedrock의 전체 사용 예제는 다음 Oracle 설명서를 참조하세요.