Amazon RDS Custom for Oracle용 DB 인스턴스 구성 - Amazon Relational Database Service

Amazon RDS Custom for Oracle용 DB 인스턴스 구성

RDS Custom DB 인스턴스를 생성한 다음 Secure Shell(SSH) 또는 AWS Systems Manager를 사용하여 연결할 수 있습니다.

멀티테넌트 아키텍처 고려 사항

멀티테넌트 아키텍처(custom-oracle-ee-cdb 엔진 유형)를 사용하여 Amazon RDS Custom for Oracle DB 인스턴스를 생성하는 경우 데이터베이스는 컨테이너 데이터베이스(CDB)입니다. 멀티테넌트 아키텍처를 지정하지 않는 경우 데이터베이스는 custom-oracle-ee 엔진 유형을 사용하는 기존의 비 CDB입니다. 비 CDB에는 플러그형 데이터베이스(PDB)가 포함될 수 없습니다. 자세한 내용은 Amazon RDS Custom for Oracle 데이터베이스 아키텍처 섹션을 참조하세요.

RDS Custom for Oracle CDB 인스턴스를 생성할 때는 다음 사항을 고려하세요.

  • Oracle Database 19c CEV에서만 멀티테넌트 데이터베이스를 생성할 수 있습니다.

  • CEV가 custom-oracle-ee-cdb 엔진 유형을 사용하는 경우에만 CDB 인스턴스를 만들 수 있습니다.

  • 기본적으로 CDB의 이름은 RDSCDB이며, 이는 Oracle 시스템 ID(Oracle SID)의 이름이기도 합니다. 다른 이름으로 변경할 수 있습니다.

  • CDB에는 초기 PDB가 하나만 있습니다. PDB 이름의 기본값은 ORCL입니다. 첫 PDB에 다른 이름을 선택할 수도 있지만, Oracle SID와 PDB 이름은 같으면 안 됩니다.

  • RDS Custom for Oracle은 PDB용 API를 제공하지 않습니다. 추가 PDB를 생성하려면 Oracle SQL 명령 CREATE PLUGGABLE DATABASE를 사용합니다. RDS Custom for Oracle은 생성할 수 있는 PDB 수를 제한하지 않습니다. 일반적으로 온프레미스 배포에서와 마찬가지로 PDB를 생성하고 관리하는 것은 사용자의 책임입니다.

  • RDS API를 사용하여 PDB를 생성, 수정 및 삭제할 수 없습니다. Oracle SQL 문을 사용해야 합니다. Oracle SQL로 PDB를 생성할 때 시점 복구(PITR)를 수행해야 하는 경우에 대비하여 나중에 수동 스냅샷을 생성하는 것이 좋습니다.

  • 기존 PDB의 이름은 Amazon RDS API를 사용하여 변경할 수 없습니다. modify-db-instance 명령을 사용하여 CDB의 이름을 바꿀 수도 없습니다.

  • CDB 루트의 열기 모드는 기본 데이터베이스에서는 READ WRITE이고 탑재된 대기 데이터베이스에서는 MOUNTED입니다. RDS Custom for Oracle은 CDB를 열 때 모든 PDB를 열려고 시도합니다. RDS Custom for Oracle이 일부 PDB를 열 수 없는 경우 tenant database shutdown 이벤트가 발생합니다.

RDS Custom for Oracle DB 인스턴스 생성

AWS Management Console 또는 AWS CLI를 사용하여 Oracle DB 인스턴스용 Amazon RDS Custom을 생성할 수 있습니다. 생성 절차는 Amazon RDS DB 인스턴스를 생성하는 절차와 유사합니다. 자세한 내용은 Amazon RDS DB 인스턴스 생성 섹션을 참조하세요.

CEV 매니페스트에 설치 파라미터를 포함시킨 경우 DB 인스턴스는 지정한 Oracle base, Oracle home, UNIX/Linux 사용자 및 그룹의 ID와 이름을 사용합니다. 설치 중에 Oracle Database에서 생성되는 oratab 파일은 심볼 링크가 아닌 실제 설치 위치를 가리킵니다. RDS Custom for Oracle은 명령을 실행할 때 기본 사용자 rdsdb가 아닌 구성된 OS 사용자로 실행합니다. 자세한 내용은 5단계: CEV 매니페스트 준비 섹션을 참조하세요.

RDS Custom DB 인스턴스를 생성하거나 RDS Custom DB 인스턴스에 연결하려면 먼저 Amazon RDS Custom for Oracle을 위한 환경 설정 섹션에 나와 있는 작업을 완료하세요.

