Amazon RDS Custom for Oracle용 DB 인스턴스 구성
RDS Custom DB 인스턴스를 생성한 다음 Secure Shell(SSH) 또는 AWS Systems Manager를 사용하여 연결할 수 있습니다.
RDS Custom for Oracle DB 인스턴스에 연결하고 로그인하는 방법에 대한 자세한 내용은 다음 주제를 참조하세요.
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 인스턴스를 생성하는 방법
AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/
에서 Amazon RDS 콘솔을 엽니다. -
탐색 창에서 Databases(데이터베이스)를 선택합니다.
-
데이터베이스 생성을 선택합니다.
-
데이터베이스 생성 방법 선택(Choose a database creation method)에서 표준 생성(Standard Create)을 선택합니다.
-
엔진 옵션) 섹션에서 다음과 같이 실행합니다.
-
엔진 유형(Engine type)으로 Oracle을 선택합니다.
-
데이터베이스 관리 유형(Database management type)에서 Amazon RDS Custom을 선택합니다.
-
아키텍처 설정에서 다음 중 하나를 수행합니다.
-
멀티테넌트 아키텍처를 선택하여 컨테이너 데이터베이스(CDB)를 생성합니다. 생성 시 CDB에는 PDB 시드와 초기 PDB가 하나씩 포함됩니다.
참고
멀티테넌트 아키텍처 설정은 Oracle Database 19c에만 지원됩니다.
-
비 CDB를 생성하려면 멀티테넌트 아키텍처를 지웁니다. 비 CDB에는 PDB가 포함될 수 없습니다.
-
-
에디션에서 Oracle Enterprise Edition 또는 Oracle Standard Edition 2를 선택합니다.
-
사용자 지정 엔진 버전의 경우 RDS Custom의 기존 사용자 지정 엔진 버전(CEV)을 선택합니다. CEV의 형식은
입니다. 예제 식별자는major-engine-version
.customized_string
19.cdb_cev1
입니다.이전 단계에서 멀티테넌트 아키텍처를 선택한 경우
custom-oracle-ee-cdb
또는custom-oracle-se2-cdb
엔진 유형을 사용하는 CEV만 지정할 수 있습니다. 콘솔은 다른 엔진 유형으로 생성된 CEV를 필터링합니다.
-
-
템플릿(Templates)에서 프로덕션(Production)을 선택합니다.
-
설정 섹션에서 다음을 수행합니다.
-
DB 인스턴스 식별자에서 DB 인스턴스의 이름을 입력합니다.
-
마스터 사용자 이름에 사용자 이름을 입력합니다. 나중에 콘솔에서 이 값을 검색할 수 있습니다.
비 CDB에 연결하는 경우 마스터 사용자는 비 CDB의 사용자입니다. CDB에 연결하는 경우 마스터 사용자는 PDB의 사용자입니다. CDB 루트에 연결하려면 호스트에 로그인하고 SQL 클라이언트를 시작한 다음 SQL 명령을 사용하여 관리자를 생성합니다.
-
암호 자동 생성을 지웁니다.
-
-
DB 인스턴스 클래스를 선택합니다.
지원되는 클래스는 RDS Custom for Oracle에 대한 DB 인스턴스 클래스 지원 섹션을 참조하세요.
-
스토리지(Storage) 섹션에서 다음을 수행합니다.
-
스토리지 유형에서 SSD 유형(io1, gp2 또는 gp3)을 선택합니다. 다음과 같은 추가 옵션이 있습니다.
-
io1 또는 gp3의 경우 프로비저닝된 IOPS의 속도를 선택합니다. 기본값은 io1은 1000이고 gp3는 12000입니다.
-
gp3에서 스토리지 처리량 속도를 선택합니다. 기본값은 500MiBps입니다.
-
-
할당된 스토리지에서 스토리지 크기를 선택합니다. 기본값은 40GiB입니다.
-
-
연결에서 Virtual Private Cloud(VPC), DB 서브넷 그룹, VPC 보안 그룹(방화벽)을 지정합니다.
-
RDS Custom 보안을 위해서는 다음을 수행합니다.
-
IAM 인스턴스 프로파일(IAM instance profile)에서 RDS Custom for Oracle DB 인스턴스의 인스턴스 프로파일을 선택합니다.
IAM 인스턴스 프로파일은
AWSRDSCustom
으로 시작해야 합니다(예:AWSRDSCustomInstanceProfileForRdsCustomInstance
). -
암호화(Encryption)의 경우 키 ARN 입력(Enter a key ARN)을 선택하여 사용 가능한 AWS KMS 키를 나열합니다. 그런 다음 목록에서 키를 선택합니다.
AWS KMS 키는 RDS Custom에 필수입니다. 자세한 내용은 1단계: 대칭 암호화 AWS KMS 키 생성 또는 재사용 단원을 참조하십시오.
-
-
데이터베이스 옵션에서 다음을 수행합니다.
-
(선택 사항) 시스템 ID(SID)에 Oracle SID의 값을 입력합니다. 이 값은 CDB의 이름이기도 합니다. SID는 데이터베이스 파일을 관리하는 Oracle 데이터베이스 인스턴스의 이름입니다. 이 맥락에서 ‘Oracle 데이터베이스 인스턴스’라는 용어는 SGA(시스템 글로벌 영역) 및 Oracle 백그라운드 프로세스만을 지칭합니다. SID를 지정하지 않으면 기본값
RDSCDB
가 사용됩니다. -
(선택 사항) 초기 데이터베이스 이름에 이름을 입력합니다. 기본값은
ORCL
입니다. 멀티테넌트 아키텍처에서 초기 데이터베이스 이름은 PDB 이름입니다.참고
SID와 PDB 이름은 달라야 합니다.
-
옵션 그룹의 경우 옵션 그룹을 선택하거나 기본값을 그대로 사용합니다.
참고
RDS Custom for Oracle에 지원되는 유일한 옵션은
Timezone
입니다. 자세한 내용은 Oracle 시간대 단원을 참조하십시오. -
백업 보존 기간에서 값일을 선택합니다. 0일은 선택할 수 없습니다.
-
나머지 섹션에서 원하는 대로 RDS Custom DB 인스턴스 설정을 지정합니다. 각 설정에 대한 자세한 내용은 DB 인스턴스에 대한 설정 단원을 참조하세요. 다음 설정은 콘솔에 표시되지 않으며 지원되지 않습니다.
-
프로세서 기능
-
Storage autoscaling(스토리지 Autoscaling)
-
데이터베이스 인증(Database authentication)의 암호 및 Kerberos 인증(Password and Kerberos authentication) 옵션(암호 인증(Password authentication)만 지원)
-
성능 개선 도우미
-
로그 내보내기
-
마이너 버전 자동 업그레이드 활성화
-
삭제 방지
-
-
-
Create database(데이터베이스 생성)를 선택합니다.
중요
RDS Custom for Oracle DB 인스턴스를 생성할 때 다음 오류가 표시될 수 있습니다.
서비스 연결 역할이 생성되고 있습니다. 나중에 다시 시도해 주세요.
이 경우에는 몇 분 정도 기다렸다가 다시 DB 인스턴스를 생성하면 됩니다.View credential details(보안 인증 세부 정보 보기) 버튼이 Databases(데이터베이스) 페이지에 표시됩니다.
RDS Custom DB 인스턴스의 마스터 사용자 이름 및 암호를 보려면 자격 증명 세부 정보 보기(View credential details)를 선택합니다.
DB 인스턴스를 마스터 사용자로 연결하려면 화면에 나타난 사용자 이름과 암호를 사용합니다.
중요
콘솔에서 마스터 사용자 암호를 다시 볼 수 없습니다. 따라서 기록을 해두지 않으면 이를 변경해야 합니다. RDS Custom DB 인스턴스를 사용할 수 있게 된 후에 마스터 사용자 암호를 변경하려면 데이터베이스에 로그인하여
ALTER USER
명령을 실행합니다. 콘솔에서 수정 옵션을 사용하여 암호를 재설정할 수 없습니다. -
데이터베이스(Databases)를 선택하여 RDS Custom DB 인스턴스 목록을 확인합니다.
-
방금 생성한 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
엔진 유형
은custom-oracle-ee
,custom-oracle-se2
,custom-oracle-ee-cdb
,custom-oracle-se2-cdb
) -
--engine-version
(여기서cev
는 CEV 생성에서 지정한 사용자 지정 엔진 버전의 이름)cev
-
--kms-key-id
my-kms-key
-
--backup-retention-period
(여기서days
는days
0
보다 큰 값) -
--no-auto-minor-version-upgrade
-
--custom-iam-instance-profile AWSRDSCustomInstanceProfile-
(여기서us-east-1
은 DB 인스턴스를 생성하는 AWS 리전)region
다음 예제에서는 my-cfo-cdb-instance
라는 RDS Custom DB 인스턴스를 생성합니다. 데이터베이스는 기본값이 아닌 이름 MYCDB
가 지정된 CDB입니다. 기본값이 아닌 PDB 이름은 MYPDB
입니다. 백업 보존 기간은 3일로 설정합니다.
대상 LinuxmacOS, 또는Unix:
aws rds create-db-instance \ --engine
custom-oracle-ee-cdb
\ --db-instance-identifiermy-cfo-cdb-instance
\ --engine-version19.cdb_cev1
\ --db-nameMYPDB
\ --db-system-idMYCDB
\ --allocated-storage250
\ --db-instance-classdb.m5.xlarge
\ --db-subnet-groupmydbsubnetgroup
\ --master-usernamemyuser
\ --master-user-passwordmypassword
\ --backup-retention-period3
\ --port8200
\ --kms-key-idmy-kms-key
\ --no-auto-minor-version-upgrade \ --custom-iam-instance-profile AWSRDSCustomInstanceProfile-us-east-1
Windows의 경우:
aws rds create-db-instance ^ --engine custom-oracle-ee-cdb ^ --db-instance-identifier
my-cfo-cdb-instance
^ --engine-version19.cdb_cev1
^ --db-nameMYPDB
^ --db-system-idMYCDB
^ --allocated-storage250
^ --db-instance-classdb.m5.xlarge
^ --db-subnet-groupmydbsubnetgroup
^ --master-usernamemyuser
^ --master-user-passwordmypassword
^ --backup-retention-period3
^ --port8200
^ --kms-key-idmy-kms-key
^ --no-auto-minor-version-upgrade ^ --custom-iam-instance-profile AWSRDSCustomInstanceProfile-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" } ], ...
멀티테넌트 아키텍처 고려 사항
Oracle 멀티테넌트 아키텍처(custom-oracle-ee-cdb
또는 custom-oracle-se2-cdb
엔진 유형)를 사용하여 Amazon RDS Custom for Oracle DB 인스턴스를 생성하는 경우 데이터베이스는 컨테이너 데이터베이스(CDB)입니다. Oracle 멀티테넌트 아키텍처를 지정하지 않는 경우 데이터베이스는 custom-oracle-ee
또는 custom-oracle-se2
엔진 유형을 사용하는 기존의 비CDB입니다. 비 CDB에는 플러그형 데이터베이스(PDB)가 포함될 수 없습니다. 자세한 내용은 Amazon RDS Custom for Oracle 데이터베이스 아키텍처 단원을 참조하십시오.
RDS Custom for Oracle CDB 인스턴스를 생성할 때는 다음 사항을 고려하세요.
-
Oracle Database 19c CEV에서만 멀티테넌트 데이터베이스를 생성할 수 있습니다.
-
CEV가
custom-oracle-ee-cdb
또는custom-oracle-se2-cdb
엔진 유형을 사용하는 경우에만 CDB 인스턴스를 만들 수 있습니다. -
Standard Edition 2를 사용하여 CDB 인스턴스를 생성하는 경우 CDB에는 최대 3개의 PDB를 포함할 수 있습니다.
-
기본적으로 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 서비스 연결 역할
서비스 연결 역할을 사용하여 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 for Oracle DB 인스턴스에 추가 소프트웨어 구성 요소 설치
새로 만든 DB 인스턴스의 데이터베이스 환경에는 Oracle 바이너리, 데이터베이스 및 데이터베이스 리스너가 포함됩니다. DB 인스턴스의 호스트 운영 체제에 추가 소프트웨어를 설치해야 할 수 있습니다. 예를 들어 Oracle Application Express(APEX), Oracle Enterprise Manager(OEM) 에이전트 또는 Guardium S-TAP 에이전트를 설치할 수 있습니다. 가이드 및 개괄적인 지침이 자세히 나와 있는 AWS 블로그 게시물 Amazon RDS Custom for Oracle에 추가 소프트웨어 구성 요소 설치
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
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 비밀 키를 검색하려면
https://console.aws.amazon.com/rds/
에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다. -
탐색 창에서 데이터베이스(Databases)를 선택한 후 연결하려는 RDS Custom DB 인스턴스를 선택합니다.
-
Configuration(구성)을 선택합니다.
-
리소스 ID(Resource ID) 값을 기록해 둡니다. 예를 들어 DB 인스턴스 리소스 ID는
db-ABCDEFGHIJKLMNOPQRS0123456
일 수 있습니다. -
https://console.aws.amazon.com/ec2/
에서 Amazon EC2 콘솔을 엽니다. -
탐색 창에서 Instances(인스턴스)를 선택합니다.
-
EC2 인스턴스의 이름을 찾고 연결된 인스턴스 ID를 선택합니다. 예를 들어, EC2 인스턴스 ID는
i-abcdefghijklm01234
일 수 있습니다. -
세부 정보(Details)에서 키 페어 이름(Key pair name)을 찾습니다. 페어 이름에는 DB 인스턴스 리소스 ID가 포함됩니다. 예를 들어, 페어 이름은
do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c
일 수 있습니다. -
EC2 인스턴스가 퍼블릭인 경우 퍼블릭 IPv4 DNS를 기록해 둡니다. 예를 들어, 퍼블릭 도메인 이름 시스템(DNS) 주소는
ec2-12-345-678-901.us-east-2.compute.amazonaws.com
일 수 있습니다. -
https://console.aws.amazon.com/secretsmanager/
에서 AWS Secrets Manager 콘솔을 엽니다. -
키 페어와 이름이 같은 비밀 키를 선택합니다.
-
Retrieve secret value(보안 암호 값 검색)를 선택합니다.
-
SSH 프라이빗 키를 텍스트 파일로 복사한 다음
.pem
확장자로 파일을 저장합니다. 예를 들어, 파일을/tmp/do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem
으로 저장합니다.
SSH 프라이빗 키를 검색하고 .pem 파일에 저장하려면 AWS CLI를 사용하면 됩니다.
-
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
-
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
-
키 이름을 찾으려면 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
-
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 인스턴스에 연결하려면
-
프라이빗 연결의 경우 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'"
-
.pem 파일이 들어 있는 디렉터리로 변경하고,
chmod
를 사용하여 권한을400
으로 설정합니다.cd
/tmp
chmod 400do-not-delete-rds-custom-ssh-privatekey-db-ABCDEFGHIJKLMNOPQRS0123456-0d726c.pem
-
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