Amazon RDS Custom for Oracle을 위한 환경 설정 - Amazon Relational Database Service

Amazon RDS Custom for Oracle을 위한 환경 설정

Amazon RDS Custom for Oracle DB 인스턴스를 생성하기 전에 다음 태스크를 수행해야 합니다.

1단계: 대칭 암호화 AWS KMS 키 생성 또는 재사용

고객 관리형 키는 사용자가 생성, 소유 및 관리하는 AWS 계정의 AWS KMS keys입니다. 고객 관리형 대칭 암호화 KMS 키는 RDS Custom에 필수입니다. RDS Custom for Oracle DB 인스턴스를 생성할 때 KMS 키 식별자를 제공해야 합니다. 자세한 내용은 Amazon RDS Custom for Oracle용 DB 인스턴스 구성 단원을 참조하세요.

다음과 같은 옵션이 있습니다:

  • 기존에 AWS 계정에 고객 관리형 KMS 키가 있는 경우 RDS Custom과 함께 사용할 수 있습니다. 별도로 조치를 취할 필요가 없습니다.

  • 다른 RDS Custom 엔진에 대해 고객 관리형 대칭 암호화 KMS 키를 이미 생성한 경우 동일한 KMS 키를 재사용할 수 있습니다. 별도로 조치를 취할 필요가 없습니다.

  • 계정에 사용 중이던 고객 관리형 대칭 암호화 KMS 키가 없는 경우 AWS Key Management Service 개발자 가이드키 생성 지침에 따라 KMS 키를 생성합니다.

  • CEV 또는 RDS Custom DB 인스턴스를 생성하고 있으며 KMS 키가 다른 AWS 계정에 있는 경우 반드시 AWS CLI를 사용해야 합니다. 교차 계정 KMS 키에는 AWS 콘솔을 사용할 수 없습니다.

중요

RDS Custom은 AWS 관리형 KMS 키를 지원하지 않습니다.

사용하는 대칭 암호화 키는 kms:Decryptkms:GenerateDataKey 작업에 액세스할 수 있는 권한을 IAM 인스턴스 프로파일의 AWS Identity and Access Management(IAM) 역할에 제공해야 합니다. 계정에 대칭 암호화 키를 새로 사용하는 경우에는 변경할 필요가 없습니다. 아니면 대칭 암호화 키의 정책이 이러한 작업에 액세스할 권한을 부여할 수 있는지 확인하세요.

자세한 내용은 4단계: RDS Custom for Oracle의 IAM 구성 섹션을 참조하세요.

RDS Custom for Oracle의 IAM 구성에 대한 자세한 내용은 4단계: RDS Custom for Oracle의 IAM 구성 섹션을 참조하세요.

2단계: AWS CLI 다운로드 및 설치

AWS에서는 RDS Custom 기능을 사용할 수 있는 명령줄 인터페이스를 제공합니다. AWS CLI의 버전 1 또는 버전 2를 사용할 수 있습니다.

AWS CLI 다운로드 및 설치에 대한 내용은 AWS CLI의 최신 버전 설치 또는 업데이트를 참조하세요.

다음 중 하나에 해당하는 경우 이 단계를 건너뜁니다.

  • AWS Management Console에서만 RDS Custom에 액세스하려는 경우.

  • Amazon RDS용 AWS CLI 또는 다른 RDS Custom DB 엔진을 이미 다운로드한 경우.

3단계: RDS Custom for Oracle용 CloudFormation 템플릿 추출

설정을 간소화하려면 AWS CloudFormation 템플릿을 사용하여 CloudFormation 스택을 만드는 것이 좋습니다. IAM과 VPC를 수동으로 구성하려면 이 단계를 건너뜁니다.

3a단계: CloudFormation 템플릿 파일 다운로드

CloudFormation 템플릿이란 스택을 구성하는 AWS 리소스의 선언입니다. 템플릿은 JSON 파일로 저장됩니다.

CloudFormation 템플릿 파일을 다운로드하려면
  1. custom-oracle-iam.zip 링크의 컨텍스트 메뉴(마우스 오른쪽 버튼 클릭)를 열고 다른 이름으로 링크 저장을 선택합니다.

  2. 파일을 컴퓨터에 저장합니다.

  3. custom-vpc.zip 링크에 대해 이전 단계를 반복합니다.

    RDS Custom의 VPC를 이미 구성한 경우 이 단계를 건너뜁니다.