RDS Custom for Oracle DB 인스턴스를 생성하는 방법
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 Databases(데이터베이스)를 선택합니다.

  3. 데이터베이스 생성을 선택합니다.

  4. 데이터베이스 생성 방법 선택(Choose a database creation method)에서 표준 생성(Standard Create)을 선택합니다.

  5. 엔진 옵션) 섹션에서 다음과 같이 실행합니다.

    1. 엔진 유형(Engine type)으로 Oracle을 선택합니다.

    2. 데이터베이스 관리 유형(Database management type)에서 Amazon RDS Custom을 선택합니다.

    3. 아키텍처 설정에서 다음 중 하나를 수행합니다.

      • 멀티테넌트 아키텍처를 선택하여 컨테이너 데이터베이스(CDB)를 생성합니다. 생성 시 CDB에는 PDB 시드와 초기 PDB가 하나씩 포함됩니다.

        참고

        멀티테넌트 아키텍처 설정은 Oracle Database 19c에만 지원됩니다.

      • 비 CDB를 생성하려면 멀티테넌트 아키텍처를 지웁니다. 비 CDB에는 PDB가 포함될 수 없습니다.

    4. Edition(버전)에서 Oracle Enterprise Edition을 선택합니다.

    5. 사용자 지정 엔진 버전의 경우 RDS Custom의 기존 사용자 지정 엔진 버전(CEV)을 선택합니다. CEV의 형식은 major-engine-version.customized_string입니다. 예제 식별자는 19.cdb_cev1입니다.

      이전 단계에서 멀티테넌트 아키텍처를 선택한 경우 custom-oracle-ee-cdb 엔진 유형을 사용하는 CEV만 지정할 수 있습니다. 콘솔은 custom-oracle-ee 엔진 유형으로 생성된 CEV를 필터링합니다.

  6. 템플릿(Templates)에서 프로덕션(Production)을 선택합니다.

  7. 설정 섹션에서 다음을 수행합니다.

    1. DB 인스턴스 식별자에서 DB 인스턴스의 이름을 입력합니다.

    2. 마스터 사용자 이름에 사용자 이름을 입력합니다. 나중에 콘솔에서 이 값을 검색할 수 있습니다.

      비 CDB에 연결하는 경우 마스터 사용자는 비 CDB의 사용자입니다. CDB에 연결하는 경우 마스터 사용자는 PDB의 사용자입니다. CDB 루트에 연결하려면 호스트에 로그인하고 SQL 클라이언트를 시작한 다음 SQL 명령을 사용하여 관리자를 생성합니다.

    3. 암호 자동 생성을 지웁니다.

  8. DB 인스턴스 클래스를 선택합니다.

    지원되는 클래스는 RDS Custom for Oracle에 대한 DB 인스턴스 클래스 지원 섹션을 참조하세요.

  9. 스토리지(Storage) 섹션에서 다음을 수행합니다.

    1. 스토리지 유형에서 SSD 유형(io1, gp2 또는 gp3)을 선택합니다. 다음과 같은 추가 옵션이 있습니다.

      • io1 또는 gp3의 경우 프로비저닝된 IOPS의 속도를 선택합니다. 기본값은 io1은 1000이고 gp3는 12000입니다.

      • gp3에서 스토리지 처리량 속도를 선택합니다. 기본값은 500MiBps입니다.

    2. 할당된 스토리지에서 스토리지 크기를 선택합니다. 기본값은 40GiB입니다.

  10. 연결에서 Virtual Private Cloud(VPC), DB 서브넷 그룹, VPC 보안 그룹(방화벽)을 지정합니다.

  11. RDS Custom 보안을 위해서는 다음을 수행합니다.

    1. IAM 인스턴스 프로파일(IAM instance profile)에서 RDS Custom for Oracle DB 인스턴스의 인스턴스 프로파일을 선택합니다.

      IAM 인스턴스 프로파일은 AWSRDSCustom으로 시작해야 합니다(예: AWSRDSCustomInstanceProfileForRdsCustomInstance).

    2. 암호화(Encryption)의 경우 키 ARN 입력(Enter a key ARN)을 선택하여 사용 가능한 AWS KMS 키를 나열합니다. 그런 다음 목록에서 키를 선택합니다.

      AWS KMS 키는 RDS Custom에 필수입니다. 자세한 내용은 1단계: 대칭 암호화 AWS KMS 키 생성 또는 재사용 섹션을 참조하세요.

  12. 데이터베이스 옵션에서 다음을 수행합니다.

    1. (선택 사항) 시스템 ID(SID)에 Oracle SID의 값을 입력합니다. 이 값은 CDB의 이름이기도 합니다. SID는 데이터베이스 파일을 관리하는 Oracle 데이터베이스 인스턴스의 이름입니다. 이 맥락에서 ‘Oracle 데이터베이스 인스턴스’라는 용어는 SGA(시스템 글로벌 영역) 및 Oracle 백그라운드 프로세스만을 지칭합니다. SID를 지정하지 않으면 기본값 RDSCDB가 사용됩니다.

    2. (선택 사항) 초기 데이터베이스 이름에 이름을 입력합니다. 기본 값은 ORCL입니다. 멀티테넌트 아키텍처에서 초기 데이터베이스 이름은 PDB 이름입니다.

      참고

      SID와 PDB 이름은 달라야 합니다.

    3. 옵션 그룹의 경우 옵션 그룹을 선택하거나 기본값을 그대로 사용합니다.

      참고

      RDS Custom for Oracle에 지원되는 유일한 옵션은 Timezone입니다. 자세한 내용은 Oracle 시간대 섹션을 참조하세요.

    4. 백업 보존 기간에서 값일을 선택합니다. 0일은 선택할 수 없습니다.

    5. 나머지 섹션에서 원하는 대로 RDS Custom DB 인스턴스 설정을 지정합니다. 각 설정에 대한 자세한 내용은 DB 인스턴스에 대한 설정 단원을 참조하세요. 다음 설정은 콘솔에 표시되지 않으며 지원되지 않습니다.

      • 프로세서 기능

      • Storage autoscaling(스토리지 Autoscaling)

      • 가용성 및 지속성(Availability & durability)

      • 데이터베이스 인증(Database authentication)암호 및 Kerberos 인증(Password and Kerberos authentication) 옵션(암호 인증(Password authentication)만 지원)

      • 성능 개선 도우미

      • 로그 내보내기

      • 마이너 버전 자동 업그레이드 활성화

      • 삭제 방지

  13. Create database(데이터베이스 생성)를 선택합니다.

    중요

    RDS Custom for Oracle DB 인스턴스를 생성할 때 다음 오류가 표시될 수 있습니다. 서비스 연결 역할이 생성되고 있습니다. 나중에 다시 시도해 주세요. 이 경우에는 몇 분 정도 기다렸다가 다시 DB 인스턴스를 생성하면 됩니다.

    View credential details(보안 인증 세부 정보 보기) 버튼이 Databases(데이터베이스) 페이지에 표시됩니다.

    RDS Custom DB 인스턴스의 마스터 사용자 이름 및 암호를 보려면 자격 증명 세부 정보 보기(View credential details)를 선택합니다.

    DB 인스턴스를 마스터 사용자로 연결하려면 화면에 나타난 사용자 이름과 암호를 사용합니다.

    중요

    콘솔에서 마스터 사용자 암호를 다시 볼 수 없습니다. 따라서 기록을 해두지 않으면 이를 변경해야 합니다. RDS Custom DB 인스턴스를 사용할 수 있게 된 후에 마스터 사용자 암호를 변경하려면 데이터베이스에 로그인하여 ALTER USER 명령을 실행합니다. 콘솔에서 수정 옵션을 사용하여 암호를 재설정할 수 없습니다.

  14. 데이터베이스(Databases)를 선택하여 RDS Custom DB 인스턴스 목록을 확인합니다.

  15. 방금 생성한 RDS Custom DB 인스턴스를 선택합니다.

    RDS 콘솔에 새로운 RDS Custom DB 인스턴스의 세부 정보가 표시됩니다.

    • RDS Custom DB 인스턴스를 만들고 사용할 준비가 될 때까지 DB 인스턴스의 상태는 생성 중(creating)입니다. 상태가 available로 변경되면 DB 인스턴스에 연결할 수 있습니다. 할당된 인스턴스 클래스 및 스토리지에 따라 새 DB 인스턴스를 사용할 수 있게 되기까지 몇 분 정도 걸릴 수 있습니다.

    • 역할(Role)에는 인스턴스(RDS Custom)(Instance (RDS Custom)) 값이 있습니다.

    • RDS Custom 자동화 모드(RDS Custom automation mode)에는 완전 자동화(Full automation) 값이 있습니다. 이 설정은 DB 인스턴스가 자동 모니터링 및 인스턴스 복구를 제공함을 의미합니다.

