Amazon RDS Custom for SQL Server의 DB 인스턴스 생성 및 연결 - Amazon Relational Database Service

Amazon RDS Custom for SQL Server의 DB 인스턴스 생성 및 연결

RDS Custom DB 인스턴스를 생성한 다음 AWS Systems Manager 또는 원격 데스크톱 프로토콜(RDP)을 사용하여 연결할 수 있습니다.

중요

RDS Custom for SQL Server DB 인스턴스를 생성하거나 연결하기 전에 Amazon RDS Custom for SQL Server를 위한 환경 설정에 나와 있는 작업을 완료해야 합니다.

RDS Custom DB 인스턴스를 생성할 때 태그를 지정할 수 있지만, RDS Custom 자동화에 필요한 AWSRDSCustom 태그를 생성하거나 수정해서는 안 됩니다. 자세한 내용은 RDS Custom for SQL Server 리소스 태깅 단원을 참조하십시오.

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

RDS Custom for SQL Server DB 인스턴스 생성

AWS Management Console 또는 AWS CLI를 사용하여 SQL Server DB 인스턴스용 Amazon RDS Custom을 생성할 수 있습니다. 생성 절차는 Amazon RDS DB 인스턴스를 생성하는 절차와 유사합니다.

자세한 내용은 Amazon RDS DB 인스턴스 생성 단원을 참조하십시오.

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

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

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

  4. 데이터베이스 생성 방법으로 표준 생성(Standard Create)을 선택합니다.

  5. 엔진 옵션(Engine options)에서 엔진 유형으로 Microsoft SQL Server를 선택합니다.

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

  7. 에디션(Edition) 섹션에서 사용하려는 DB 엔진 에디션을 선택합니다.

  8. (선택 사항) CEV에서 DB 인스턴스를 만들어야 하는 경우 Use custom engine version (CEV)(사용자 지정 엔진 버전(CEV) 사용) 확인란을 선택합니다. 드롭다운 목록에서 CEV를 선택합니다.

  9. 데이터베이스 버전은 기본값 버전을 유지합니다.

  10. Templates(템플릿)의 경우, Production(프로덕션)을 선택합니다.

  11. 설정(Settings) 섹션에서 고유한 DB 인스턴스 식별자(DB instance identifier) 이름을 입력합니다.

  12. 마스터 암호를 입력하려면 다음과 같이 하세요.

    1. Settings(설정) 섹션에서 Credential Settings(보안 인증 정보 설정)를 엽니다.

    2. Auto generate a password(암호 자동 생성) 확인란의 선택을 취소합니다.

    3. 마스터 사용자 이름(Master username) 값을 변경하고 마스터 암호(Master password)암호 확인(Confirm password)에 동일한 암호를 입력합니다.

    기본적으로 새로운 RDS Custom DB 인스턴스는 마스터 사용자를 위해 자동 생성된 암호를 사용합니다.

  13. DB 인스턴스 크기(DB instance size) 섹션에서 DB 인스턴스 클래스(DB instance class) 값을 선택합니다.

    지원되는 클래스는 RDS Custom for SQL Server DB 인스턴스 클래스 지원 섹션을 참조하세요.

  14. 스토리지(Storage) 설정을 선택합니다.

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

    1. IAM 인스턴스 프로파일에 RDS Custom for SQL Server DB 인스턴스의 인스턴스 프로파일을 선택하는 옵션이 두 개 있습니다.

      1. 새 인스턴스 프로파일 생성을 선택하고 인스턴스 프로파일 이름 접미사를 제공합니다. 자세한 내용은 AWS Management Console을 사용한 자동 인스턴스 프로파일 생성 단원을 참조하십시오.

      2. 기존 인스턴스 프로파일을 선택합니다. 드롭다운 목록에서 AWSRDSCustom으로 시작하는 인스턴스 프로파일을 선택합니다.

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

      AWS KMS 키는 RDS Custom에 필수입니다. 자세한 내용은 대칭 암호화 AWS KMS 키 보유 여부 확인 단원을 참조하십시오.

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

    • 프로세서 기능

    • Storage autoscaling(스토리지 Autoscaling)

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

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

    • 추가 구성(Additional configuration)데이터베이스 옵션(Database options) 그룹

    • 성능 개선 도우미

    • 로그 내보내기

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

    • 삭제 방지

    백업 보존 기간은 지원되지만, 0일을 선택할 수 없습니다.

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

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

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

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

    중요

    마스터 사용자 암호를 다시 볼 수는 없습니다. 따라서 기록을 해두지 않으면 이를 변경해야 합니다. RDS Custom DB 인스턴스가 사용 가능한 상태가 되고 난 후에 마스터 사용자 암호를 변경하려면 DB 인스턴스를 수정하면 됩니다. DB 인스턴스 수정에 대한 자세한 내용은 Amazon RDS Custom for SQL Server DB 인스턴스 관리 단원을 참조하세요.

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

  19. 방금 생성한 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 인스턴스를 생성합니다.