3b단계: custom-oracle-iam.json 추출

다운로드한 custom-oracle-iam.zip 파일을 연 다음 custom-oracle-iam.json 파일을 추출합니다. 파일의 시작 부분은 다음과 같습니다.

{ "AWSTemplateFormatVersion": "2010-09-09", "Parameters": { "EncryptionKey": { "Type": "String", "Default": "*", "Description": "KMS Key ARN for encryption of data managed by RDS Custom and by DB Instances." } }, "Resources": { "RDSCustomInstanceServiceRole": { "Type": "AWS::IAM::Role", "Properties": { "RoleName": { "Fn::Sub": "AWSRDSCustomInstanceRole-${AWS::Region}" }, "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" } } ] },...

3c단계: custom-vpc.json 추출

참고

기존 RDS Custom for Oracle용 VPC를 이미 구성한 경우 이 단계를 건너뜁니다. 자세한 내용은 수동으로 RDS Custom for Oracle용 VPC 구성 섹션을 참조하세요.

다운로드한 custom-vpc.zip 파일을 연 다음 custom-vpc.json 파일을 추출합니다. 파일의 시작 부분은 다음과 같습니다.

{ "AWSTemplateFormatVersion": "2010-09-09", "Parameters": { "PrivateVpc": { "Type": "AWS::EC2::VPC::Id", "Description": "Private VPC Id to use for RDS Custom DB Instances" }, "PrivateSubnets": { "Type": "List<AWS::EC2::Subnet::Id>", "Description": "Private Subnets to use for RDS Custom DB Instances" }, "RouteTable": { "Type": "String", "Description": "Route Table that must be associated with the PrivateSubnets and used by S3 VPC Endpoint", "AllowedPattern": "rtb-[0-9a-z]+" } }, "Resources": { "DBSubnetGroup": { "Type": "AWS::RDS::DBSubnetGroup", "Properties": { "DBSubnetGroupName": "rds-custom-private", "DBSubnetGroupDescription": "RDS Custom Private Network", "SubnetIds": { "Ref": "PrivateSubnets" } } },...

4단계: RDS Custom for Oracle의 IAM 구성

IAM 역할 또는 IAM 사용자(IAM 엔터티라고 함)를 사용하여 콘솔 또는 AWS CLI를 사용하는 RDS Custom DB 인스턴스를 생성할 수 있습니다. 이 IAM 엔터티에는 인스턴스를 생성하는 데 필요한 권한이 있어야 합니다.

CloudFormation 또는 수동 단계를 사용하여 IAM을 구성할 수 있습니다.

중요

AWS CloudFormation을 사용하여 RDS Custom for Oracle 환경을 구성하는 것이 좋습니다. 이 방법은 가장 쉽고 오류가 가장 적습니다.

CloudFormation을 사용하여 IAM 구성

IAM에 CloudFormation 템플릿을 사용할 경우, 다음과 같은 필수 리소스가 생성됩니다.

  • 이름이 AWSRDSCustomInstanceProfile-region인 인스턴스 프로파일

  • AWSRDSCustomInstanceRole-region이라는 서비스 역할

  • 서비스 역할에 연결된 AWSRDSCustomIamRolePolicy라는 이름의 액세스 정책

CloudFormation을 사용하여 IAM을 구성하는 방법
  1. https://console.aws.amazon.com/cloudformation에서 CloudFormation 콘솔을 엽니다.

  2. 스택 생성 마법사를 시작하고 Create Stack(스택 생성)을 선택합니다.

  3. Create stack(스택 생성) 페이지에서 다음을 수행합니다.

    1. Prepare template(템플릿 준비)에서 Template is ready(템플릿 준비가 완료되었습니다)를 선택합니다.

    2. Template source(템플릿 소스)로 Upload a template file(템플릿 파일 업로드)을 선택합니다.

    3. 파일 선택의 경우 custom-oracle-iam.json을 찾아 선택합니다.

    4. Next(다음)를 선택합니다.

  4. 스택 세부 정보 지정 페이지에서 다음 작업을 수행합니다.

    1. Stack name(스택 이름)에 custom-oracle-iam을 입력합니다.

    2. Next(다음)를 선택합니다.

  5. 스택 옵션 구성 페이지에서 다음을 선택합니다.

  6. custom-oracle-iam 검토 페이지에서 다음을 수행합니다.

    1. 사용자 지정 이름을 사용하여 AWS CloudFormation이 IAM 리소스를 생성할 수 있음에 동의합니다 확인란을 선택합니다.

    2. Submit(제출)을 선택합니다.

    CloudFormation은 RDS Custom for Oracle에 필요한 IAM 역할을 생성합니다. 왼쪽 패널의 custom-oracle-iamCREATE_COMPLETE이 표시되면 다음 단계를 진행합니다.

  7. 왼쪽 패널에서 custom-oracle-iam을 선택합니다. 오른쪽 패널에서 다음을 수행합니다.

    1. 스택 정보를 선택합니다. 스택에는 arn:aws:cloudformation:region:account-no:stack/custom-oracle-iam/identifier 형식으로 된 ID가 있습니다.

    2. 리소스를 선택합니다. 다음과 같은 모양이어야 합니다.

      • AWSRDSCustomInstanceProfile-region이라는 이름의 인스턴스 프로파일

      • AWSRDSCustomInstanceRole-region이라는 이름의 서비스 역할

      RDS Custom DB 인스턴스를 생성할 경우 인스턴스 프로파일 ID를 제공해야 합니다.

수동으로 IAM 역할과 인스턴스 프로파일 생성

CloudFormation을 사용하는 방법이 가장 쉽습니다. 하지만 IAM을 수동으로도 구성할 수 있습니다. 수동으로 설정하려면 다음을 수행합니다.

1단계: IAM 역할 AWSRDSCustomInstanceRoleForRdsCustomInstance 생성

이 단계에서는 이름 지정 형식을 사용하여 역할을 생성합니다AWSRDSCustomInstanceRole-region. Amazon EC2에서는 신뢰 정책을 사용하여 역할을 위임할 수 있습니다. 다음 예시에서는 DB 인스턴스를 생성하려는 환경 변수 $REGION을 AWS 리전으로 설정했다고 가정합니다.

aws iam create-role \ --role-name AWSRDSCustomInstanceRole-$REGION \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Action": "sts:AssumeRole", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" } } ] }'