create-db-instance AWS CLI 명령을 사용하여 RDS Custom DB 인스턴스를 생성합니다.

다음 옵션이 필요합니다.

  • --db-instance-identifier

  • --db-instance-class(지원되는 인스턴스 클래스 목록은 RDS Custom for Oracle에 대한 DB 인스턴스 클래스 지원 섹션 참조)

  • --engine engine-type(여기서 engine-type은 CDB의 경우 custom-oracle-ee-cdb이고 비 CDB의 경우 custom-oracle-ee)

  • --engine-version cev(여기서 cevCEV 생성에서 지정한 사용자 지정 엔진 버전의 이름)

  • --kms-key-id my-kms-key

  • --backup-retention-period days(여기서 days0보다 큰 값)

  • --no-auto-minor-version-upgrade

  • --custom-iam-instance-profile AWSRDSCustomInstanceRole-us-east-1(여기서 region은 DB 인스턴스를 생성하는 AWS 리전)

다음 예제에서는 my-cfo-cdb-instance라는 RDS Custom DB 인스턴스를 생성합니다. 데이터베이스는 기본값이 아닌 이름 MYCDB가 지정된 CDB입니다. 기본값이 아닌 PDB 이름은 MYPDB입니다. 백업 보존 기간은 3일로 설정합니다.