다음 옵션이 필요합니다.

다음 예제에서는 my-custom-instance라는 RDS Custom for SQL Server DB 인스턴스를 생성합니다. 백업 보존 기간은 3일로 설정합니다.

참고

사용자 지정 엔진 버전(CEV)에서 DB 인스턴스를 만들려면 --engine-version 파라미터에 기존 CEV 이름을 제공합니다. 예제: --engine-version 15.00.4249.2.my_cevtest

대상 LinuxmacOS, 또는Unix:

aws rds create-db-instance \ --engine custom-sqlserver-ee \ --engine-version 15.00.4073.23.v1 \ --db-instance-identifier my-custom-instance \ --db-instance-class db.m5.xlarge \ --allocated-storage 20 \ --db-subnet-group mydbsubnetgroup \ --master-username myuser \ --master-user-password mypassword \ --backup-retention-period 3 \ --no-multi-az \ --port 8200 \ --kms-key-id mykmskey \ --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance

Windows의 경우:

aws rds create-db-instance ^ --engine custom-sqlserver-ee ^ --engine-version 15.00.4073.23.v1 ^ --db-instance-identifier my-custom-instance ^ --db-instance-class db.m5.xlarge ^ --allocated-storage 20 ^ --db-subnet-group mydbsubnetgroup ^ --master-username myuser ^ --master-user-password mypassword ^ --backup-retention-period 3 ^ --no-multi-az ^ --port 8200 ^ --kms-key-id mykmskey ^ --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance
참고

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

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

aws rds describe-db-instances --db-instance-identifier my-custom-instance

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

{ "DBInstances": [ { "PendingModifiedValues": {}, "Engine": "custom-sqlserver-ee", "MultiAZ": false, "DBSecurityGroups": [], "DBParameterGroups": [ { "DBParameterGroupName": "default.custom-sqlserver-ee-15", "ParameterApplyStatus": "in-sync" } ], "AutomationMode": "full", "DBInstanceIdentifier": "my-custom-instance", "TagList": [] } ] }

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 SQL Server DB 인스턴스를 처음 생성할 때 다음 오류가 표시될 수 있습니다. 서비스 연결 역할이 생성되고 있습니다. 나중에 다시 시도해 주세요. 이 경우에는 몇 분 정도 기다렸다가 다시 DB 인스턴스를 생성하면 됩니다.

AWS Systems Manager를 사용하여 RDS Custom DB 인스턴스에 연결

RDS Custom DB 인스턴스를 생성한 후 AWS Systems Manager 세션 관리자를 사용하여 연결할 수 있습니다. 세션 관리자는 브라우저 기반 셸이나 AWS CLI를 통해 Amazon EC2 인스턴스를 관리하는 데 사용할 수 있는 Systems Manager 기능입니다. 자세한 내용은 AWS Systems Manager 세션 관리자를 참조하세요.

세션 관리자를 사용하여 DB 인스턴스에 연결하는 방법
  1. https://console.aws.amazon.com/rds/에서 AWS Management Console에 로그인한 후 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를 찾으려면 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]$

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

RDS Custom DB 인스턴스를 생성한 후 RDP 클라이언트를 사용하여 이 인스턴스에 연결할 수 있습니다. 이 절차는 Amazon EC2 인스턴스에 연결하는 절차와 동일합니다. 자세한 내용은 Windows 인스턴스에 연결을 참조하세요.

DB 인스턴스에 연결하려면 인스턴스와 연결된 키 페어가 필요합니다. 키 페어는 RDS Custom에서 생성합니다. 페어 이름은 접두사 do-not-delete-rds-custom-DBInstanceIdentifier를 사용하며, AWS Secrets Manager는 프라이빗 키를 비밀 키로 저장합니다.

다음 단계의 작업을 완료합니다.

RDP 연결을 허용하도록 DB 인스턴스 구성

RDP 연결을 허용하려면 VPC 보안 그룹을 구성하고 호스트에 방화벽 규칙을 설정합니다.

VPC 보안 그룹 구성

DB 인스턴스와 연결된 VPC 보안 그룹이 전송 제어 프로토콜(TCP)용 포트 3389에서 인바운드 연결을 허용하는지 확인합니다. VPC 보안 그룹을 구성하는 방법은 VPC 보안 그룹 구성 섹션을 참조하세요.