2단계: AWSRDSCustomInstanceRoleForRdsCustomInstance에 액세스 정책 추가

인라인 정책을 IAM 역할에 포함시켰을 때 인라인 정책은 역할의 액세스(권한) 정책의 일환으로 사용됩니다. 사용자는 Amazon EC2가 메시지를 보내고 받으며 다양한 작업을 수행할 수 있도록 허용하는 AWSRDSCustomIamRolePolicy 정책을 생성하게 됩니다.

다음 예제에서는 이름이 AWSRDSCustomIamRolePolicy인 액세스 정책을 생성하여 AWSRDSCustomInstanceRole-region IAM 역할에 추가합니다. 이 예제에서는 다음과 같은 환경 변수를 설정했다고 가정합니다.

$REGION

이 변수를 DB 인스턴스를 생성할 AWS 리전으로 설정합니다.

$ACCOUNT_ID

이 변수를 사용자의 AWS 계정 번호로 설정합니다.

$KMS_KEY

이 변수를 RDS Custom DB 인스턴스에 사용할 AWS KMS key의 Amazon 리소스 이름(ARN)으로 설정합니다. 두 개 이상의 KMS 키를 지정하려면 문 ID(시드) 11의 Resources 섹션에 추가합니다.

aws iam put-role-policy \ --role-name AWSRDSCustomInstanceRole-$REGION \ --policy-name AWSRDSCustomIamRolePolicy \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "1", "Effect": "Allow", "Action": [ "ssm:DescribeAssociation", "ssm:GetDeployablePatchSnapshotForInstance", "ssm:GetDocument", "ssm:DescribeDocument", "ssm:GetManifest", "ssm:GetParameter", "ssm:GetParameters", "ssm:ListAssociations", "ssm:ListInstanceAssociations", "ssm:PutInventory", "ssm:PutComplianceItems", "ssm:PutConfigurePackageResult", "ssm:UpdateAssociationStatus", "ssm:UpdateInstanceAssociationStatus", "ssm:UpdateInstanceInformation", "ssm:GetConnectionStatus", "ssm:DescribeInstanceInformation", "ssmmessages:CreateControlChannel", "ssmmessages:CreateDataChannel", "ssmmessages:OpenControlChannel", "ssmmessages:OpenDataChannel" ], "Resource": [ "*" ] }, { "Sid": "2", "Effect": "Allow", "Action": [ "ec2messages:AcknowledgeMessage", "ec2messages:DeleteMessage", "ec2messages:FailMessage", "ec2messages:GetEndpoint", "ec2messages:GetMessages", "ec2messages:SendReply" ], "Resource": [ "*" ] }, { "Sid": "3", "Effect": "Allow", "Action": [ "logs:PutRetentionPolicy", "logs:PutLogEvents", "logs:DescribeLogStreams", "logs:DescribeLogGroups", "logs:CreateLogStream", "logs:CreateLogGroup" ], "Resource": [ "arn:aws:logs:'$REGION':'$ACCOUNT_ID':log-group:rds-custom-instance*" ] }, { "Sid": "4", "Effect": "Allow", "Action": [ "s3:putObject", "s3:getObject", "s3:getObjectVersion" ], "Resource": [ "arn:aws:s3:::do-not-delete-rds-custom-*/*" ] }, { "Sid": "5", "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData" ], "Resource": [ "*" ], "Condition": { "StringEquals": { "cloudwatch:namespace": [ "RDSCustomForOracle/Agent" ] } } }, { "Sid": "6", "Effect": "Allow", "Action": [ "events:PutEvents" ], "Resource": [ "*" ] }, { "Sid": "7", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": [ "arn:aws:secretsmanager:'$REGION':'$ACCOUNT_ID':secret:do-not-delete-rds-custom-*" ] }, { "Sid": "8", "Effect": "Allow", "Action": [ "s3:ListBucketVersions" ], "Resource": [ "arn:aws:s3:::do-not-delete-rds-custom-*" ] }, { "Sid": "9", "Effect": "Allow", "Action": "ec2:CreateSnapshots", "Resource": [ "arn:aws:ec2:*:*:instance/*", "arn:aws:ec2:*:*:volume/*" ], "Condition": { "StringEquals": { "ec2:ResourceTag/AWSRDSCustom": "custom-oracle" } } }, { "Sid": "10", "Effect": "Allow", "Action": "ec2:CreateSnapshots", "Resource": [ "arn:aws:ec2:*::snapshot/*" ] }, { "Sid": "11", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:'$REGION':'$ACCOUNT_ID':key/'$KMS_KEY'" ] }, { "Sid": "12", "Effect": "Allow", "Action": "ec2:CreateTags", "Resource": "*", "Condition": { "StringLike": { "ec2:CreateAction": [ "CreateSnapshots" ] } } } ] }'

3단계: RDS Custom 인스턴스 프로파일 AWSRDSCustomInstanceProfile 생성

인스턴스 프로파일은 단일 IAM 역할을 포함하는 컨테이너입니다. RDS Custom은 인스턴스 프로파일을 사용하여 인스턴스에 역할을 전달합니다.

CLI를 사용하여 역할을 생성하면 역할과 인스턴스 프로파일이 별개의 작업으로 생성되며 이름은 각각 다를 수 있습니다. 다음과 같이 IAM 인스턴스 프로파일을 생성하고 AWSRDSCustomInstanceProfile-region 형식을 사용하여 이름을 지정합니다. 다음 예시에서는 DB 인스턴스를 생성하려는 환경 변수 $REGION을 AWS 리전으로 설정했다고 가정합니다.

aws iam create-instance-profile \ --instance-profile-name AWSRDSCustomInstanceProfile-$REGION

4단계: AWSRDSCustomInstanceRoleForRdsCustomInstance를 AWSRDSCustomInstanceProfile에 추가

이전에 생성한 인스턴스 프로파일에 IAM 역할을 추가합니다. 다음 예시에서는 DB 인스턴스를 생성하려는 환경 변수 $REGION을 AWS 리전으로 설정했다고 가정합니다.

aws iam add-role-to-instance-profile \ --instance-profile-name AWSRDSCustomInstanceProfile-$REGION \ --role-name AWSRDSCustomInstanceRole-$REGION

5단계: IAM 사용자 또는 역할에 필요한 권한 부여

CEV 또는 RDS Custom DB 인스턴스를 생성하는 IAM 보안 주체(사용자 또는 역할)에는 다음 정책 중 하나가 있어야 합니다.

  • AdministratorAccess 정책

  • Amazon S3 및 AWS KMS, CEV 생성 및 DB 인스턴스 생성에 필요한 권한이 있는 AmazonRDSFullAccess 정책

Amazon S3 및 AWS KMS에 필요한 IAM 권한

CEV 또는 RDS Custom for Oracle DB 인스턴스를 생성하려면 IAM 보안 주체가 Amazon S3 및 AWS KMS에 액세스해야 합니다. 다음 샘플 JSON 정책은 필요한 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateS3Bucket", "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:PutBucketPolicy", "s3:PutBucketObjectLockConfiguration", "s3:PutBucketVersioning" ], "Resource": "arn:aws:s3:::do-not-delete-rds-custom-*" }, { "Sid": "CreateKmsGrant", "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*" } ] }

kms:CreateGrant 권한에 대한 자세한 내용은 AWS KMS key 관리 섹션을 참조하세요.

CEV를 생성하는 데 필요한 IAM 권한

CEV를 생성하려면 IAM 보안 주체는 다음과 같은 추가 권한이 필요합니다.

s3:GetObjectAcl s3:GetObject s3:GetObjectTagging s3:ListBucket mediaimport:CreateDatabaseBinarySnapshot

다음 샘플 JSON 정책은 my-custom-installation-files 버킷 및 내용에 액세스하는 데 필요한 추가 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AccessToS3MediaBucket", "Effect": "Allow", "Action": [ "s3:GetObjectAcl", "s3:GetObject", "s3:GetObjectTagging", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::my-custom-installation-files", "arn:aws:s3:::my-custom-installation-files/*" ] }, { "Sid": "PermissionForByom", "Effect": "Allow", "Action": [ "mediaimport:CreateDatabaseBinarySnapshot" ], "Resource": "*" } ] }

S3 버킷 정책을 사용하여 발신자 계정에 Amazon S3에 대해 유사한 권한을 부여할 수 있습니다.

CEV에서 DB 인스턴스를 생성하는 데 필요한 IAM 권한

기존 CEV에서 RDS Custom for Oracle DB 인스턴스를 생성하려면 IAM 보안 주체에 다음과 같은 추가 권한이 필요합니다.

iam:SimulatePrincipalPolicy cloudtrail:CreateTrail cloudtrail:StartLogging

다음 샘플 JSON 정책은 IAM 역할 및 로그 정보를 검증하는 데 필요한 권한을 AWS CloudTrail에 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ValidateIamRole", "Effect": "Allow", "Action": "iam:SimulatePrincipalPolicy", "Resource": "*" }, { "Sid": "CreateCloudTrail", "Effect": "Allow", "Action": [ "cloudtrail:CreateTrail", "cloudtrail:StartLogging" ], "Resource": "arn:aws:cloudtrail:*:*:trail/do-not-delete-rds-custom-*" } ] }

6단계: RDS Custom for Oracle용 VPC 구성

RDS Custom DB 인스턴스는 Amazon EC2 인스턴스 또는 Amazon RDS 인스턴스와 마찬가지로 Amazon VPC 서비스를 기반으로 하는 Virtual Private Cloud(VPC)에 있습니다. 자체 VPC를 제공하고 구성해야 RDS Custom for SQL Server와 달리, RDS Custom for Oracle은 액세스 제어 목록이나 보안 그룹을 생성하지 않습니다. 사용자의 자체 보안 그룹, 서브넷, 라우팅 테이블을 연결해야 합니다.

CloudFormation 또는 수동 프로세스를 사용하여 Virtual Private Cloud(VPC)를 구성할 수 있습니다.

중요

AWS CloudFormation을 사용하여 RDS Custom for Oracle 환경을 구성하는 것이 좋습니다. 이 방법은 가장 쉽고 오류가 가장 적습니다.

CloudFormation을 사용하여 VPC 구성(권장)

다른 RDS Custom 엔진의 VPC를 이미 구성했고 기존 VPC를 재사용하려는 경우 이 단계를 건너뜁니다. 이 섹션에서는 다음과 같이 가정합니다.

  • 기존에 CloudFormation을 사용하여 IAM 인스턴스 프로파일과 역할을 생성했습니다.

  • 라우팅 테이블 ID를 알고 있습니다.

    DB 인스턴스가 프라이빗 인스턴스가 되려면 프라이빗 서브넷에 있어야 합니다. 서브넷이 프라이빗이 되려면 기본 인터넷 게이트웨이가 있는 라우팅 테이블과 연결되어 있지 않아야 합니다. 자세한 내용은 Amazon VPC 사용 설명서라우팅 테이블 구성을 참조하세요.

VPC에 CloudFormation 템플릿을 사용할 경우 다음과 같은 리소스가 생성됩니다.

  • 프라이빗 VPC

  • 이름이 rds-custom-private인 서브넷 그룹

  • DB 인스턴스가 종속 AWS 서비스와 통신하는 데 사용하는 다음 VPC 엔드포인트:

    • com.amazonaws.region.ec2messages

    • com.amazonaws.region.events

    • com.amazonaws.region.logs

    • com.amazonaws.region.monitoring

    • com.amazonaws.region.s3

    • com.amazonaws.region.secretsmanager

    • com.amazonaws.region.ssm

    • com.amazonaws.region.ssmmessages

    참고

    기존 계정을 사용하는 복잡한 네트워킹 설정의 경우 액세스 권한이 아직 없다면 종속 서비스에 대한 액세스를 수동으로 구성하는 것이 좋습니다. 자세한 내용은 VPC가 종속 AWS 서비스에 액세스할 수 있는지 확인 섹션을 참조하세요.

CloudFormation을 사용하여 VPC를 구성하는 방법
  1. https://console.aws.amazon.com/cloudformation에서 CloudFormation 콘솔을 엽니다.

  2. 스택 생성 마법사를 시작하고 스택 생성을 선택한 다음, 새 리소스 사용(표준)을 선택합니다.

  3. Create stack(스택 생성) 페이지에서 다음을 수행합니다.

    1. Prepare template(템플릿 준비)에서 Template is ready(템플릿 준비가 완료되었습니다)를 선택합니다.

    2. Template source(템플릿 소스)로 Upload a template file(템플릿 파일 업로드)을 선택합니다.

    3. 파일 선택(Choose file)에서 custom-vpc.json을 찾아 선택합니다.

    4. Next(다음)를 선택합니다.

  4. 스택 세부 정보 지정 페이지에서 다음 작업을 수행합니다.

    1. Stack name(스택 이름)에 custom-vpc를 입력합니다.

    2. 파라미터(Parameters)로 RDS Custom DB 인스턴스에 사용할 프라이빗 서브넷을 선택합니다.

    3. RDS Custom DB 인스턴스에 사용할 프라이빗 VPC ID를 선택합니다.

    4. 프라이빗 서브넷과 연결된 라우팅 테이블을 입력합니다.

    5. Next(다음)를 선택합니다.

  5. Configure stack options(스택 옵션 구성) 페이지에서 Next(다음)를 선택합니다.

  6. custom-vpc 검토 페이지에서 제출을 선택합니다.

    CloudFormation은 프라이빗 VPC를 구성합니다. 왼쪽 패널의 custom-vpcCREATE_COMPLETE이 표시되면 다음 단계를 진행합니다.

  7. (선택 사항) VPC 세부 정보를 검토합니다. 스택 창에서 custom-vpc를 선택합니다. 오른쪽 창에서 다음을 수행합니다.

    1. 스택 정보를 선택합니다. 스택에는 arn:aws:cloudformation:region:account-no:stack/custom-vpc/identifier 형식으로 된 ID가 있습니다.

    2. 리소스를 선택합니다. rds-custom-private이라는 이름의 서브넷 그룹, 그리고 vpce-string이라는 이름 지정 형식을 사용하는 몇몇 VPC 엔드포인트가 표시되어야 합니다. 각 엔드포인트는 RDS Custom이 통신을 수행해야 하는 AWS 서비스에 해당합니다. 자세한 내용은 VPC가 종속 AWS 서비스에 액세스할 수 있는지 확인 섹션을 참조하세요.

    3. 파라미터를 선택합니다. 스택을 생성했을 때 지정한 프라이빗 서브넷, 프라이빗 VPC, 라우팅 테이블이 표시되어야 합니다. DB 인스턴스를 생성할 경우, VPC ID 및 서브넷 그룹을 제공해야 합니다.

수동으로 RDS Custom for Oracle용 VPC 구성

AWS CloudFormation을 사용하여 VPC 생성을 자동화하지 않고 VPC를 수동으로 구성할 수 있습니다. 이 옵션은 기존 리소스를 사용하는 복잡한 네트워킹 설정이 있는 경우에 가장 적합할 수 있습니다.

VPC가 종속 AWS 서비스에 액세스할 수 있는지 확인

RDS Custom은 DB 인스턴스에서 다른 AWS 서비스로 통신을 전송합니다. RDS Custom for Oracle DB 인스턴스를 생성하는 서브넷에서 다음 서비스에 액세스할 수 있는지 확인합니다.

  • Amazon CloudWatch

  • Amazon CloudWatch Logs

  • Amazon CloudWatch Events

  • Amazon EC2

  • Amazon EventBridge

  • Amazon S3

  • AWS Secrets Manager

  • AWS Systems Manager

위 AWS 서비스에 대한 액세스 권한이 없는 경우 다음 VPC 엔드포인트를 구성합니다.

  • com.amazonaws.region.ec2messages

  • com.amazonaws.region.events

  • com.amazonaws.region.logs

  • com.amazonaws.region.monitoring

  • com.amazonaws.region.s3

  • com.amazonaws.region.secretsmanager

  • com.amazonaws.region.ssmmessages

필요한 서비스와 RDS Custom이 통신할 수 없는 경우 다음 이벤트가 게시됩니다.

Database instance in incompatible-network. SSM Agent connection not available. Amazon RDS can't connect to the dependent AWS services.

incompatible-network 오류를 방지하려면 RDS Custom DB 인스턴스와 AWS 서비스 간의 통신과 관련된 VPC 구성 요소가 다음 요구 사항을 충족하는지 확인합니다.

  • DB 인스턴스는 포트 443에서 다른 AWS 서비스로 아웃바운드 연결을 생성할 수 있습니다.

  • VPC는 RDS Custom DB 인스턴스에서 시작된 요청에 대한 수신 응답을 허용합니다.

  • RDS Custom는 각 AWS 서비스에 대한 엔드포인트의 도메인 이름을 정확하게 확인할 수 있습니다.

RDS Custom은 자동화에 AWS Systems Manager 연결을 사용합니다. VPC 엔드포인트를 구성하는 방법에 대한 자세한 내용은 Systems Manager용 VPC 엔드포인트 생성을 참조하세요. 각 리전의 엔드포인트 목록은 Amazon Web Services 일반 참조에서 AWS Systems Manager 엔드포인트 및 할당량을 참조하세요.

다른 RDS Custom DB 엔진의 VPC를 이미 구성한 경우 해당 VPC를 재사용하고 이 프로세스를 건너뛸 수 있습니다.

인스턴스 메타데이터 서비스 구성

인스턴스가 다음을 수행할 수 있는지 확인하세요.

  • 인스턴스 메타데이터 서비스 버전 2(IMDSv2)를 사용하여 인스턴스 메타데이터 서비스에 액세스합니다.

  • 포트 80(HTTP)을 통한 IMDS 링크 IP 주소로의 아웃바운드 통신을 허용합니다.

  • IMDSv2 링크인 http://169.254.169.254에서 인스턴스 메타데이터를 요청합니다.

자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서IMDSv2 사용을 참조하세요.

RDS Custom for Oracle 자동화는 기본 Amazon EC2 인스턴스에서 HttpTokens=enabled를 설정하여 기본적으로 IMDSv2를 사용합니다. 하지만 필요할 경우 IMDSv1을 사용할 수 있습니다. 자세한 내용은 Linux 인스턴스용 Amazon EC2 사용 설명서인스턴스 메타데이터 옵션 구성을 참조하세요.