Linux, macOS, Unix:

aws rds create-db-instance \ --engine custom-oracle-ee-cdb \ --db-instance-identifier my-cfo-cdb-instance \ --engine-version 19.cdb_cev1 \ --db-name MYPDB \ --db-system-id MYCDB \ --allocated-storage 250 \ --db-instance-class db.m5.xlarge \ --db-subnet-group mydbsubnetgroup \ --master-username myuser \ --master-user-password mypassword \ --backup-retention-period 3 \ --port 8200 \ --kms-key-id my-kms-key \ --no-auto-minor-version-upgrade \ --custom-iam-instance-profile AWSRDSCustomInstanceRole-us-east-1

Windows의 경우:

aws rds create-db-instance ^ --engine custom-oracle-ee-cdb ^ --db-instance-identifier my-cfo-cdb-instance ^ --engine-version 19.cdb_cev1 ^ --db-name MYPDB ^ --db-system-id MYCDB ^ --allocated-storage 250 ^ --db-instance-class db.m5.xlarge ^ --db-subnet-group mydbsubnetgroup ^ --master-username myuser ^ --master-user-password mypassword ^ --backup-retention-period 3 ^ --port 8200 ^ --kms-key-id my-kms-key ^ --no-auto-minor-version-upgrade ^ --custom-iam-instance-profile AWSRDSCustomInstanceRole-us-east-1
참고

보안 모범 사례로 여기에 표시된 프롬프트 이외의 암호를 지정하는 것이 좋습니다.

describe-db-instances 명령을 사용하여 인스턴스에 대한 세부 정보를 가져옵니다.

aws rds describe-db-instances --db-instance-identifier my-cfo-cdb-instance

다음 부분 출력은 엔진, 파라미터 그룹 및 기타 정보를 보여줍니다.