호스트에서 방화벽 규칙 설정

TCP용 포트 3389에서 인바운드 연결을 허용하려면 호스트에 방화벽 규칙을 설정합니다. 다음 예제에서 이 작업을 수행하는 방법을 보여줍니다.

특정 -Profile 값(Public, Private 또는 Domain)을 사용하는 것이 좋습니다. Any을 사용하면 세 값을 모두 지정하는 것입니다. 쉼표로 구분된 값 조합을 지정할 수도 있습니다. 방화벽 규칙 설정에 대한 자세한 내용은 Microsoft 설명서의 Set-NetFirewallRule을 참조하세요.

Systems Manager 세션 관리자를 사용하여 방화벽 규칙을 설정하는 방법
  1. AWS Systems Manager를 사용하여 RDS Custom DB 인스턴스에 연결에 표시된 대로 세션 관리자에 연결합니다.

  2. 다음 명령을 실행합니다.

    Set-NetFirewallRule -DisplayName "Remote Desktop - User Mode (TCP-In)" -Direction Inbound -LocalAddress Any -Profile Any
Systems Manager CLI 명령을 사용하여 방화벽 규칙 설정
  1. 다음 명령을 사용하여 호스트에서 RDP를 엽니다.

    OPEN_RDP_COMMAND_ID=$(aws ssm send-command --region $AWS_REGION \ --instance-ids $RDS_CUSTOM_INSTANCE_EC2_ID \ --document-name "AWS-RunPowerShellScript" \ --parameters '{"commands":["Set-NetFirewallRule -DisplayName \"Remote Desktop - User Mode (TCP-In)\" -Direction Inbound -LocalAddress Any -Profile Any"]}' \ --comment "Open RDP port" | jq -r ".Command.CommandId")
  2. 출력에서 반환된 명령 ID를 사용하여 이전 명령의 상태를 가져옵니다. 다음 쿼리를 사용하여 명령 ID를 반환하려면 jq 플러그인이 설치되어 있는지 확인합니다.

    aws ssm list-commands \ --region $AWS_REGION \ --command-id $OPEN_RDP_COMMAND_ID

비밀 키 검색

AWS Management Console 또는 AWS CLI 중 하나를 사용하여 비밀 키를 검색할 수 있습니다.

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

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

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

  4. DB 인스턴스의 DB 인스턴스 ID를 기록해 둡니다(예: my-custom-instance).

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

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

  7. EC2 인스턴스의 이름을 찾은 다음 연결된 인스턴스 ID를 선택합니다.

    이 예제에서 인스턴스 ID는 i-abcdefghijklm01234입니다.

  8. 세부 정보(Details)에서 키 페어 이름(Key pair name)을 찾습니다. 페어 이름에는 DB 식별자가 포함됩니다. 이 예제에서 페어 이름은 do-not-delete-rds-custom-my-custom-instance-0d726c입니다.

  9. 인스턴스 요약에서 퍼블릭 IPv4 DNS(Public 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(보안 암호 값 검색)를 선택합니다.

프라이빗 키를 검색하는 방법
  1. aws rds describe-db-instances 명령을 호출하여 RDS Custom DB 인스턴스 목록을 가져옵니다

    aws rds describe-db-instances \ --query 'DBInstances[*].[DBInstanceIdentifier,DbiResourceId]' \ --output text
  2. 샘플 출력에서 DB 인스턴스 식별자를 선택합니다(예: do-not-delete-rds-custom-my-custom-instance).

  3. aws ec2 describe-instances 명령을 호출하여 DB 인스턴스의 EC2 인스턴스 ID를 찾습니다. 다음 예제에서는 EC2 인스턴스 이름을 사용하여 DB 인스턴스를 설명합니다.

    aws ec2 describe-instances \ --filters "Name=tag:Name,Values=do-not-delete-rds-custom-my-custom-instance" \ --output text \ --query 'Reservations[*].Instances[*].InstanceId'

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

    i-abcdefghijklm01234
  4. EC2 인스턴스 ID를 지정하여 다음 예제에서와 같이 키 이름을 찾습니다.

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

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

    do-not-delete-rds-custom-my-custom-instance-0d726c

RDP 유틸리티를 사용하여 EC2 인스턴스에 연결

Windows 인스턴스용 Amazon EC2 사용 설명서RDP를 사용하여 Windows 인스턴스에 연결에 나와 있는 절차를 따릅니다. 이 절차에서는 프라이빗 키가 포함된 .pem 파일을 생성한 것으로 가정합니다.