{ "DBInstanceIdentifier": "my-cfo-cdb-instance", "DBInstanceClass": "db.m5.xlarge", "Engine": "custom-oracle-ee-cdb", "DBInstanceStatus": "available", "MasterUsername": "admin", "DBName": "MYPDB", "DBSystemID": "MYCDB", "Endpoint": { "Address": "my-cfo-cdb-instance.abcdefghijkl.us-east-1.rds.amazonaws.com", "Port": 1521, "HostedZoneId": "A1B2CDEFGH34IJ" }, "AllocatedStorage": 100, "InstanceCreateTime": "2023-04-12T18:52:16.353000+00:00", "PreferredBackupWindow": "08:46-09:16", "BackupRetentionPeriod": 7, "DBSecurityGroups": [], "VpcSecurityGroups": [ { "VpcSecurityGroupId": "sg-0a1bcd2e", "Status": "active" } ], "DBParameterGroups": [ { "DBParameterGroupName": "default.custom-oracle-ee-cdb-19", "ParameterApplyStatus": "in-sync" } ], ...

RDS Custom 서비스 연결 역할

서비스 연결 역할을 사용하여 AWS 계정의 리소스에 대한 Amazon RDS Custom 액세스 권한을 부여합니다. 필요한 권한을 수동으로 추가할 필요가 없어 RDS Custom을 보다 쉽게 사용할 수 있습니다. RDS Custom은 서비스 연결 역할의 권한을 정의하므로, 달리 정의하지 않으면 RDS Custom만 해당 역할을 맡을 수 있습니다. 정의된 권한에는 신뢰 정책과 권한 정책이 포함되며, 이 권한 정책은 다른 IAM 엔터티에 연결할 수 없습니다.

RDS Custom DB 인스턴스를 생성하면 Amazon RDS 및 RDS Custom 서비스 연결 역할이 모두 생성되어(존재하지 않았던 경우) 사용됩니다. 자세한 내용은 Amazon RDS에 서비스 연결 역할 사용 섹션을 참조하세요.

RDS Custom for Oracle DB 인스턴스를 처음 생성할 때 다음 오류가 표시될 수 있습니다. 서비스 연결 역할이 생성되고 있습니다. 나중에 다시 시도해 주세요. 이 경우에는 몇 분 정도 기다렸다가 다시 DB 인스턴스를 생성하면 됩니다.

세션 관리자를 사용하여 RDS Custom DB 인스턴스에 연결

RDS Custom DB 인스턴스를 생성한 후 AWS Systems Manager Session Manager를 사용하여 연결할 수 있습니다. 이는 DB 인스턴스에 공개적으로 액세스할 수 없을 때 우선적으로 사용되는 기술입니다.

Session Manager를 사용하면 브라우저 기반 쉘 또는 AWS CLI를 통해 Amazon EC2 인스턴스에 액세스할 수 있습니다. 자세한 내용은 AWS Systems Manager 세션 관리자를 참조하세요.

세션 관리자를 사용하여 DB 인스턴스에 연결하는 방법
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 데이터베이스(Databases)를 선택한 후 연결하려는 RDS Custom DB 인스턴스를 선택합니다.

  3. Configuration(구성)을 선택합니다.

  4. DB 인스턴스의 리소스 ID(Resource ID)를 기록해 둡니다. 예를 들어, 리소스 ID는 db-ABCDEFGHIJKLMNOPQRS0123456일 수 있습니다.

  5. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  6. 탐색 창에서 Instances(인스턴스)를 선택합니다.

  7. EC2 인스턴스의 이름을 찾은 다음 연결된 인스턴스 ID를 클릭합니다. 예를 들어, 인스턴스 ID는 i-abcdefghijklm01234일 수 있습니다.

  8. 연결을 선택합니다.

  9. 세션 관리자(Session Manager)를 선택합니다.

  10. Connect(연결)를 선택합니다.

    세션에 대한 창이 열립니다.

AWS CLI를 사용하여 RDS Custom DB 인스턴스에 연결할 수 있습니다. 이 기술을 사용하려면 AWS CLI용 세션 관리자 플러그인이 필요합니다. 플러그인 설치 방법은 AWS CLI용 세션 관리자 플러그인 설치를 참조하세요.

RDS Custom DB 인스턴스의 DB 리소스 ID를 찾으려면 aws rds describe-db-instances를 사용합니다.

aws rds describe-db-instances \ --query 'DBInstances[*].[DBInstanceIdentifier,DbiResourceId]' \ --output text

다음 샘플 출력은 RDS Custom 인스턴스의 리소스 ID를 보여줍니다. 접두사는 db-입니다.

db-ABCDEFGHIJKLMNOPQRS0123456

DB 인스턴스의 EC2 인스턴스 ID를 찾으려면 aws ec2 describe-instances를 사용합니다. 다음 예제에는 리소스 ID로 db-ABCDEFGHIJKLMNOPQRS0123456이 사용됩니다.

aws ec2 describe-instances \ --filters "Name=tag:Name,Values=db-ABCDEFGHIJKLMNOPQRS0123456" \ --output text \ --query 'Reservations[*].Instances[*].InstanceId'

다음 샘플 출력에는 EC2 인스턴스 ID가 나와 있습니다.

i-abcdefghijklm01234

--target 파라미터의 EC2 인스턴스 ID를 제공하는 aws ssm start-session 명령을 사용합니다.

aws ssm start-session --target "i-abcdefghijklm01234"

성공적으로 연결되면 다음과 같이 표시됩니다.

Starting session with SessionId: yourid-abcdefghijklm1234 [ssm-user@ip-123-45-67-89 bin]$

SSH를 사용하여 RDS Custom DB 인스턴스에 연결

SSH(Secure Shell Protocol)는 보안이 되지 않은 네트워크를 통한 암호화된 통신을 지원하는 네트워크 프로토콜입니다. RDS Custom DB 인스턴스를 생성한 후 ssh 클라이언트를 사용하여 이 인스턴스에 연결할 수 있습니다. 자세한 내용은 SSH를 사용하여 Linux 인스턴스에 연결을 참조하세요.

SSH 연결 기술은 DB 인스턴스가 프라이빗 인스턴스인지에 따라 좌우됩니다. 즉, 이 기술은 퍼블릭 인터넷 연결을 허용하지 않습니다. 이 경우 SSH 터널링을 사용하여 ssh 유틸리티를 인스턴스에 연결해야 합니다. 이 기술은 기존 SSH 세션 내에서 전용 데이터 스트림(터널)을 사용하여 데이터를 전송합니다. AWS Systems Manager를 사용하여 SSH 터널링을 구성할 수 있습니다.

참고

프라이빗 인스턴스에 액세스할 수 있는 다양한 전략이 지원됩니다. Bastion 호스트를 사용하여 ssh 클라이언트를 프라이빗 인스턴스에 연결하는 방법을 알아보려면 Linux Bastion Hosts on AWS을 참조하세요. 포트 전달을 구성하는 방법을 알아보려면 AWS Systems Manager Session Manager를 사용하여 포트 전달을 참조하세요.

DB 인스턴스가 퍼블릭 서브넷에 있고 공개적으로 사용 가능한 설정이 있는 경우 SSH 터널링이 필요하지 않습니다. 퍼블릭 Amazon EC2 인스턴스와 마찬가지로 SSH를 사용하여 연결할 수 있습니다.

ssh 클라이언트를 DB 인스턴스에 연결하려면 다음 단계를 완료하세요.

1단계: SSH 연결을 허용하도록 DB 인스턴스 구성

DB 인스턴스가 SSH 연결을 허용할 수 있는지 확인하려면 다음을 수행합니다.

  • DB 인스턴스 보안 그룹이 TCP용 포트 22에서 인바운드 연결을 허용하는지 확인해야 합니다.

    DB 인스턴스의 보안 그룹을 구성하는 방법을 알아보려면 보안 그룹을 통한 액세스 제어 섹션을 참조하세요.

  • SSH 터널링을 사용할 계획이 없는 경우 DB 인스턴스가 퍼블릭 서브넷에 있고 퍼블릭 액세스가 가능한지 확인합니다.

    콘솔의 관련 필드는 데이터베이스 세부 정보 페이지의 연결 및 보안 탭에 있는 퍼블릭 액세스 가능입니다. CLI에서 설정을 확인하려면 다음 명령을 실행합니다.

    aws rds describe-db-instances \ --query 'DBInstances[*].{DBInstanceIdentifier:DBInstanceIdentifier,PubliclyAccessible:PubliclyAccessible}' \ --output table

    DB 인스턴스의 접근성 설정을 변경하려면 Amazon RDS DB 인스턴스 수정 섹션을 참조하세요.

2단계: SSH 비밀 키 및 EC2 인스턴스 ID 검색

SSH를 사용하여 DB 인스턴스에 연결하려면 인스턴스와 연결된 SSH 키 페어가 필요합니다. RDS Custom은 SSH 키 페어를 자동으로 생성하며 접두사 do-not-delete-rds-custom-ssh-privatekey-db-를 사용하여 이름을 지정합니다. AWS Secrets Manager는 SSH 프라이빗 키를 비밀 암호로 저장합니다.

AWS Management Console 또는 AWS CLI 중 하나를 사용하여 SSH 비밀 키를 검색할 수 있습니다. 인스턴스에 퍼블릭 DNS가 있고 SSH 터널링을 사용하지 않으려는 경우 DNS 이름도 검색하세요. 퍼블릭 연결의 DNS 이름을 지정합니다.

SSH 비밀 키를 검색하려면
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 데이터베이스(Databases)를 선택한 후 연결하려는 RDS Custom DB 인스턴스를 선택합니다.

  3. Configuration(구성)을 선택합니다.

  4. 리소스 ID(Resource ID) 값을 기록해 둡니다. 예를 들어 DB 인스턴스 리소스 ID는 db-ABCDEFGHIJKLMNOPQRS0123456일 수 있습니다.

  5. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  6. 탐색 창에서 Instances(인스턴스)를 선택합니다.

  7. EC2 인스턴스의 이름을 찾고 연결된 인스턴스 ID를 선택합니다. 예를 들어, EC2 인스턴스 ID는 i-abcdefghijklm01234일 수 있습니다.

  8. 세부 정보(Details)에서 키 페어 이름(Key pair name)을 찾습니다. 페어 이름에는 DB 인스턴스 리소스 ID가 포함됩니다. 예를 들어, 페어 이름은 do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c일 수 있습니다.

  9. EC2 인스턴스가 퍼블릭인 경우 퍼블릭 IPv4 DNS를 기록해 둡니다. 예를 들어, 퍼블릭 도메인 이름 시스템(DNS) 주소는 ec2-12-345-678-901.us-east-2.compute.amazonaws.com일 수 있습니다.

  10. https://console.aws.amazon.com/secretsmanager/에서 AWS Secrets Manager 콘솔을 엽니다.

  11. 키 페어와 이름이 같은 비밀 키를 선택합니다.

  12. Retrieve secret value(보안 암호 값 검색)를 선택합니다.

  13. SSH 프라이빗 키를 텍스트 파일로 복사한 다음 .pem 확장자로 파일을 저장합니다. 예를 들어, 파일을 /tmp/do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem으로 저장합니다.

SSH 프라이빗 키를 검색하고 .pem 파일에 저장하려면 AWS CLI를 사용하면 됩니다.

  1. aws rds describe-db-instances를 사용하여 RDS Custom DB 인스턴스의 DB 리소스 ID를 찾습니다.

    aws rds describe-db-instances \ --query 'DBInstances[*].[DBInstanceIdentifier,DbiResourceId]' \ --output text

    다음 샘플 출력은 RDS Custom 인스턴스의 리소스 ID를 보여줍니다. 접두사는 db-입니다.

    db-ABCDEFGHIJKLMNOPQRS0123456
  2. aws ec2 describe-instances를 사용하여 DB 인스턴스의 EC2 인스턴스 ID를 찾습니다. 다음 예제에는 리소스 ID로 db-ABCDEFGHIJKLMNOPQRS0123456이 사용됩니다.

    aws ec2 describe-instances \ --filters "Name=tag:Name,Values=db-ABCDEFGHIJKLMNOPQRS0123456" \ --output text \ --query 'Reservations[*].Instances[*].InstanceId'

    다음 샘플 출력에는 EC2 인스턴스 ID가 나와 있습니다.

    i-abcdefghijklm01234
  3. 키 이름을 찾으려면 EC2 인스턴스 ID를 지정합니다. 다음 예제에서는 EC2 인스턴스 i-0bdc4219e66944afa에 대해 설명합니다.

    aws ec2 describe-instances \ --instance-ids i-0bdc4219e66944afa \ --output text \ --query 'Reservations[*].Instances[*].KeyName'

    다음 샘플 출력은 접두사 do-not-delete-rds-custom-ssh-privatekey-를 사용하는 키 이름을 보여줍니다.

    do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c
  4. aws secretsmanager를 사용하여 키의 이름을 따라 명명된 .pem 파일로 프라이빗 키를 저장합니다. 다음 예제에서는 /tmp 디렉터리에 파일을 저장합니다.

    aws secretsmanager get-secret-value \ --secret-id do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c \ --query SecretString \ --output text >/tmp/do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem

3단계: ssh 유틸리티를 사용하여 EC2 인스턴스에 연결

연결 방법은 프라이빗 DB 인스턴스에 연결하는지 또는 퍼블릭 인스턴스에 연결하는지에 따라 달라집니다. 프라이빗 연결을 위해서는 AWS Systems Manager를 통해 SSH 터널링을 구성해야 합니다.

ssh 유틸리티를 사용하여 EC2 인스턴스에 연결하려면
  1. 프라이빗 연결의 경우 SSH 구성 파일을 수정하여 명령을 AWS Systems Manager Session Manager로 프록시합니다. 퍼블릭 연결의 경우 2단계로 건너뜁니다.

    다음 행을 ~/.ssh/config에 추가합니다. 이러한 행은 이름이 i- 또는 mi-로 시작하는 호스트에 대한 SSH 명령을 프록시합니다.

    Host i-* mi-* ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
  2. .pem 파일이 들어 있는 디렉터리로 변경하고, chmod를 사용하여 권한을 400으로 설정합니다.

    cd /tmp chmod 400 do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem
  3. ssh 유틸리티를 실행하여.pem 파일과 퍼블릭 DNS 이름(퍼블릭 연결용) 또는 EC2 인스턴스 ID(프라이빗 연결용)를 지정합니다. ec2-user 사용자로 로그인합니다.

    다음 예제에서는 DNS 이름 ec2-12-345-678-901.us-east-2.compute.amazonaws.com을 사용하여 퍼블릭 인스턴스에 연결합니다.

    ssh -i \ "do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem" \ ec2-user@ec2-12-345-678-901.us-east-2.compute.amazonaws.com

    다음 예제에서는 EC2 인스턴스 ID i-0bdc4219e66944afa를 사용하여 프라이빗 인스턴스에 연결합니다.

    ssh -i \ "do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem" \ ec2-user@i-0bdc4219e66944afa

RDS Custom for Oracle 데이터베이스에 SYS로 로그인

RDS Custom DB 인스턴스를 생성한 후 Oracle 데이터베이스에 SYS 사용자로 로그인할 수 있으며, 이 경우 SYSDBA 권한이 부여됩니다. 로그인 옵션은 다음과 같습니다.

  • Secrets Manager에서 SYS 암호를 가져오고, SQL 클라이언트에서 이 암호를 지정합니다.

  • OS 인증을 사용하여 데이터베이스에 로그인합니다. 이 경우 암호가 필요하지 않습니다.

RDS Custom for Oracle 데이터베이스의 SYS 암호 찾기

Oracle 데이터베이스에 SYS 또는 SYSTEM로 로그인하거나, API 호출에 마스터 사용자 이름을 지정하여 로그인할 수 있습니다. SYSSYSTEM의 암호는 Secrets Manager에 저장됩니다. 암호는 do-not-delete-rds-custom-resource_id-uuid라는 이름 지정 형식을 사용합니다. AWS Management Console을 사용하여 암호를 찾을 수 있습니다.

Secrets Manager에서 데이터베이스의 SYS 암호를 찾으려면
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 콘솔에서 다음 단계를 완료합니다.

    1. 탐색 창에서 Databases(데이터베이스)를 선택합니다.

    2. RDS Custom for Oracle DB 인스턴스의 이름을 선택합니다.

    3. Configuration(구성)을 선택합니다.

    4. 리소스 ID 아래의 값을 복사합니다. 예를 들어, 리소스 ID는 db-ABC12CDE3FGH4I5JKLMNO6PQR7일 수 있습니다.

  3. https://console.aws.amazon.com/secretsmanager/에서 Secrets Manager 콘솔을 엽니다.

  4. Secrets Manager 콘솔에서 다음 단계를 완료합니다.

    1. 왼쪽 탐색 창에서 보안 암호를 선택합니다.

    2. 5단계에서 복사한 리소스 ID를 기준으로 암호를 필터링합니다.

    3. do-not-delete-rds-custom-resource_id-uuid라는 이름의 암호를 선택합니다. 여기서 resource_id는 5단계에서 복사한 리소스 ID입니다. 예를 들어 리소스 ID가 db-ABC12CDE3FGH4I5JKLMNO6PQR7인 경우, 암호의 이름은 do-not-delete-rds-custom-db-ABC12CDE3FGH4I5JKLMNO6PQR7로 지정됩니다.

    4. 보안 암호 값 섹션에서 보안 암호 값 검색을 선택합니다.

    5. 키/값에서 암호 값을 복사합니다.

  5. DB 인스턴스에 SQL*Plus를 설치하고 데이터베이스에 SYS로 로그인합니다. 자세한 내용은 3단계: SQL 클라이언트를 Oracle DB 인스턴스에 연결 섹션을 참조하세요.

OS 인증을 사용하여 RDS Custom for Oracle 데이터베이스에 로그인

OS 사용자 rdsdb는 Oracle 데이터베이스 바이너리를 소유합니다. rdsdb 사용자로 전환하여 암호 없이 RDS Custom for Oracle 데이터베이스에 로그인할 수 있습니다.

  1. AWS Systems Manager를 사용하여 DB 인스턴스에 연결합니다. 자세한 내용은 세션 관리자를 사용하여 RDS Custom DB 인스턴스에 연결 섹션을 참조하세요.

  2. 웹 브라우저에서 https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html로 이동합니다.

  3. 웹 페이지에 표시되는 최신 데이터베이스 버전을 보려면 Instant Client Basic Package 및 SQL*Plus Package의 .rpm 링크(.zip 링크 아님)를 복사하세요. 예를 들어, 다음 링크는 Oracle 데이터베이스 버전 21.9의 링크입니다.

    • https://download.oracle.com/otn_software/linux/instantclient/219000/oracle-instantclient-basic-21.9.0.0.0-1.el8.x86_64.rpm

    • https://download.oracle.com/otn_software/linux/instantclient/219000/oracle-instantclient-sqlplus-21.9.0.0.0-1.el8.x86_64.rpm

  4. SSH 세션에서 wget 명령을 실행하여 이전 단계에서 가져온 링크를 통해 .rpm 파일을 다운로드합니다. 다음 예제에서는 Oracle 데이터베이스 버전 21.9의 .rpm 파일을 다운로드합니다.

    wget https://download.oracle.com/otn_software/linux/instantclient/219000/oracle-instantclient-basic-21.9.0.0.0-1.el8.x86_64.rpm wget https://download.oracle.com/otn_software/linux/instantclient/219000/oracle-instantclient-sqlplus-21.9.0.0.0-1.el8.x86_64.rpm
  5. 다음과 같이 yum 명령을 실행하여 패키지를 설치합니다.

    sudo yum install oracle-instantclient-*.rpm
  6. rdsdb 사용자로 전환합니다.

    sudo su - rdsdb
  7. OS 인증을 사용하여 데이터베이스에 로그인합니다.

    $ sqlplus / as sysdba SQL*Plus: Release 21.0.0.0.0 - Production on Wed Apr 12 20:11:08 2023 Version 21.9.0.0.0 Copyright (c) 1982, 2020, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.10.0.0.0

RDS Custom for Oracle DB 인스턴스에 추가 소프트웨어 구성 요소 설치

새로 만든 DB 인스턴스의 데이터베이스 환경에는 Oracle 바이너리, 데이터베이스 및 데이터베이스 리스너가 포함됩니다. DB 인스턴스의 호스트 운영 체제에 추가 소프트웨어를 설치해야 할 수 있습니다. 예를 들어 Oracle Application Express(APEX), Oracle Enterprise Manager(OEM) 에이전트 또는 Guardium S-TAP 에이전트를 설치할 수 있습니다. 가이드 및 개괄적인 지침이 자세히 나와 있는 AWS 블로그 게시물 Amazon RDS Custom for Oracle에 추가 소프트웨어 구성 요소 설치를 참조하세요.