

# RDS Custom for SQL Server 작업
<a name="working-with-custom-sqlserver"></a>

아래에서는 RDS Custom for SQL Server DB 인스턴스의 관리 및 유지 관리에 대한 지침을 확인할 수 있습니다.

**Topics**
+ [RDS for SQL Server 워크플로](custom-sqlserver.workflow.md)
+ [Amazon RDS Custom for SQL Server 요구 사항 및 제한](custom-reqs-limits-MS.md)
+ [Amazon RDS Custom for SQL Server를 위한 환경 설정](custom-setup-sqlserver.md)
+ [RDS Custom for SQL Server에서 기존 보유 미디어 사용(BYOM)](custom-sqlserver.byom.md)
+ [RDS Custom for SQL Server 사용자 지정 엔진 버전 작업](custom-cev-sqlserver.md)
+ [Amazon RDS Custom for SQL Server의 DB 인스턴스 생성 및 연결](custom-creating-sqlserver.md)
+ [Amazon RDS Custom for SQL Server DB 인스턴스 관리](custom-managing-sqlserver.md)
+ [RDS Custom for SQL Server를 사용하여 Microsoft Active Directory 작업](custom-sqlserver-WinAuth.md)
+ [RDS Custom for SQL Server에 대한 다중 AZ 배포 구성 및 관리](custom-sqlserver-multiaz.md)
+ [Amazon RDS Custom for SQL Server DB 인스턴스 백업 및 복원](custom-backup-sqlserver.md)
+ [Amazon RDS Custom for SQL Server DB 스냅샷 복사](custom-copying-snapshot-sqlserver.md)
+ [온프레미스 데이터베이스를 SQL Server용 Amazon RDS Custom으로 마이그레이션](custom-migrating.md)
+ [RDS Custom for SQL Server 운영 체제 업데이트](custom-os-upgrade.md)
+ [Amazon RDS Custom for SQL Server DB 인스턴스 업그레이드](custom-upgrading-sqlserver.md)
+ [Amazon RDS Custom for SQL Server의 DB 문제 해결](custom-troubleshooting-sqlserver.md)

# RDS for SQL Server 워크플로
<a name="custom-sqlserver.workflow"></a>

다음 다이어그램은 RDS Custom for SQL Server의 일반적인 워크플로를 보여 줍니다.

![\[RDS Custom for SQL Server 아키텍처\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/custom_sqlserver_architecture_v2.png)


단계는 다음과 같습니다.

1. RDS Custom에서 제공하는 엔진 버전에서 RDS Custom for SQL Server DB 인스턴스를 생성합니다.

   자세한 내용은 [RDS Custom for SQL Server DB 인스턴스 생성](custom-creating-sqlserver.md#custom-creating-sqlserver.create)을 참조하세요.

1. 애플리케이션을 RDS Custom DB 인스턴스 엔드포인트에 연결합니다.

   자세한 내용은 [AWS Systems Manager를 사용하여 RDS Custom DB 인스턴스에 연결](custom-creating-sqlserver.ssm.md) 및 [RDP를 사용하여 RDS Custom DB 인스턴스에 연결](custom-creating-sqlserver.rdp.md) 섹션을 참조하세요.

1. (선택 사항) 호스트에 액세스하여 소프트웨어를 커스터마이징합니다.

1. RDS Custom 자동화로 생성된 알림 및 메시지를 모니터링합니다.

## DB instance for RDS Custom 생성
<a name="custom-sqlserver.workflow.instance"></a>

`create-db-instance` 명령을 사용하여 RDS Custom DB 인스턴스를 생성할 수 있습니다. 생성 절차는 Amazon RDS 인스턴스를 생성과 유사합니다. 하지만 일부 파라미터는 다릅니다. 자세한 내용은 [Amazon RDS Custom for SQL Server의 DB 인스턴스 생성 및 연결](custom-creating-sqlserver.md)을 참조하세요.

## 데이터베이스 연결
<a name="custom-sqlserver.workflow.db-connection"></a>

Amazon RDS DB 인스턴스와 마찬가지로 RDS Custom for SQL Server DB 인스턴스는 VPC에 있습닏. 애플리케이션은 RDS Custom for SQL Server와 마찬가지로 SQL 서버 관리 제품군(SSMS)과 같은 클라이언트를 사용하여 RDS Custom 인스턴스에 연결합니다.

## RDS Custom 커스터마이징
<a name="custom-sqlserver.workflow.customization"></a>

RDS Custom 호스트에 액세스하여 소프트웨어를 설치하거나 커스터마이징할 수 있습니다. 변경 사항과 RDS Custom 자동화 간의 충돌을 방지하려면 지정된 기간 동안 자동화를 일시 중지하면 됩니다. 이 기간 동안 RDS Custom은 모니터링 또는 인스턴스 복구를 수행하지 않습니다. 기간이 만료되면 RDS Custom은 전체 자동화를 재개합니다. 자세한 내용은 [RDS Custom 자동화 일시 중지 및 다시 시작](custom-managing-sqlserver.pausing.md)을 참조하세요.

# Amazon RDS Custom for SQL Server 요구 사항 및 제한
<a name="custom-reqs-limits-MS"></a>

다음에서 빠른 참조를 위해 Amazon RDS Custom for SQL Server 요구 사항 및 제한 사항에 대한 요약을 확인할 수 있습니다. 요구 사항 및 제한 사항은 관련 섹션에도 표시됩니다.

**Topics**
+ [리전 및 버전 사용 가능 여부](#custom-reqs-limits-MS.RegionVersionAvailability)
+ [RDS Custom for SQL Server 일반 요구 사항](#custom-reqs-limits.reqsMS)
+ [RDS Custom for SQL Server DB 인스턴스 클래스 지원](custom-reqs-limits.instancesMS.md)
+ [RDS Custom for SQL Server 제한 사항](#custom-reqs-limits.limitsMS)
+ [RDS Custom for SQL Server DB 인스턴스에 대한 문자 집합 및 데이터 정렬 설정](custom-reqs-limits-MS.collation.md)
+ [RDS Custom for SQL Server DB 인스턴스의 현지 시간대](custom-reqs-limits-MS.TimeZone.md)
+ [RDS Custom for SQL Server에서 Service Master Key 사용](custom-sqlserver-features.smk.md)
+ [RDS Custom for SQL Server에서 변경 데이터 캡처(CDC) 지원](custom-sqlserver-features.cdc.md)

## 리전 및 버전 사용 가능 여부
<a name="custom-reqs-limits-MS.RegionVersionAvailability"></a>

기능 가용성 및 해당 지원은 각 데이터베이스 엔진의 특정 버전 및 AWS 리전마다 다릅니다. Amazon RDS Custom for SQL Server에서 사용할 수 있는 Amazon RDS의 버전 및 리전에 대한 자세한 내용은 [RDS Custom for SQL Server를 지원하는 리전 및 DB 엔진](Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.md#Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.sq) 섹션을 참조하세요.

## RDS Custom for SQL Server 일반 요구 사항
<a name="custom-reqs-limits.reqsMS"></a>

Amazon RDS Custom for Server에 대한 다음 요구 사항을 준수해야 합니다.
+ [RDS Custom for SQL Server DB 인스턴스 클래스 지원](custom-reqs-limits.instancesMS.md)에 표시된 인스턴스 클래스를 사용합니다. 지원되는 스토리지 유형은 gp2, gp3, io1 및 io2 Block Express 유형의 SSD(Solid State Drive)뿐입니다. io1, gp2, gp3의 최대 스토리지 한도는 16TiB인 반면 io2는 64TiB를 지원합니다.
+ RDS Custom DB instance 생성을 위해 대칭 암호화 AWS KMS 키를 가지고 있는지 확인하세요. 자세한 내용은 [대칭 암호화 AWS KMS 키 보유 여부 확인](custom-setup-sqlserver.md#custom-setup-sqlserver.cmk)을 참조하세요.
+ AWS Identity and Access Management (IAM) 역할과 인스턴스 프로파일을 생성해야 합니다. 자세한 내용은 [수동으로 IAM 역할과 인스턴스 프로파일 생성](custom-setup-sqlserver.md#custom-setup-sqlserver.iam) 및 [AWS Management Console을 사용한 자동 인스턴스 프로파일 생성](custom-setup-sqlserver.md#custom-setup-sqlserver.instanceProfileCreation)(을)를 참조하세요.
+ RDS Custom이 다른 AWS 서비스에 액세스하는 데 사용할 수 있는 네트워킹 구성을 제공해야 합니다. 특정 요구 사항은 [2단계: 네트워킹, 인스턴스 프로파일 및 암호화 구성](custom-setup-sqlserver.md#custom-setup-sqlserver.iam-vpc) 섹션을 참조하세요.
+ RDS Custom과 Amazon RDS DB 인스턴스의 합산 수가 할당량 한도를 초과할 수 없습니다. 예를 들어, 할당량이 40개의 DB 인스턴스인 경우 RDS Custom for Server DB 인스턴스 20개와 Amazon RDS DB 인스턴스 20개를 보유할 수 있습니다.
+ RDS Custom은 이름이 `do-not-delete-rds-custom-`으로 시작하는 AWS CloudTrail 추적을 자동으로 생성합니다. RDS Custom 지원 경계는 CloudTrail의 이벤트에 따라 작업이 RDS Custom 자동화에 영향을 미치는지 여부를 결정합니다. RDS Custom은 첫 번째 DB 인스턴스를 생성할 때 추적을 생성합니다. 기존 CloudTrail을 사용하려면 AWS Support에 문의하세요. 자세한 내용은 [AWS CloudTrail](custom-concept.md#custom-concept.components.CloudTrail) 섹션을 참조하세요.

# RDS Custom for SQL Server DB 인스턴스 클래스 지원
<a name="custom-reqs-limits.instancesMS"></a>

[describe-orderable-db-instance-options](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/rds/describe-orderable-db-instance-options.html) 명령을 사용하여 리전에서 DB 인스턴스 클래스가 지원되는지 확인합니다.

RDS Custom for SQL Server는 다음 테이블에 나와 있는 DB 인스턴스 클래스를 지원합니다.


| SQL Server 에디션 | RDS 고객 지원 | 
| --- | --- | 
|  Enterprise Edition  |  db.r5.large-db.r5.24xlarge db.r5b.xlarge–db.r5b.24xlarge db.m5.xlarge-db.m5.24xlarge db.r6i.xlarge–db.r6i.32xlarge db.m6i.xlarge–db.m6i.32xlarge db.x2iedn.xlarge–db.x2iedn.32xlarge  | 
|  Standard Edition  |  db.r5.large-db.r5.24xlarge db.r5b.large–db.r5b.8xlarge db.m5.large-db.m5.24xlarge db.r6i.large–db.r6i.8xlarge db.m6i.large–db.m6i.8xlarge db.x2iedn.xlarge–db.x2iedn.8xlarge  | 
|  Developer Edition  |  db.r5.large-db.r5.24xlarge db.r5b.xlarge–db.r5b.24xlarge db.m5.xlarge-db.m5.24xlarge db.r6i.xlarge–db.r6i.32xlarge db.m6i.xlarge–db.m6i.32xlarge db.x2iedn.xlarge–db.x2iedn.32xlarge  | 
|  Web Edition  |  db.r5.large–db.r5.4xlarge db.m5.large-db.m5.4xlarge db.r6i.large–db.r6i.4xlarge db.m6i.large–db.m6i.4xlarge db.r5b.large–db.r5b.4xlarge  | 

다음 권장 사항은 db.x2iedn 클래스 유형에 적용됩니다.
+ 생성 시 로컬 스토리지는 원시 및 할당되지 않은 디바이스입니다. 이 인스턴스 클래스와 함께 DB 인스턴스를 사용하기 전에 먼저 로컬 스토리지를 마운트하고 포맷해야 합니다. 그런 다음 최적의 성능을 보장하기 위해 `tempdb`를 구성합니다. 자세한 내용은 [Optimize tempdb performance in Amazon RDS Custom for SQL Server using local instance storage](https://aws.amazon.com/blogs/database/optimize-tempdb-performance-in-amazon-rds-custom-for-sql-server-using-local-instance-storage/)를 참조하세요.
+ 컴퓨팅 규모 조정, 인스턴스 교체, 스냅샷 복원 또는 시점 복구(PITR)와 같은 DB 인스턴스 작업을 실행하면 로컬 스토리지는 원시 및 할당되지 않은 상태로 되돌아갑니다. 이러한 상황에서는 드라이브를 다시 마운트하고, 다시 포맷하고, 재구성하고, `tempdb`를 사용하여 기능을 복원해야 합니다.
+ 다중 AZ 인스턴스의 경우 대기 DB 인스턴스에서 구성을 수행하는 것이 좋습니다. 이렇게 하면 구성이 대기 인스턴스에 이미 설정되어 있기 때문에 장애 조치가 발생하더라도 시스템이 문제 없이 계속 작동합니다.

## RDS Custom for SQL Server 제한 사항
<a name="custom-reqs-limits.limitsMS"></a>

RDS Custom for SQL Server에는 다음과 같은 제한 사항이 적용됩니다.
+ Amazon RDS for RDS Custom for SQL Server DB 인스턴스에서는 읽기 전용 복제본을 생성할 수 없습니다. 그러나 다중 AZ 배포를 사용하여 고가용성을 자동으로 구성할 수 있습니다. 자세한 내용은 [RDS Custom for SQL Server에 대한 다중 AZ 배포 구성 및 관리](custom-sqlserver-multiaz.md) 섹션을 참조하세요.
+ 기존 RDS Custom for SQL Server DB 인스턴스의 DB 인스턴스 식별자는 수정할 수 없습니다.
+ 사용자 지정 엔진 버전(CEV)을 사용하여 생성되지 않은 RDS Custom for SQL Server DB 인스턴스의 경우 Microsoft Windows 운영 체제에 대한 변경의 지속성을 보장할 수 없습니다. 예를 들어 스냅샷 또는 특정 시점 복원 작업을 시작하면 이러한 변경 내용이 손실됩니다. RDS Custom for SQL Server DB 인스턴스가 CEV를 사용하여 생성된 경우에는 이러한 변경 내용이 지속됩니다.
+ 일부 옵션은 지원되지 않습니다. 예를 들어 RDS Custom for SQL Server DB 인스턴스를 생성할 때 다음과 같은 작업을 수행할 수 없습니다.
  + DB 인스턴스 클래스의 코어당 CPU 코어 및 스레드 수를 변경합니다.
  + 스토리지 자동 조정을 활성화합니다.
  + 고유한 DB 파라미터 그룹, 옵션 그룹 또는 문자 집합을 지정합니다.
  + Performance Insights 또는 Database Insights를 켭니다.
  + 마이너 버전 자동 업그레이드를 활성화합니다.
+ 최대 DB 인스턴스 스토리지는 64TiB입니다.
+ RDS Custom for SQL Server에는 RDS 프록시를 사용할 수 없습니다.
+ RDS Custom for SQL Server DB 인스턴스에는 `describe-reserved-db-instances` API를 사용할 수 없습니다.

# RDS Custom for SQL Server DB 인스턴스에 대한 문자 집합 및 데이터 정렬 설정
<a name="custom-reqs-limits-MS.collation"></a>

## 개요
<a name="custom-reqs-limits-MS.collation.overview"></a>

RDS Custom for SQL Server DB 인스턴스를 사용하면 데이터를 저장하고 정렬하는 방법을 결정하는 문자 집합 및 데이터 정렬 설정을 구성할 수 있습니다. 문자 집합은 허용되는 문자를 정의하는 반면, 데이터 정렬은 데이터 정렬 및 비교를 위한 규칙을 지정합니다. 다국어 데이터로 작업하거나 특정 정렬 요구 사항이 있는 애플리케이션에 적절한 문자 집합과 데이터 정렬을 설정하는 것이 중요합니다. 예를 들어 액센트 표시된 문자를 처리하고 언어별 정렬 규칙을 정의하거나 서로 다른 로캘 전반에서 데이터 무결성을 유지해야 할 수 있습니다. 다음 섹션에서는 RDS Custom for SQL Server DB 인스턴스의 문자 집합 및 데이터 정렬 지원에 대한 정보를 제공합니다.

RDS Custom for SQL Server는 SQL\$1라틴, 일본어, 독일어 및 아랍어 로케일의 기존 인코딩과 UTF-8 인코딩 모두에서 다양한 서버 데이터 정렬을 지원합니다. 기본 서버 데이터 정렬은 `SQL_Latin1_General_CP1_CI_AS`이지만 지원되는 다른 데이터 정렬을 선택하여 사용할 수 있습니다. RDS for SQL Server에서 사용하는 것과 동일한 절차를 사용하여 데이터 정렬을 선택할 수 있습니다. 자세한 내용은 [Amazon RDS for Microsoft SQL Server의 데이터 정렬 및 문자 세트 관리](Appendix.SQLServer.CommonDBATasks.Collation.md) 섹션을 참조하세요.

## 고려 사항
<a name="custom-reqs-limits-MS.collation.considerations"></a>

RDS Custom for SQL Server에서 서버 데이터 정렬을 사용할 때는 다음과 같은 요구 사항 및 제한 사항이 적용됩니다.
+ RDS Custom for SQL Server DB 인스턴스를 생성할 때 서버 데이터 정렬을 설정할 수 있습니다. DB 인스턴스를 생성한 후에는 서버 수준 데이터 정렬을 수정할 수 없습니다.
+ DB 스냅샷에서 복원하거나 시점 복구(PITR)를 수행할 때는 서버 수준 데이터 정렬을 수정할 수 없습니다.
+ RDS Custom for SQL Server CEV에서 DB 인스턴스를 생성할 때 DB 인스턴스는 CEV의 서버 데이터 정렬을 상속하지 않습니다. 대신 기본 서버 데이터 정렬인 `SQL_Latin1_General_CP1_CI_AS`가 사용됩니다. RDS Custom for SQL Server CEV에서 기본이 아닌 서버 데이터 정렬을 구성한 후 새 DB 인스턴스에서도 동일한 서버 데이터 정렬을 사용하려면 CEV에서 DB 인스턴스를 생성할 때 동일한 데이터 정렬을 선택해야 합니다.
**참고**  
DB 인스턴스를 생성할 때 선택한 데이터 정렬이 CEV의 데이터 정렬과 다른 경우, 새 RDS Custom for SQL Server DB 인스턴스의 Microsoft SQL Server 시스템 데이터베이스가 업데이트된 데이터 정렬을 사용하도록 재구축됩니다. 재구축 프로세스는 새 RDS Custom for SQL Server DB 인스턴스에서만 수행되며 CEV 자체에는 영향을 주지 않습니다. CEV의 시스템 데이터베이스에 대한 이전 수정 사항은 시스템 데이터베이스가 재구축된 후 새 RDS Custom for SQL Server DB 인스턴스에 유지되지 않습니다. 일부 수정 사항의 예로는 `master` 데이터베이스의 사용자 정의 객체, `msdb` 데이터베이스의 예약된 작업 또는 CEV `model` 데이터베이스의 기본 데이터베이스 설정 변경 등이 있습니다. 새 RDS Custom for SQL Server DB 인스턴스가 생성된 후 수정 내용을 수동으로 다시 생성할 수 있습니다.
+ RDS Custom for SQL Server 사용자 지정 엔진 버전(CEV)에서 DB 인스턴스를 생성하고 CEV와 다른 데이터 정렬을 선택하는 경우, 새 DB 인스턴스에서 Microsoft SQL Server 시스템 데이터베이스를 재구축할 수 있도록 CEV 생성에 사용되는 골든 이미지(AMI)가 다음 요구 사항을 충족하는지 확인합니다.
  + SQL Server 2022의 경우 `setup.exe` 파일이 `C:\Program Files\Microsoft SQL Server\160\Setup Bootstrap\SQL2022\setup.exe` 경로에 있는지 확인합니다.
  + SQL Server 2019의 경우 `setup.exe` 파일이 다음 경로에 있는지 확인합니다. `C:\Program Files\Microsoft SQL Server\150\Setup Bootstrap\SQL2019\setup.exe` 
  + `master`, `model` 및 `msdb` 데이터베이스의 데이터 및 로그 템플릿 사본은 기본 위치에 있어야 합니다. 자세한 정보는 Microsoft 공개 문서의 [시스템 데이터베이스 재구축](https://learn.microsoft.com/en-us/sql/relational-databases/databases/rebuild-system-databases?view=sql-server-ver16#Restrictions         )을 참조하세요.
  + SQL Server 데이터베이스 엔진이 `NT Service\MSSQLSERVER ` 또는 `NT AUTHORITY\NETWORK SERVICE`를 서비스 계정으로 사용하는지 확인합니다. DB 인스턴스에 기본이 아닌 서버 데이터 정렬을 구성할 때 다른 계정은 `C:\` 드라이브에 대한 필수 권한을 갖지 않게 됩니다.
+ 새 DB 인스턴스에 대해 선택한 서버 데이터 정렬이 CEV에 구성된 데이터 정렬과 동일한 경우, 새 RDS Custom for SQL Server DB 인스턴스의 Microsoft SQL Server 시스템 데이터베이스는 재구축 프로세스를 거치지 않습니다. CEV의 시스템 데이터베이스에 대한 이전 수정 사항은 자동으로 새 RDS Custom for SQL Server DB 인스턴스에 적용됩니다.

## 지원되는 데이터 정렬
<a name="custom-reqs-limits-MS.collation.supportedCollations"></a>

데이터 정렬을 다음 표에 나열된 값 중 하나로 설정할 수 있습니다.


| 콜레이션 | 설명 | 
| --- |--- |
| Arabic\$1100\$1BIN | Arabic-100, 바이너리 정렬 | 
| Arabic\$1100\$1BIN2 | Arabic-100, 이진 코드 포인트 비교 정렬 | 
| Arabic\$1100\$1CI\$1AI | Arabic-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Arabic\$1100\$1CI\$1AI\$1KS | Arabic-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Arabic\$1100\$1CI\$1AI\$1KS\$1SC | Arabic-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자 | 
| Arabic\$1100\$1CI\$1AI\$1KS\$1SC\$1UTF8 | Arabic-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Arabic\$1100\$1CI\$1AI\$1KS\$1WS | Arabic-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분 | 
| Arabic\$1100\$1CI\$1AI\$1KS\$1WS\$1SC | Arabic-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자 | 
| Arabic\$1100\$1CI\$1AI\$1KS\$1WS\$1SC\$1UTF8 | Arabic-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Arabic\$1100\$1CI\$1AI\$1SC | Arabic-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자 | 
| Arabic\$1100\$1CI\$1AI\$1SC\$1UTF8 | Arabic-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Arabic\$1100\$1CI\$1AI\$1WS | Arabic-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Arabic\$1100\$1CI\$1AI\$1WS\$1SC | Arabic-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자 | 
| Arabic\$1100\$1CI\$1AI\$1WS\$1SC\$1UTF8 | Arabic-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Arabic\$1100\$1CI\$1AS | Arabic-100, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Arabic\$1100\$1CI\$1AS\$1KS | Arabic-100, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Arabic\$1100\$1CI\$1AS\$1KS\$1SC | Arabic-100, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자 | 
| Arabic\$1100\$1CI\$1AS\$1KS\$1SC\$1UTF8 | Arabic-100, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Arabic\$1100\$1CI\$1AS\$1KS\$1WS | Arabic-100, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분 | 
| Arabic\$1100\$1CI\$1AS\$1KS\$1WS\$1SC | Arabic-100, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자 | 
| Arabic\$1100\$1CI\$1AS\$1KS\$1WS\$1SC\$1UTF8 | Arabic-100, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Arabic\$1100\$1CI\$1AS\$1SC | Arabic-100, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자 | 
| Arabic\$1100\$1CI\$1AS\$1SC\$1UTF8 | Arabic-100, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Arabic\$1100\$1CI\$1AS\$1WS | Arabic-100, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Arabic\$1100\$1CI\$1AS\$1WS\$1SC | Arabic-100, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자 | 
| Arabic\$1100\$1CI\$1AS\$1WS\$1SC\$1UTF8 | Arabic-100, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Arabic\$1100\$1CS\$1AI | Arabic-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Arabic\$1100\$1CS\$1AI\$1KS | Arabic-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Arabic\$1100\$1CS\$1AI\$1KS\$1SC | Arabic-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자 | 
| Arabic\$1100\$1CS\$1AI\$1KS\$1SC\$1UTF8 | Arabic-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Arabic\$1100\$1CS\$1AI\$1KS\$1WS | Arabic-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분 | 
| Arabic\$1100\$1CS\$1AI\$1KS\$1WS\$1SC | Arabic-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자 | 
| Arabic\$1100\$1CS\$1AI\$1KS\$1WS\$1SC\$1UTF8 | Arabic-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Arabic\$1100\$1CS\$1AI\$1SC | Arabic-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자 | 
| Arabic\$1100\$1CS\$1AI\$1SC\$1UTF8 | Arabic-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Arabic\$1100\$1CS\$1AI\$1WS | Arabic-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Arabic\$1100\$1CS\$1AI\$1WS\$1SC | Arabic-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자 | 
| Arabic\$1100\$1CS\$1AI\$1WS\$1SC\$1UTF8 | Arabic-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Arabic\$1100\$1CS\$1AS | Arabic-100, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Arabic\$1100\$1CS\$1AS\$1KS | Arabic-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Arabic\$1100\$1CS\$1AS\$1KS\$1SC | Arabic-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자 | 
| Arabic\$1100\$1CS\$1AS\$1KS\$1SC\$1UTF8 | Arabic-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Arabic\$1100\$1CS\$1AS\$1KS\$1WS | Arabic-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분 | 
| Arabic\$1100\$1CS\$1AS\$1KS\$1WS\$1SC | Arabic-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자 | 
| Arabic\$1100\$1CS\$1AS\$1KS\$1WS\$1SC\$1UTF8 | Arabic-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Arabic\$1100\$1CS\$1AS\$1SC | Arabic-100, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자 | 
| Arabic\$1100\$1CS\$1AS\$1SC\$1UTF8 | Arabic-100, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Arabic\$1100\$1CS\$1AS\$1WS | Arabic-100, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Arabic\$1100\$1CS\$1AS\$1WS\$1SC | Arabic-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자 | 
| Arabic\$1100\$1CS\$1AS\$1WS\$1SC\$1UTF8 | Arabic-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Arabic\$1BIN | 아랍어, 이진 정렬 | 
| Arabic\$1BIN2 | 아랍어, 이진 코드 포인트 비교 정렬 | 
| Arabic\$1CI\$1AI | 아랍어, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Arabic\$1CI\$1AI\$1KS | 아랍어, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Arabic\$1CI\$1AI\$1KS\$1WS | 아랍어, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분 | 
| Arabic\$1CI\$1AI\$1WS | 아랍어, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Arabic\$1CI\$1AS | 아랍어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Arabic\$1CI\$1AS\$1KS | 아랍어, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Arabic\$1CI\$1AS\$1KS\$1WS | 아랍어, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분 | 
| Arabic\$1CI\$1AS\$1WS | 아랍어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Arabic\$1CS\$1AI | 아랍어, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Arabic\$1CS\$1AI\$1KS | 아랍어, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Arabic\$1CS\$1AI\$1KS\$1WS | 아랍어, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분 | 
| Arabic\$1CS\$1AI\$1WS | 아랍어, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Arabic\$1CS\$1AS | 아랍어, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Arabic\$1CS\$1AS\$1KS | 아랍어, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Arabic\$1CS\$1AS\$1KS\$1WS | 아랍어, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분 | 
| Arabic\$1CS\$1AS\$1WS | 아랍어, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Chinese\$1PRC\$1BIN2 | 중국어-중화인민공화국어, 이진 코드 포인트 비교 정렬 | 
| Chinese\$1PRC\$1CI\$1AS | 중국어-중화인민공화국어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Chinese\$1Taiwan\$1Stroke\$1CI\$1AS | 중국어-대만어-스트로크, 소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Danish\$1Norwegian\$1CI\$1AS | 덴마크어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Finnish\$1Swedish\$1CI\$1AS | 핀란드어-스웨덴어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| French\$1CI\$1AS | 프랑스어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| German\$1PhoneBook\$1100\$1BIN | German-PhoneBook-100, 이진 정렬 | 
| German\$1PhoneBook\$1100\$1BIN2 | German-PhoneBook-100, 이진 코드 포인트 비교 정렬 | 
| German\$1PhoneBook\$1100\$1CI\$1AI | German-PhoneBook-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| German\$1PhoneBook\$1100\$1CI\$1AI\$1KS | German-PhoneBook-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분 | 
| German\$1PhoneBook\$1100\$1CI\$1AI\$1KS\$1SC | German-PhoneBook-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자 | 
| German\$1PhoneBook\$1100\$1CI\$1AI\$1KS\$1SC\$1UTF8 | German-PhoneBook-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| German\$1PhoneBook\$1100\$1CI\$1AI\$1KS\$1WS | German-PhoneBook-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분 | 
| German\$1PhoneBook\$1100\$1CI\$1AI\$1KS\$1WS\$1SC | German-PhoneBook-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자 | 
| German\$1PhoneBook\$1100\$1CI\$1AI\$1KS\$1WS\$1SC\$1UTF8 | German-PhoneBook-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, UTF8 | 
| German\$1PhoneBook\$1100\$1CI\$1AI\$1SC | German-PhoneBook-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자 | 
| German\$1PhoneBook\$1100\$1CI\$1AI\$1SC\$1UTF8 | German-PhoneBook-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| German\$1PhoneBook\$1100\$1CI\$1AI\$1WS | German-PhoneBook-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분 | 
| German\$1PhoneBook\$1100\$1CI\$1AI\$1WS\$1SC | German-PhoneBook-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자 | 
| German\$1PhoneBook\$1100\$1CI\$1AI\$1WS\$1SC\$1UTF8 | German-PhoneBook-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, UTF8 | 
| German\$1PhoneBook\$1100\$1CI\$1AS | German-PhoneBook-100, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| German\$1PhoneBook\$1100\$1CI\$1AS\$1KS | German-PhoneBook-100, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분 | 
| German\$1PhoneBook\$1100\$1CI\$1AS\$1KS\$1SC | German-PhoneBook-100, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자 | 
| German\$1PhoneBook\$1100\$1CI\$1AS\$1KS\$1SC\$1UTF8 | German-PhoneBook-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| German\$1PhoneBook\$1100\$1CI\$1AS\$1KS\$1WS | German-PhoneBook-100, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분 | 
| German\$1PhoneBook\$1100\$1CI\$1AS\$1KS\$1WS\$1SC | German-PhoneBook-100, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자 | 
| German\$1PhoneBook\$1100\$1CI\$1AS\$1KS\$1WS\$1SC\$1UTF8 | German-PhoneBook-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, UTF8 | 
| German\$1PhoneBook\$1100\$1CI\$1AS\$1SC | German-PhoneBook-100, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자 | 
| German\$1PhoneBook\$1100\$1CI\$1AS\$1SC\$1UTF8 | German-PhoneBook-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| German\$1PhoneBook\$1100\$1CI\$1AS\$1WS | German-PhoneBook-100, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분 | 
| German\$1PhoneBook\$1100\$1CI\$1AS\$1WS\$1SC | German-PhoneBook-100, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자 | 
| German\$1PhoneBook\$1100\$1CI\$1AS\$1WS\$1SC\$1UTF8 | German-PhoneBook-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, UTF8 | 
| German\$1PhoneBook\$1100\$1CS\$1AI | German-PhoneBook-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| German\$1PhoneBook\$1100\$1CS\$1AI\$1KS | German-PhoneBook-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분 | 
| German\$1PhoneBook\$1100\$1CS\$1AI\$1KS\$1SC | German-PhoneBook-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자 | 
| German\$1PhoneBook\$1100\$1CS\$1AI\$1KS\$1SC\$1UTF8 | German-PhoneBook-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| German\$1PhoneBook\$1100\$1CS\$1AI\$1KS\$1WS | German-PhoneBook-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분 | 
| German\$1PhoneBook\$1100\$1CS\$1AI\$1KS\$1WS\$1SC | German-PhoneBook-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자 | 
| German\$1PhoneBook\$1100\$1CS\$1AI\$1KS\$1WS\$1SC\$1UTF8 | German-PhoneBook-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, UTF8 | 
| German\$1PhoneBook\$1100\$1CS\$1AI\$1SC | German-PhoneBook-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자 | 
| German\$1PhoneBook\$1100\$1CS\$1AI\$1SC\$1UTF8 | German-PhoneBook-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| German\$1PhoneBook\$1100\$1CS\$1AI\$1WS | German-PhoneBook-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분 | 
| German\$1PhoneBook\$1100\$1CS\$1AI\$1WS\$1SC | German-PhoneBook-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자 | 
| German\$1PhoneBook\$1100\$1CS\$1AI\$1WS\$1SC\$1UTF8 | German-PhoneBook-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, UTF8 | 
| German\$1PhoneBook\$1100\$1CS\$1AS | German-PhoneBook-100, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| German\$1PhoneBook\$1100\$1CS\$1AS\$1KS | German-PhoneBook-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분 | 
| German\$1PhoneBook\$1100\$1CS\$1AS\$1KS\$1SC | German-PhoneBook-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자 | 
| German\$1PhoneBook\$1100\$1CS\$1AS\$1KS\$1SC\$1UTF8 | German-PhoneBook-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| German\$1PhoneBook\$1100\$1CS\$1AS\$1KS\$1WS | German-PhoneBook-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분 | 
| German\$1PhoneBook\$1100\$1CS\$1AS\$1KS\$1WS\$1SC | German-PhoneBook-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자 | 
| German\$1PhoneBook\$1100\$1CS\$1AS\$1KS\$1WS\$1SC\$1UTF8 | German-PhoneBook-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, UTF8 | 
| German\$1PhoneBook\$1BIN | German-PhoneBook, 이진 정렬 | 
| German\$1PhoneBook\$1BIN2 | German-PhoneBook, 이진 코드 포인트 비교 정렬 | 
| German\$1PhoneBook\$1CI\$1AI | German-PhoneBook, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| German\$1PhoneBook\$1CI\$1AI\$1KS | German-PhoneBook, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분 | 
| German\$1PhoneBook\$1CI\$1AI\$1KS\$1WS | German-PhoneBook, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분 | 
| German\$1PhoneBook\$1CI\$1AI\$1WS | German-PhoneBook, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분 | 
| German\$1PhoneBook\$1CI\$1AS | German-PhoneBook, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| German\$1PhoneBook\$1CI\$1AS\$1KS | German-PhoneBook, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분 | 
| German\$1PhoneBook\$1CI\$1AS\$1KS\$1WS | German-PhoneBook, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분 | 
| German\$1PhoneBook\$1CI\$1AS\$1WS | German-PhoneBook, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분 | 
| German\$1PhoneBook\$1CS\$1AI | German-PhoneBook, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| German\$1PhoneBook\$1CS\$1AI\$1KS | German-PhoneBook, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분 | 
| German\$1PhoneBook\$1CS\$1AI\$1KS\$1WS | German-PhoneBook, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분 | 
| German\$1PhoneBook\$1CS\$1AI\$1WS | German-PhoneBook, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분 | 
| German\$1PhoneBook\$1CS\$1AS | German-PhoneBook, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| German\$1PhoneBook\$1CS\$1AS\$1KS | German-PhoneBook, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분 | 
| German\$1PhoneBook\$1CS\$1AS\$1KS\$1WS | German-PhoneBook, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분 | 
| German\$1PhoneBook\$1CS\$1AS\$1WS | German-PhoneBook, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Hebrew\$1BIN | 히브리어, 이진 정렬 | 
| Hebrew\$1CI\$1AS | 히브리어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Japanese\$190\$1BIN | Japanese-90, 이진 정렬 | 
| Japanese\$190\$1BIN2 | Japanese-90, 이진 코드 포인트 비교 정렬 | 
| Japanese\$190\$1CI\$1AI | Japanese-90, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Japanese\$190\$1CI\$1AI\$1KS | Japanese-90, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Japanese\$190\$1CI\$1AI\$1KS\$1SC | Japanese-90, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자 | 
| Japanese\$190\$1CI\$1AI\$1KS\$1SC\$1UTF8 | Japanese-90, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Japanese\$190\$1CI\$1AI\$1KS\$1WS | Japanese-90, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분 | 
| Japanese\$190\$1CI\$1AI\$1KS\$1WS\$1SC | Japanese-90, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자 | 
| Japanese\$190\$1CI\$1AI\$1KS\$1WS\$1SC\$1UTF8 | Japanese-90, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Japanese\$190\$1CI\$1AI\$1SC | Japanese-90, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자 | 
| Japanese\$190\$1CI\$1AI\$1SC\$1UTF8 | Japanese-90, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Japanese\$190\$1CI\$1AI\$1WS | Japanese-90, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Japanese\$190\$1CI\$1AI\$1WS\$1SC | Japanese-90, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자 | 
| Japanese\$190\$1CI\$1AI\$1WS\$1SC\$1UTF8 | Japanese-90, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Japanese\$190\$1CI\$1AS | Japanese-90, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Japanese\$190\$1CI\$1AS\$1KS | Japanese-90, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Japanese\$190\$1CI\$1AS\$1KS\$1SC | Japanese-90, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자 | 
| Japanese\$190\$1CI\$1AS\$1KS\$1SC\$1UTF8 | Japanese-90, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Japanese\$190\$1CI\$1AS\$1KS\$1WS | Japanese-90, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분 | 
| Japanese\$190\$1CI\$1AS\$1KS\$1WS\$1SC | Japanese-90, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자 | 
| Japanese\$190\$1CI\$1AS\$1KS\$1WS\$1SC\$1UTF8 | Japanese-90, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Japanese\$190\$1CI\$1AS\$1SC | Japanese-90, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자 | 
| Japanese\$190\$1CI\$1AS\$1SC\$1UTF8 | Japanese-90, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Japanese\$190\$1CI\$1AS\$1WS | Japanese-90, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Japanese\$190\$1CI\$1AS\$1WS\$1SC | Japanese-90, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자 | 
| Japanese\$190\$1CI\$1AS\$1WS\$1SC\$1UTF8 | Japanese-90, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Japanese\$190\$1CS\$1AI | Japanese-90, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Japanese\$190\$1CS\$1AI\$1KS | Japanese-90, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Japanese\$190\$1CS\$1AI\$1KS\$1SC | Japanese-90, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자 | 
| Japanese\$190\$1CS\$1AI\$1KS\$1SC\$1UTF8 | Japanese-90, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Japanese\$190\$1CS\$1AI\$1KS\$1WS | Japanese-90, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분 | 
| Japanese\$190\$1CS\$1AI\$1KS\$1WS\$1SC | Japanese-90, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자 | 
| Japanese\$190\$1CS\$1AI\$1KS\$1WS\$1SC\$1UTF8 | Japanese-90, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Japanese\$190\$1CS\$1AI\$1SC | Japanese-90, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자 | 
| Japanese\$190\$1CS\$1AI\$1SC\$1UTF8 | Japanese-90, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Japanese\$190\$1CS\$1AI\$1WS | Japanese-90, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Japanese\$190\$1CS\$1AI\$1WS\$1SC | Japanese-90, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자 | 
| Japanese\$190\$1CS\$1AI\$1WS\$1SC\$1UTF8 | Japanese-90, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Japanese\$190\$1CS\$1AS | Japanese-90, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Japanese\$190\$1CS\$1AS\$1KS | Japanese-90, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Japanese\$190\$1CS\$1AS\$1KS\$1SC | Japanese-90, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자 | 
| Japanese\$190\$1CS\$1AS\$1KS\$1SC\$1UTF8 | Japanese-90, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Japanese\$190\$1CS\$1AS\$1KS\$1WS | Japanese-90, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분 | 
| Japanese\$190\$1CS\$1AS\$1KS\$1WS\$1SC | Japanese-90, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자 | 
| Japanese\$190\$1CS\$1AS\$1KS\$1WS\$1SC\$1UTF8 | Japanese-90, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Japanese\$190\$1CS\$1AS\$1SC | Japanese-90, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자 | 
| Japanese\$190\$1CS\$1AS\$1SC\$1UTF8 | Japanese-90, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Japanese\$190\$1CS\$1AS\$1WS | Japanese-90, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Japanese\$190\$1CS\$1AS\$1WS\$1SC | Japanese-90, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자 | 
| Japanese\$190\$1CS\$1AS\$1WS\$1SC\$1UTF8 | Japanese-90, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Japanese\$1BIN | 일본어, 이진 정렬 | 
| Japanese\$1BIN2 | 일본어, 이진 코드 포인트 비교 정렬 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1BIN | Japanese-Bushu-Kakusu-100, 이진 정렬 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1BIN2 | Japanese-Bushu-Kakusu-100, 이진 코드 포인트 비교 정렬 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AI | Japanese-Bushu-Kakusu-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AI\$1KS | Japanese-Bushu-Kakusu-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AI\$1KS\$1SC | Japanese-Bushu-Kakusu-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AI\$1KS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AI\$1KS\$1WS | Japanese-Bushu-Kakusu-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AI\$1KS\$1WS\$1SC | Japanese-Bushu-Kakusu-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AI\$1KS\$1WS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AI\$1SC | Japanese-Bushu-Kakusu-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AI\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AI\$1WS | Japanese-Bushu-Kakusu-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AI\$1WS\$1SC | Japanese-Bushu-Kakusu-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AI\$1WS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AS | Japanese-Bushu-Kakusu-100, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AS\$1KS | Japanese-Bushu-Kakusu-100, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AS\$1KS\$1SC | Japanese-Bushu-Kakusu-100, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AS\$1KS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AS\$1KS\$1WS | Japanese-Bushu-Kakusu-100, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AS\$1KS\$1WS\$1SC | Japanese-Bushu-Kakusu-100, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AS\$1KS\$1WS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AS\$1SC | Japanese-Bushu-Kakusu-100, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AS\$1WS | Japanese-Bushu-Kakusu-100, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AS\$1WS\$1SC | Japanese-Bushu-Kakusu-100, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CI\$1AS\$1WS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AI | Japanese-Bushu-Kakusu-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AI\$1KS | Japanese-Bushu-Kakusu-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AI\$1KS\$1SC | Japanese-Bushu-Kakusu-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AI\$1KS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AI\$1KS\$1WS | Japanese-Bushu-Kakusu-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AI\$1KS\$1WS\$1SC | Japanese-Bushu-Kakusu-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AI\$1KS\$1WS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AI\$1SC | Japanese-Bushu-Kakusu-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AI\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AI\$1WS | Japanese-Bushu-Kakusu-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AI\$1WS\$1SC | Japanese-Bushu-Kakusu-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AI\$1WS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AS | Japanese-Bushu-Kakusu-100, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AS\$1KS | Japanese-Bushu-Kakusu-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AS\$1KS\$1SC | Japanese-Bushu-Kakusu-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AS\$1KS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AS\$1KS\$1WS | Japanese-Bushu-Kakusu-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AS\$1KS\$1WS\$1SC | Japanese-Bushu-Kakusu-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AS\$1KS\$1WS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AS\$1SC | Japanese-Bushu-Kakusu-100, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AS\$1WS | Japanese-Bushu-Kakusu-100, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AS\$1WS\$1SC | Japanese-Bushu-Kakusu-100, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자 | 
| Japanese\$1Bushu\$1Kakusu\$1100\$1CS\$1AS\$1WS\$1SC\$1UTF8 | Japanese-Bushu-Kakusu-100, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1BIN | Japanese-Bushu-Kakusu-140, 이진 정렬 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1BIN2 | Japanese-Bushu-Kakusu-140, 이진 코드 포인트 비교 정렬 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AI | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1KS | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1KS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1KS\$1VSS | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1KS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1KS\$1WS | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1KS\$1WS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1KS\$1WS\$1VSS | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1KS\$1WS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1VSS | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1WS | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1WS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1WS\$1VSS | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AI\$1WS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AS | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1KS | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1KS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1KS\$1VSS | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1KS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1KS\$1WS | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1KS\$1WS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1KS\$1WS\$1VSS | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1KS\$1WS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1VSS | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1WS | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1WS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1WS\$1VSS | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CI\$1AS\$1WS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AI | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1KS | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1KS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1KS\$1VSS | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1KS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1KS\$1WS | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1KS\$1WS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1KS\$1WS\$1VSS | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1KS\$1WS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1VSS | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1WS | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1WS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1WS\$1VSS | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AI\$1WS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AS | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1KS | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1KS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1KS\$1VSS | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1KS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1KS\$1WS | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1KS\$1WS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1KS\$1WS\$1VSS | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1KS\$1WS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1VSS | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1WS | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1WS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1WS\$1VSS | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1Bushu\$1Kakusu\$1140\$1CS\$1AS\$1WS\$1VSS\$1UTF8 | Japanese-Bushu-Kakusu-140, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1CI\$1AI | 일본어, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Japanese\$1CI\$1AI\$1KS | 일본어, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Japanese\$1CI\$1AI\$1KS\$1WS | 일본어, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분 | 
| Japanese\$1CI\$1AI\$1WS | 일본어, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Japanese\$1CI\$1AS | 일본어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Japanese\$1CI\$1AS\$1KS | 일본어, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Japanese\$1CI\$1AS\$1KS\$1WS | 일본어, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분 | 
| Japanese\$1CI\$1AS\$1WS | 일본어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Japanese\$1CS\$1AI | 일본어, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Japanese\$1CS\$1AI\$1KS | 일본어, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Japanese\$1CS\$1AI\$1KS\$1WS | 일본어, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분 | 
| Japanese\$1CS\$1AI\$1WS | 일본어, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Japanese\$1CS\$1AS | 일본어, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Japanese\$1CS\$1AS\$1KS | 일본어, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Japanese\$1CS\$1AS\$1KS\$1WS | 일본어, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분 | 
| Japanese\$1CS\$1AS\$1WS | 일본어, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Japanese\$1Unicode\$1BIN | Japanese-Unicode, 이진 정렬 | 
| Japanese\$1Unicode\$1BIN2 | Japanese-Unicode, 이진 코드 포인트 비교 정렬 | 
| Japanese\$1Unicode\$1CI\$1AI | Japanese-Unicode, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Japanese\$1Unicode\$1CI\$1AI\$1KS | Japanese-Unicode, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Japanese\$1Unicode\$1CI\$1AI\$1KS\$1WS | Japanese-Unicode, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분 | 
| Japanese\$1Unicode\$1CI\$1AI\$1WS | Japanese-Unicode, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Japanese\$1Unicode\$1CI\$1AS | Japanese-Unicode, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Japanese\$1Unicode\$1CI\$1AS\$1KS | Japanese-Unicode, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Japanese\$1Unicode\$1CI\$1AS\$1KS\$1WS | Japanese-Unicode, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분 | 
| Japanese\$1Unicode\$1CI\$1AS\$1WS | Japanese-Unicode, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Japanese\$1Unicode\$1CS\$1AI | Japanese-Unicode, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Japanese\$1Unicode\$1CS\$1AI\$1KS | Japanese-Unicode, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Japanese\$1Unicode\$1CS\$1AI\$1KS\$1WS | Japanese-Unicode, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분 | 
| Japanese\$1Unicode\$1CS\$1AI\$1WS | Japanese-Unicode, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Japanese\$1Unicode\$1CS\$1AS | Japanese-Unicode, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Japanese\$1Unicode\$1CS\$1AS\$1KS | Japanese-Unicode, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Japanese\$1Unicode\$1CS\$1AS\$1KS\$1WS | Japanese-Unicode, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분 | 
| Japanese\$1Unicode\$1CS\$1AS\$1WS | Japanese-Unicode, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Japanese\$1XJIS\$1100\$1BIN | Japanese-XJIS-100, 이진 정렬 | 
| Japanese\$1XJIS\$1100\$1BIN2 | Japanese-XJIS-100, 이진 코드 포인트 비교 정렬 | 
| Japanese\$1XJIS\$1100\$1CI\$1AI | Japanese-XJIS-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Japanese\$1XJIS\$1100\$1CI\$1AI\$1KS | Japanese-XJIS-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Japanese\$1XJIS\$1100\$1CI\$1AI\$1KS\$1SC | Japanese-XJIS-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자 | 
| Japanese\$1XJIS\$1100\$1CI\$1AI\$1KS\$1SC\$1UTF8 | Japanese-XJIS-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Japanese\$1XJIS\$1100\$1CI\$1AI\$1KS\$1WS | Japanese-XJIS-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분 | 
| Japanese\$1XJIS\$1100\$1CI\$1AI\$1KS\$1WS\$1SC | Japanese-XJIS-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자 | 
| Japanese\$1XJIS\$1100\$1CI\$1AI\$1KS\$1WS\$1SC\$1UTF8 | Japanese-XJIS-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Japanese\$1XJIS\$1100\$1CI\$1AI\$1SC | Japanese-XJIS-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자 | 
| Japanese\$1XJIS\$1100\$1CI\$1AI\$1SC\$1UTF8 | Japanese-XJIS-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Japanese\$1XJIS\$1100\$1CI\$1AI\$1WS | Japanese-XJIS-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Japanese\$1XJIS\$1100\$1CI\$1AI\$1WS\$1SC | Japanese-XJIS-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자 | 
| Japanese\$1XJIS\$1100\$1CI\$1AI\$1WS\$1SC\$1UTF8 | Japanese-XJIS-100, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Japanese\$1XJIS\$1100\$1CI\$1AS | Japanese-XJIS-100, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Japanese\$1XJIS\$1100\$1CI\$1AS\$1KS | Japanese-XJIS-100, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Japanese\$1XJIS\$1100\$1CI\$1AS\$1KS\$1SC | Japanese-XJIS-100, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자 | 
| Japanese\$1XJIS\$1100\$1CI\$1AS\$1KS\$1SC\$1UTF8 | Japanese-XJIS-100, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Japanese\$1XJIS\$1100\$1CI\$1AS\$1KS\$1WS | Japanese-XJIS-100, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분 | 
| Japanese\$1XJIS\$1100\$1CI\$1AS\$1KS\$1WS\$1SC | Japanese-XJIS-100, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자 | 
| Japanese\$1XJIS\$1100\$1CI\$1AS\$1KS\$1WS\$1SC\$1UTF8 | Japanese-XJIS-100, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Japanese\$1XJIS\$1100\$1CI\$1AS\$1SC | Japanese-XJIS-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자 | 
| Japanese\$1XJIS\$1100\$1CI\$1AS\$1SC\$1UTF8 | Japanese-XJIS-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Japanese\$1XJIS\$1100\$1CI\$1AS\$1WS | Japanese-XJIS-100, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Japanese\$1XJIS\$1100\$1CI\$1AS\$1WS\$1SC | Japanese-XJIS-100, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자 | 
| Japanese\$1XJIS\$1100\$1CI\$1AS\$1WS\$1SC\$1UTF8 | Japanese-XJIS-100, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Japanese\$1XJIS\$1100\$1CS\$1AI | Japanese-XJIS-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Japanese\$1XJIS\$1100\$1CS\$1AI\$1KS | Japanese-XJIS-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Japanese\$1XJIS\$1100\$1CS\$1AI\$1KS\$1SC | Japanese-XJIS-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자 | 
| Japanese\$1XJIS\$1100\$1CS\$1AI\$1KS\$1SC\$1UTF8 | Japanese-XJIS-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Japanese\$1XJIS\$1100\$1CS\$1AI\$1KS\$1WS | Japanese-XJIS-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분 | 
| Japanese\$1XJIS\$1100\$1CS\$1AI\$1KS\$1WS\$1SC | Japanese-XJIS-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자 | 
| Japanese\$1XJIS\$1100\$1CS\$1AI\$1KS\$1WS\$1SC\$1UTF8 | Japanese-XJIS-100, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Japanese\$1XJIS\$1100\$1CS\$1AI\$1SC | Japanese-XJIS-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자 | 
| Japanese\$1XJIS\$1100\$1CS\$1AI\$1SC\$1UTF8 | Japanese-XJIS-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Japanese\$1XJIS\$1100\$1CS\$1AI\$1WS | Japanese-XJIS-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Japanese\$1XJIS\$1100\$1CS\$1AI\$1WS\$1SC | Japanese-XJIS-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자 | 
| Japanese\$1XJIS\$1100\$1CS\$1AI\$1WS\$1SC\$1UTF8 | Japanese-XJIS-100, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Japanese\$1XJIS\$1100\$1CS\$1AS | Japanese-XJIS-100, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Japanese\$1XJIS\$1100\$1CS\$1AS\$1KS | Japanese-XJIS-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Japanese\$1XJIS\$1100\$1CS\$1AS\$1KS\$1SC | Japanese-XJIS-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자 | 
| Japanese\$1XJIS\$1100\$1CS\$1AS\$1KS\$1SC\$1UTF8 | Japanese-XJIS-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Japanese\$1XJIS\$1100\$1CS\$1AS\$1KS\$1WS | Japanese-XJIS-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분 | 
| Japanese\$1XJIS\$1100\$1CS\$1AS\$1KS\$1WS\$1SC | Japanese-XJIS-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자 | 
| Japanese\$1XJIS\$1100\$1CS\$1AS\$1KS\$1WS\$1SC\$1UTF8 | Japanese-XJIS-100, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, UTF8 | 
| Japanese\$1XJIS\$1100\$1CS\$1AS\$1SC | Japanese-XJIS-100, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자 | 
| Japanese\$1XJIS\$1100\$1CS\$1AS\$1SC\$1UTF8 | Japanese-XJIS-100, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Japanese\$1XJIS\$1100\$1CS\$1AS\$1WS | Japanese-XJIS-100, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분 | 
| Japanese\$1XJIS\$1140\$1BIN | Japanese-XJIS-140, 이진 정렬 | 
| Japanese\$1XJIS\$1140\$1BIN2 | Japanese-XJIS-140, 이진 코드 포인트 비교 정렬 | 
| Japanese\$1XJIS\$1140\$1CI\$1AI | Japanese-XJIS-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1XJIS\$1140\$1CI\$1AI\$1KS | Japanese-XJIS-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1XJIS\$1140\$1CI\$1AI\$1KS\$1UTF8 | Japanese-XJIS-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CI\$1AI\$1KS\$1VSS | Japanese-XJIS-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1XJIS\$1140\$1CI\$1AI\$1KS\$1VSS\$1UTF8 | Japanese-XJIS-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CI\$1AI\$1KS\$1WS | Japanese-XJIS-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1XJIS\$1140\$1CI\$1AI\$1KS\$1WS\$1UTF8 | Japanese-XJIS-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CI\$1AI\$1KS\$1WS\$1VSS | Japanese-XJIS-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1XJIS\$1140\$1CI\$1AI\$1KS\$1WS\$1VSS\$1UTF8 | Japanese-XJIS-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CI\$1AI\$1UTF8 | Japanese-XJIS-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CI\$1AI\$1VSS | Japanese-XJIS-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1XJIS\$1140\$1CI\$1AI\$1VSS\$1UTF8 | Japanese-XJIS-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CI\$1AI\$1WS | Japanese-XJIS-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1XJIS\$1140\$1CI\$1AI\$1WS\$1UTF8 | Japanese-XJIS-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CI\$1AI\$1WS\$1VSS | Japanese-XJIS-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1XJIS\$1140\$1CI\$1AI\$1WS\$1VSS\$1UTF8 | Japanese-XJIS-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CI\$1AS | 일본어-XJIS-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1XJIS\$1140\$1CI\$1AS\$1KS | 일본어-XJIS-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1XJIS\$1140\$1CI\$1AS\$1KS\$1UTF8 | 일본어-XJIS-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CI\$1AS\$1KS\$1VSS | 일본어-XJIS-140, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1XJIS\$1140\$1CI\$1AS\$1KS\$1VSS\$1UTF8 | 일본어-XJIS-140, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CI\$1AS\$1KS\$1WS | 일본어-XJIS-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1XJIS\$1140\$1CI\$1AS\$1KS\$1WS\$1UTF8 | Japanese-XJIS-140, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CI\$1AS\$1KS\$1WS\$1VSS | 일본어-XJIS-140, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1XJIS\$1140\$1CI\$1AS\$1KS\$1WS\$1VSS\$1UTF8 | Japanese-XJIS-140, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CI\$1AS\$1UTF8 | 일본어-XJIS-140, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CI\$1AS\$1VSS | 일본어-XJIS-140, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1XJIS\$1140\$1CI\$1AS\$1VSS\$1UTF8 | Japanese-XJIS-140, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CI\$1AS\$1WS | Japanese-XJIS-140, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1XJIS\$1140\$1CI\$1AS\$1WS\$1UTF8 | Japanese-XJIS-140, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CI\$1AS\$1WS\$1VSS | Japanese-XJIS-140, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1XJIS\$1140\$1CI\$1AS\$1WS\$1VSS\$1UTF8 | Japanese-XJIS-140, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CS\$1AI | Japanese-XJIS-140, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1XJIS\$1140\$1CS\$1AI\$1KS | Japanese-XJIS-140, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1XJIS\$1140\$1CS\$1AI\$1KS\$1UTF8 | Japanese-XJIS-140, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CS\$1AI\$1KS\$1VSS | Japanese-XJIS-140, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1XJIS\$1140\$1CS\$1AI\$1KS\$1VSS\$1UTF8 | Japanese-XJIS-140, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CS\$1AI\$1KS\$1WS | Japanese-XJIS-140, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1XJIS\$1140\$1CS\$1AI\$1KS\$1WS\$1UTF8 | Japanese-XJIS-140, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CS\$1AI\$1KS\$1WS\$1VSS | Japanese-XJIS-140, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1XJIS\$1140\$1CS\$1AI\$1KS\$1WS\$1VSS\$1UTF8 | Japanese-XJIS-140, 대소문자 구분, 액센트 비구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CS\$1AI\$1UTF8 | Japanese-XJIS-140, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CS\$1AI\$1VSS | Japanese-XJIS-140, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1XJIS\$1140\$1CS\$1AI\$1VSS\$1UTF8 | Japanese-XJIS-140, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CS\$1AI\$1WS | Japanese-XJIS-140, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1XJIS\$1140\$1CS\$1AI\$1WS\$1UTF8 | Japanese-XJIS-140, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CS\$1AI\$1WS\$1VSS | Japanese-XJIS-140, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1XJIS\$1140\$1CS\$1AI\$1WS\$1VSS\$1UTF8 | Japanese-XJIS-140, 대소문자 구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CS\$1AS | Japanese-XJIS-140, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1XJIS\$1140\$1CS\$1AS\$1KS | Japanese-XJIS-140, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1XJIS\$1140\$1CS\$1AS\$1KS\$1UTF8 | Japanese-XJIS-140, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CS\$1AS\$1KS\$1VSS | Japanese-XJIS-140, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1XJIS\$1140\$1CS\$1AS\$1KS\$1VSS\$1UTF8 | Japanese-XJIS-140, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| 일본어\$1XJIS\$1140\$1CS\$1AS\$1KS\$1WS | Japanese-XJIS-140, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1XJIS\$1140\$1CS\$1AS\$1KS\$1WS\$1UTF8 | Japanese-XJIS-140, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CS\$1AS\$1KS\$1WS\$1VSS | Japanese-XJIS-140, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1XJIS\$1140\$1CS\$1AS\$1KS\$1WS\$1VSS\$1UTF8 | Japanese-XJIS-140, 대소문자 구분, 액센트 구분, 일본어 가나 구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CS\$1AS\$1UTF8 | Japanese-XJIS-140, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CS\$1AS\$1VSS | Japanese-XJIS-140, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1XJIS\$1140\$1CS\$1AS\$1VSS\$1UTF8 | Japanese-XJIS-140, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CS\$1AS\$1WS | Japanese-XJIS-140, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분 | 
| Japanese\$1XJIS\$1140\$1CS\$1AS\$1WS\$1UTF8 | Japanese-XJIS-140, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 비구분, UTF8 | 
| Japanese\$1XJIS\$1140\$1CS\$1AS\$1WS\$1VSS | Japanese-XJIS-140, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분 | 
| Japanese\$1XJIS\$1140\$1CS\$1AS\$1WS\$1VSS\$1UTF8 | Japanese-XJIS-140, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 구분, 보조 문자, 변형 선택기 구분, UTF8 | 
| Korean\$1Wansung\$1CI\$1AS | 한국어-완성형, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Latin1\$1General\$1100\$1BIN | 라틴어1-일반-100, 이진 정렬 | 
| Latin1\$1General\$1100\$1BIN2 | 라틴어1-일반-100, 이진 코드 포인트 비교 정렬 | 
| Latin1\$1General\$1100\$1BIN2\$1UTF8 | Latin1-General-100, 이진 코드 포인트 비교 정렬, UTF8 | 
| Latin1\$1General\$1100\$1CI\$1AS | 라틴어1-일반-100, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Latin1\$1General\$1100\$1CI\$1AS\$1SC\$1UTF8 | Latin1-General-100, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 보조 문자, UTF8 | 
| Latin1\$1General\$1BIN | 라틴어1-일반, 이진 정렬 | 
| Latin1\$1General\$1BIN2 | 라틴어1-일반, 이진 코드 포인트 비교 정렬 | 
| Latin1\$1General\$1CI\$1AI | 라틴어1-일반, 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Latin1\$1General\$1CI\$1AS | 라틴어1-일반, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Latin1\$1General\$1CI\$1AS\$1KS | 라틴어1-일반, 대소문자 비구분, 액센트 구분, 일본어 가나 구분, 전자/반자 비구분 | 
| Latin1\$1General\$1CS\$1AS | 라틴어1-일반, 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| Modern\$1Spanish\$1CI\$1AS | 현대-스페인어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 
| SQL\$11xCompat\$1CP850\$1CI\$1AS | 라틴어1-일반, 유니코드 데이터의 경우 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비 유니코드 데이터의 경우 코드 페이지 850의 SQL Server 정렬 순서 49 | 
| SQL\$1Latin1\$1General\$1CP1\$1CI\$1AI | 라틴어1-일반, 유니코드 데이터의 경우 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 비 유니코드 데이터의 경우 코드 페이지 1252의 SQL Server 정렬 순서 54 | 
| SQL\$1Latin1\$1General\$1CP1\$1CI\$1AS | 라틴어1-일반, 유니코드 데이터의 경우 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비 유니코드 데이터의 경우 코드 페이지 1252의 SQL Server 정렬 순서 52 | 
| SQL\$1Latin1\$1General\$1CP1\$1CS\$1AS | 라틴어1-일반, 유니코드 데이터의 경우 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비 유니코드 데이터의 경우 코드 페이지 1252의 SQL Server 정렬 순서 51 | 
| SQL\$1Latin1\$1General\$1CP1250\$1CI\$1AS | Latin1-General, 유니코드 데이터의 경우 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 1250의 SQL Server 정렬 순서 82 | 
| SQL\$1Latin1\$1General\$1CP1250\$1CS\$1AS | Latin1-General, 유니코드 데이터의 경우 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 1250의 SQL Server 정렬 순서 81 | 
| SQL\$1Latin1\$1General\$1CP1251\$1CI\$1AS | Latin1-General, 유니코드 데이터의 경우 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 1251의 SQL Server 정렬 순서 106 | 
| SQL\$1Latin1\$1General\$1CP1251\$1CS\$1AS | Latin1-General, 유니코드 데이터의 경우 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 1251의 SQL Server 정렬 순서 105 | 
| SQL\$1Latin1\$1General\$1CP1253\$1CI\$1AI | Latin1-General, 유니코드 데이터의 경우 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 1253의 SQL Server 정렬 순서 124 | 
| SQL\$1Latin1\$1General\$1CP1253\$1CI\$1AS | Latin1-General, 유니코드 데이터의 경우 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 1253의 SQL Server 정렬 순서 114 | 
| SQL\$1Latin1\$1General\$1CP1253\$1CS\$1AS | Latin1-General, 유니코드 데이터의 경우 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 1253의 SQL Server 정렬 순서 113 | 
| SQL\$1Latin1\$1General\$1CP1254\$1CI\$1AS | 터키어, 유니코드 데이터의 경우 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 1254의 SQL Server 정렬 순서 130 | 
| SQL\$1Latin1\$1General\$1CP1254\$1CS\$1AS | 터키어, 유니코드 데이터의 경우 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 1254의 SQL Server 정렬 순서 129 | 
| SQL\$1Latin1\$1General\$1CP1255\$1CI\$1AS | Latin1-General, 유니코드 데이터의 경우 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 1255의 SQL Server 정렬 순서 138 | 
| SQL\$1Latin1\$1General\$1CP1255\$1CS\$1AS | Latin1-General, 유니코드 데이터의 경우 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 1255의 SQL Server 정렬 순서 137 | 
| SQL\$1Latin1\$1General\$1CP1256\$1CI\$1AS | 라틴어1-일반, 유니코드 데이터의 경우 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비 유니코드 데이터의 경우 코드 페이지 1256의 SQL Server 정렬 순서 146 | 
| SQL\$1Latin1\$1General\$1CP1256\$1CS\$1AS | Latin1-General, 유니코드 데이터의 경우 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 1256의 SQL Server 정렬 순서 145 | 
| SQL\$1Latin1\$1General\$1CP1257\$1CI\$1AS | Latin1-General, 유니코드 데이터의 경우 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 1257의 SQL Server 정렬 순서 154 | 
| SQL\$1Latin1\$1General\$1CP1257\$1CS\$1AS | Latin1-General, 유니코드 데이터의 경우 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 1257의 SQL Server 정렬 순서 153 | 
| SQL\$1Latin1\$1General\$1CP437\$1BIN | Latin1-General, 유니코드 데이터의 경우 이진 정렬, 비유니코드 데이터의 경우 코드 페이지 437의 SQL Server 정렬 순서 30 | 
| SQL\$1Latin1\$1General\$1CP437\$1BIN2 | Latin1-General, 유니코드 데이터의 경우 이진 코드 포인트 비교 정렬, 비유니코드 데이터의 경우 코드 페이지 437의 SQL Server 정렬 순서 30 | 
| SQL\$1Latin1\$1General\$1CP437\$1CI\$1AI | 라틴어1-일반, 유니코드 데이터의 경우 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 비 유니코드 데이터의 경우 코드 페이지 437의 SQL Server 정렬 순서 34 | 
| SQL\$1Latin1\$1General\$1CP437\$1CI\$1AS | Latin1-General, 유니코드 데이터의 경우 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 437의 SQL Server 정렬 순서 32 | 
| SQL\$1Latin1\$1General\$1CP437\$1CS\$1AS | Latin1-General, 유니코드 데이터의 경우 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 437의 SQL Server 정렬 순서 31 | 
| SQL\$1Latin1\$1General\$1CP850\$1BIN | Latin1-General, 유니코드 데이터의 경우 이진 정렬, 비유니코드 데이터의 경우 코드 페이지 850의 SQL Server 정렬 순서 40 | 
| SQL\$1Latin1\$1General\$1CP850\$1BIN2 | 라틴어1-일반, 유니코드 데이터의 경우 이진 코드 포인트 비교, 비 유니코드 데이터의 경우 코드 페이지 850의 SQL Server 정렬 순서 40 | 
| SQL\$1Latin1\$1General\$1CP850\$1CI\$1AI | 라틴어1-일반, 유니코드 데이터의 경우 대소문자 비구분, 액센트 비구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 850의 SQL Server 정렬 순서 44 | 
| SQL\$1Latin1\$1General\$1CP850\$1CI\$1AS | 라틴어1-일반, 유니코드 데이터의 경우 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비 유니코드 데이터의 경우 코드 페이지 850의 SQL Server 정렬 순서 42 | 
| SQL\$1Latin1\$1General\$1CP850\$1CS\$1AS | Latin1-General, 유니코드 데이터의 경우 대소문자 구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 850의 SQL Server 정렬 순서 41 | 
| SQL\$1Latin1\$1General\$1Pref\$1CP1\$1CI\$1AS | Latin1-General, 유니코드 데이터의 경우 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 1252의 SQL Server 정렬 순서 53 | 
| SQL\$1Latin1\$1General\$1Pref\$1CP437\$1CI\$1AS | Latin1-General, 유니코드 데이터의 경우 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 437의 SQL Server 정렬 순서 33 | 
| SQL\$1Latin1\$1General\$1Pref\$1CP850\$1CI\$1AS | Latin1-General, 유니코드 데이터의 경우 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분, 비유니코드 데이터의 경우 코드 페이지 850의 SQL Server 정렬 순서 43 | 
| Thai\$1CI\$1AS | 프랑스어, 대소문자 비구분, 액센트 구분, 일본어 가나 비구분, 전자/반자 비구분 | 

# RDS Custom for SQL Server DB 인스턴스의 현지 시간대
<a name="custom-reqs-limits-MS.TimeZone"></a>

RDS Custom for SQL Server DB 인스턴스의 시간대가 기본적으로 설정되어 있습니다. 현재 기본값은 협정 세계시(UTC)입니다. DB 인스턴스의 시간대를 애플리케이션의 시간대와 일치하도록 현지 시간대로 설정할 수 있습니다.

DB 인스턴스를 처음 만들 때 시간대를 설정합니다. [AWS Management Console](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_CreateDBInstance.html), Amazon RDS API [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html.html) 작업 또는 AWS CLI [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) 명령을 사용하여 DB 인스턴스를 생성할 수 있습니다.

DB 인스턴스가 다중 AZ 배포의 일부인 경우 장애 조치 중에 시간대가 설정된 현지 시간대로 유지됩니다.

시점 복원을 요청할 경우 복원 시간을 지정합니다. 시간은 현지 시간대로 표시됩니다. 자세한 내용은 [Amazon RDS에서 DB 인스턴스를 지정된 시간으로 복원](USER_PIT.md) 섹션을 참조하세요.

다음은 DB 인스턴스에 대해 현지 시간대를 설정할 때 적용되는 제한 사항입니다.
+ 인스턴스 생성 중에 DB 인스턴스의 시간대를 구성할 수 있지만 기존 RDS Custom for SQL Server DB 인스턴스의 시간대는 수정할 수 없습니다.
+ 기존 RDS Custom for SQL Server DB 인스턴스의 시간대가 수정된 경우 RDS Custom은 DB 인스턴스 상태를 `unsupported-configuration`으로 변경하고 이벤트 알림을 보냅니다.
+ DB 인스턴스의 스냅샷을 다른 시간대의 DB 인스턴스로 복원할 수 없습니다.
+ 한 표준 시간대의 백업 파일을 다른 표준 시간대로 복원하지 않는 것이 좋습니다. 한 표준 시간대의 백업 파일을 다른 표준 시간대로 복원하는 경우 쿼리와 애플리케이션을 감사하여 표준 시간대 변경의 영향을 확인해야 합니다. 자세한 내용은 [기본 백업 및 복원 기능을 사용하여 SQL Server 데이터베이스 가져오기 및 내보내기](SQLServer.Procedural.Importing.md) 섹션을 참조하세요.

## 지원되는 시간대
<a name="custom-reqs-limits-MS.TimeZone.Zones"></a>

현지 시간대를 다음 표에 나열된 값 중 하나로 설정할 수 있습니다.


| 시간대 | 표준 시간 오프셋 | 설명 | 참고 | 
| --- | --- | --- | --- | 
| 아프가니스탄 표준시 | (UTC\$104:30) | 카불 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 알래스카 표준시 | (UTC–09:00) | 알래스카 |  | 
| 알류샨 표준시 | (UTC–10:00) | 알류샨 열도 |  | 
| 알타이 표준시 | (UTC\$107:00) | 바르나울, 고르노알타이스크 |  | 
| 아랍 표준시 | (UTC\$103:00) | 쿠웨이트, 리야드 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 아라비아 표준시 | (UTC\$104:00) | 아부다비, 무스카트 |  | 
| 아랍 표준시 | (UTC\$103:00) | 바그다드 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 아르헨티나 표준시 | (UTC–03:00) | 부에노스아이레스 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 아스트라한 표준시 | (UTC\$104:00) | 아스트라한, 울랴노브스크 |  | 
| 대서양 표준시 | (UTC–04:00) | 대서양 표준시(캐나다) |  | 
| AUS 중부 표준시 | (UTC\$109:30) | 다윈 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 오스트레일리아 중부 표준시 | (UTC\$108:45) | 유클라 |  | 
| AUS 동부 표준시 | (UTC\$110:00) | 캔버라, 멜버른, 시드니 |  | 
| 아제르바이잔 표준시 | (UTC\$104:00) | 바쿠 |  | 
| 아조레스 표준시 | (UTC–01:00) | 아조레스 |  | 
| 바이아 표준시 | (UTC–03:00) | 살바도르 |  | 
| 방글라데시 표준시 | (UTC\$106:00) | 다카 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 벨라루스 표준시 | (UTC\$103:00) | 민스크 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 부건빌 표준시 | (UTC\$111:00) | 부겐빌 섬 |  | 
| 캐나다 중부 표준시 | (UTC–06:00) | 서스캐처원 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 카포베르데 표준시 | (UTC–01:00) | 카포베르데 섬 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 코카서스 표준시 | (UTC\$104:00) | 예레반 |  | 
| 중부 오스트레일리아 표준시 | (UTC\$109:30) | 애들레이드 |  | 
| 중앙 아메리카 표준시 | (UTC–06:00) | 중앙 아메리카 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 중앙 아시아 표준시 | (UTC\$106:00) | 아스타나 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 브라질 중부 표준시 | (UTC–04:00) | 쿠이아바 |  | 
| 중앙 유럽 표준시 | (UTC\$101:00) | 베오그라드, 브라티슬라바, 부다페스트, 류블랴나, 프라하 |  | 
| 중앙 유럽 표준시 | (UTC\$101:00) | 사라예보, 스코페, 바르샤바, 자그레브 |  | 
| 중앙 태평양 표준시 | (UTC\$111:00) | 솔로몬 제도, 뉴칼레도니아 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 중부 표준시 | (UTC–06:00) | 중부 표준시(미국과 캐나다) |  | 
| 중부 표준시(멕시코) | (UTC–06:00) | 과달라하라, 멕시코 시티, 몬테레이 |  | 
| 채텀 섬 표준시 | (UTC\$112:45) | 채텀 섬 |  | 
| 중국 표준시 | (UTC\$108:00) | 베이징, 충칭, 홍콩 특별 행정구, 우루무치 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 쿠바 표준시 | (UTC–05:00) | 하바나 |  | 
| 날짜 변경선 표준시 | (UTC–12:00) | 날짜 변경선 서쪽 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| E. 아프리카 표준시 | (UTC\$103:00) | 나이로비 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| E. 오스트레일리아 표준시 | (UTC\$110:00) | 브리즈번 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| E. 유럽 표준시 | (UTC\$102:00) | 키시나우 |  | 
| E. 남아메리카 표준시 | (UTC–03:00) | 브라질리아 |  | 
| 이스터 섬 표준시 | (UTC–06:00) | 이스터 섬 |  | 
| 동부 표준시 | (UTC–05:00) | 동부 표준시(미국과 캐나다) |  | 
| 동부 표준시(멕시코) | (UTC–05:00) | 체투말 |  | 
| 이집트 표준시 | (UTC\$102:00) | 카이로 |  | 
| 예카테린부르크 표준시 | (UTC\$105:00) | 예카테린부르크 |  | 
| 피지 표준시 | (UTC\$112:00) | 피지 |  | 
| FLE 표준시 | (UTC\$102:00) | 헬싱키, 키예프, 리가, 소피아, 탈린, 빌뉴스 |  | 
| 그루지야 표준시 | (UTC\$104:00) | 트빌리시 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| GMT 표준시 | (UTC) | 더블린, 에든버러, 리스본, 런던 |  이 시간대는 그리니치 표준시(GMT)와 다릅니다. 이 시간대는 일광 절약 시간을 준수합니다. | 
| 그린란드 표준시 | (UTC–03:00) | 그린란드 |  | 
| 그리니치 표준시 | (UTC) | 몬로비아, 레이캬비크 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| GTB 표준시 | (UTC\$102:00) | 아테네, 부쿠레슈티 |  | 
| 아이티 표준시 | (UTC–05:00) | 아이티 |  | 
| 하와이 표준시 | (UTC–10:00) | 하와이 |  | 
| 인도 표준시 | (UTC\$105:30) | 첸나이, 콜카타, 뭄바이, 뉴델리 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 이란 표준시 | (UTC\$103:30) | 테헤란 |  | 
| 이스라엘 표준시 | (UTC\$102:00) | 예루살렘 |  | 
| 요르단 표준시 | (UTC\$102:00) | 암만 |  | 
| 칼리닌그라드 표준시 | (UTC\$102:00) | 칼리닌그라드 |  | 
| 캄차카 표준시 | (UTC\$112:00) | 페트로파블로프스크-캄차스키 – 이전 |  | 
| 대한민국 표준시 | (UTC\$109:00) | 서울 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 리비아 표준시 | (UTC\$102:00) | 트리폴리 |  | 
| 라인 제도 표준시 | (UTC\$114:00) | 키리티마티 섬 |  | 
| 로드하우 표준시 | (UTC\$110:30) | 로드하우 섬 |  | 
| 마가단 표준시 | (UTC\$111:00) | 마가단 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 마가야네스 표준시 | (UTC–03:00) | 푼타 아레나스 |  | 
| 마키저스 표준시 | (UTC–09:30) | 마르케사스 제도 |  | 
| 모리셔스 표준시 | (UTC\$104:00) | 포트루이스 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 중동 표준시 | (UTC\$102:00) | 베이루트 |  | 
| 몬테비데오 표준시 | (UTC–03:00) | 몬테비데오 |  | 
| 모로코 표준시 | (UTC\$101:00) | 카사블랑카 |  | 
| 산지 표준시 | (UTC–07:00) | 산지 표준시(미국과 캐나다) |  | 
| 산지 표준시(멕시코) | (UTC–07:00) | 치와와, 라파스, 마사틀란 |  | 
| 미얀마 표준시 | (UTC\$106:30) | 양곤(랑군) | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| N. 중앙 아시아 표준시 | (UTC\$107:00) | 노보시비르스크 |  | 
| 나미비아 표준시 | (UTC\$102:00) | 빈트후크 |  | 
| 네팔 표준시 | (UTC\$105:45) | 카트만두 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 뉴질랜드 표준시 | (UTC\$112:00) | 오클랜드, 웰링턴 |  | 
| 뉴펀들랜드 표준시 | (UTC–03:30) | 뉴펀들랜드 |  | 
| 노퍽 표준시 | (UTC\$111:00) | 노퍽 섬 |  | 
| 북아시아 동부 표준시 | (UTC\$108:00) | 이르쿠츠크 |  | 
| 북아시아 표준시 | (UTC\$107:00) | 크라스노야르스크 |  | 
| 북한 표준시 | (UTC\$109:00) | 평양 |  | 
| 옴스크 표준시 | (UTC\$106:00) | 옴스크 |  | 
| 태평양 SA 표준시 | (UTC–03:00) | 산티아고 |  | 
| 태평양 표준시 | (UTC–08:00) | 태평양 표준시(미국과 캐나다) |  | 
| 태평양 표준시(멕시코) | (UTC–08:00) | 바하 캘리포니아 |  | 
| 파키스탄 표준시 | (UTC\$105:00) | 이슬라마바드, 카라치 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 파라과이 표준시 | (UTC–04:00) | 아순시온 |  | 
| 로맨스 표준시 | (UTC\$101:00) | 브뤼셀, 코펜하겐, 마드리드, 파리 |  | 
| 러시아 표준 시간대 10 | (UTC\$111:00) | 초쿠르다흐 |  | 
| 러시아 표준 시간대 11 | (UTC\$112:00) | 아나디리, 페트로파블로프스크-캄차스키 |  | 
| 러시아 표준 시간대 3 | (UTC\$104:00) | 이젭스크, 사마라 |  | 
| 러시아 표준시 | (UTC\$103:00) | 모스크바, 상트페테르부르크, 볼고그라드 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| SA 동부 표준시 | (UTC–03:00) | 카옌, 포르탈레자 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 태평양 SA 표준시 | (UTC–05:00) | 보고타, 리마, 키토, 리오 브랑코 |  이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| SA 서부 표준시 | (UTC–04:00) | 조지타운, 라파스, 마노스, 산후안 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 생피에르 표준시 | (UTC–03:00) | 세인트 피에르 미켈론 |  | 
| 사할린 표준시 | (UTC\$111:00) | 사할린 |  | 
| 사모아 표준시 | (UTC\$113:00) | 사모아 |  | 
| 상투메 표준시 | (UTC\$101:00) | 상투메 |  | 
| 사라토프 표준시 | (UTC\$104:00) | 사라토프 |  | 
| 동남아시아 표준시 | (UTC\$107:00) | 방콕, 하노이, 자카르타 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 싱가포르 표준시 | (UTC\$108:00) | 쿠알라룸푸르, 싱가포르 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 남아프리카 표준시 | (UTC\$102:00) | 하라레, 프리토리아 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 스리랑카 표준시 | (UTC\$105:30) | 스리자야와르데네푸라 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 수단 표준시 | (UTC\$102:00) | 하르툼 |  | 
| 시리아 표준시 | (UTC\$102:00) | 다마스쿠스 |  | 
| 타이베이 표준시 | (UTC\$108:00) | 타이베이 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 태즈메이니아 표준시 | (UTC\$110:00) | 호바트 |  | 
| 토칸틴스 표준시 | (UTC–03:00) | 아라구아이나 |  | 
| 도쿄 표준시 | (UTC\$109:00) | 오사카, 삿포로, 도쿄 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 톰스크 표준시 | (UTC\$107:00) | 톰스크 |  | 
| 통가 표준시 | (UTC\$113:00) | 누쿠알로파 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 트란스바이칼 표준시 | (UTC\$109:00) | 치타 |  | 
| 터키 표준시 | (UTC\$103:00) | 이스탄불 |  | 
| 터크스 케이커스 표준시 | (UTC–05:00) | 터크스 케이커스 |  | 
| 울란바토르 표준시 | (UTC\$108:00) | 울란바토르 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 미국 동부 표준시 | (UTC–05:00) | 인디애나(동부) |  | 
| 미국 산지 표준시 | (UTC–07:00) | 애리조나 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| UTC | UTC | 협정 세계시 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| UTC–02 | (UTC–02:00) | 협정 세계시–02 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| UTC–08 | (UTC–08:00) | 협정 세계시–08 |  | 
| UTC–09 | (UTC–09:00) | 협정 세계시–09 |  | 
| UTC–11 | (UTC–11:00) | 협정 세계시–11 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| UTC\$112 | (UTC\$112:00) | 협정 세계시\$112 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| UTC\$113 | (UTC\$113:00) | 협정 세계시\$113 |  | 
| 베네수엘라 표준시 | (UTC–04:00) | 카라카스 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 블라디보스토크 표준시 | (UTC\$110:00) | 블라디보스토크 |  | 
| 볼고그라드 표준시 | (UTC\$104:00) | 볼고그라드 |  | 
| W. 오스트레일리아 표준시 | (UTC\$108:00) | 퍼스 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| W. 중앙 아프리카 표준시 | (UTC\$101:00) | 서중앙 아프리카 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| W. 유럽 표준시 | (UTC\$101:00) | 암스테르담, 베를린, 베른, 로마, 스톡홀름, 비엔나 |  | 
| W. 몽골 표준시 | (UTC\$107:00) | 호브드 |  | 
| 서아시아 표준시 | (UTC\$105:00) | 아슈하바트, 타슈켄트 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 웨스트 뱅크 표준시 | (UTC\$102:00) | 가자, 헤브론 |  | 
| 서태평양 표준시 | (UTC\$110:00) | 괌, 포트모르즈비 | 이 시간대는 일광 절약 시간을 준수하지 않습니다. | 
| 야쿠츠크 표준시 | (UTC\$109:00) | 야쿠츠크 |  | 

# RDS Custom for SQL Server에서 Service Master Key 사용
<a name="custom-sqlserver-features.smk"></a>

RDS Custom for SQL Server는 Service Master Key(SMK) 사용을 지원합니다. RDS Custom은 RDS Custom for SQL Server DB 인스턴스의 수명 주기 내내 동일한 SMK를 유지합니다. 동일한 SMK를 유지함으로써 DB 인스턴스는 연결된 서버 암호 및 보안 인증 정보와 같이 SMK로 암호화된 객체를 사용할 수 있습니다. 다중 AZ 배포를 사용하는 경우 RDS Custom은 기본 및 보조 DB 인스턴스 간에 SMK를 동기화하고 유지 관리합니다.

**Topics**
+ [리전 및 버전 사용 가능 여부](#custom-sqlserver-features.smk.list)
+ [지원되는 기능](#custom-sqlserver-features.smk.supportedfeatures)
+ [TDE 사용](#custom-sqlserver-features.smk.tde)
+ [기능 구성](#custom-sqlserver-features.smk.configuringfeatures)
+ [요구 사항 및 제한 사항](#custom-sqlserver-features.smk.reqlimits)

## 리전 및 버전 사용 가능 여부
<a name="custom-sqlserver-features.smk.list"></a>

RDS Custom for SQL Server를 사용하는 모든 리전에서 SMK 사용이 지원되며, RDS Custom에서 제공되는 모든 SQL Server 버전에서 사용할 수 있습니다. RDS Custom for SQL Server에서 사용할 수 있는 Amazon RDS의 버전 및 리전에 대한 자세한 내용은 [RDS Custom for SQL Server를 지원하는 리전 및 DB 엔진](Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.md#Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.sq) 섹션을 참조하세요.

## 지원되는 기능
<a name="custom-sqlserver-features.smk.supportedfeatures"></a>

RDS Custom for SQL Server에서 SMK를 사용하는 경우 다음과 같은 기능이 지원됩니다.
+ TDE(Transparent Data Encryption)
+ 열 수준 암호화
+ 데이터베이스 메일
+ 연결된 서버
+ SSIS(SQL Server Integration Services)

## TDE 사용
<a name="custom-sqlserver-features.smk.tde"></a>

SMK를 사용하면 스토리지에 데이터를 쓰기 전에 데이터를 암호화한 뒤에 데이터를 스토리지에서 읽을 때 다시 자동으로 해독하는 투명한 데이터 암호화(TDE)를 구성할 수 있습니다. RDS for SQL Server와 달리 RDS Custom for SQL Server DB 인스턴스에서 TDE를 구성할 때 옵션 그룹을 사용할 필요가 없습니다. 대신 인증서와 데이터베이스 암호화 키를 생성한 후 다음 명령을 실행하여 데이터베이스 수준에서 TDE를 활성화할 수 있습니다.

```
ALTER DATABASE [myDatabase] SET ENCRYPTION ON;
```

 RDS for SQL Server와 함께 TDE를 사용하는 방법에 대한 자세한 내용은 [SQL Server에서 TDE(투명한 데이터 암호화) 지원](Appendix.SQLServer.Options.TDE.md) 섹션을 확인하세요.

 Microsoft SQL Server의 TDE에 대한 자세한 내용은 Microsoft 설명서의 [투명한 데이터 암호화](https://learn.microsoft.com/en-us/sql/relational-databases/security/encryption/transparent-data-encryption?view=sql-server-ver15)를 참조하세요.

## 기능 구성
<a name="custom-sqlserver-features.smk.configuringfeatures"></a>

RDS Custom for SQL Server에서 SMK를 사용하는 기능을 구성하는 자세한 단계는 Amazon RDS 데이터베이스 블로그의 다음 게시물을 참조하세요.
+ 연결된 서버: [RDS Custom for SQL Server에서 연결된 서버 구성](https://aws.amazon.com/blogs/database/configure-linked-servers-on-amazon-rds-custom-for-sql-server/).
+ SSIS: [SSIS 패키지를 RDS Custom for SQL Server로 마이그레이션](https://aws.amazon.com/blogs/database/migrate-microsoft-sql-server-ssis-packages-to-amazon-rds-custom-for-sql-server/).
+ TDE: [RDS Custom for SQL Server에서 TDE를 사용하여 데이터 보호](https://aws.amazon.com/blogs/database/secure-your-data-at-rest-on-amazon-rds-custom-for-sql-server-using-transparent-data-encryption-tde-or-column-level-encryption-cle/).

## 요구 사항 및 제한 사항
<a name="custom-sqlserver-features.smk.reqlimits"></a>

RDS Custom for SQL Server DB 인스턴스와 함께 SMK를 사용하는 경우 다음과 같은 요구 사항 및 제한 사항을 염두에 두세요.
+ DB 인스턴스에서 SMK를 재생성하는 경우 즉시 수동 DB 스냅샷을 생성해야 합니다. 가능하면 SMK를 다시 생성하지 않는 것이 좋습니다.
+ 서버 인증서 및 데이터베이스 마스터 키 암호의 백업을 유지해야 합니다. 이러한 백업을 유지 관리하지 않으면 데이터가 손실될 수 있습니다.
+ SSIS를 구성하는 경우 컴퓨팅 규모 조정 또는 호스트 교체 시 SSM 문서를 사용하여 RDS Custom for SQL Server DB 인스턴스를 도메인에 조인해야 합니다.
+ TDE 또는 열 암호화가 활성화되면 데이터베이스 백업이 자동으로 암호화됩니다. 스냅샷 복원 또는 특정 시점 복구를 수행하면 소스 DB 인스턴스의 SMK가 복원되어 복원에 필요한 데이터를 해독하고 복원된 인스턴스의 데이터를 다시 암호화하기 위해 새 SMK가 생성됩니다.

 Microsoft SQL Server의 Service Master Key에 대한 자세한 내용은 Microsoft 설명서의 [SQL Server 및 데이터베이스 암호화 키](https://learn.microsoft.com/en-us/sql/relational-databases/security/encryption/sql-server-and-database-encryption-keys-database-engine?view=sql-server-ver15)를 참조하세요.

# RDS Custom for SQL Server에서 변경 데이터 캡처(CDC) 지원
<a name="custom-sqlserver-features.cdc"></a>

## 개요
<a name="custom-sqlserver-features.cdc.overview"></a>

RDS Custom for SQL Server는 변경 데이터 캡처(CDC)에 대한 기본 지원을 제공하므로 SQL Server 테이블에서 데이터 수정 사항을 추적하고 캡처할 수 있습니다. CDC는 후속 검색 및 분석을 위해 이러한 변경 사항에 대한 자세한 메타데이터를 저장합니다. CDC 기능에 대한 자세한 내용은 Microsoft 설명서의 [Change data capture](https://docs.microsoft.com/en-us/sql/relational-databases/track-changes/track-data-changes-sql-server#Capture)를 참조하세요.

SQL Server에서 CDC 작업을 수행하려면 `sys.servers`의 *로컬 서버*(`server_id` = 0인 로컬 서버)와 `SERVERPROPERTY('ServerName')` 식별자 간에 일치하는 값이 필요합니다. RDS Custom for SQL Server는 인스턴스의 수명 주기 동안 이 동기화를 자동으로 유지하여 유지 관리 또는 복구 작업 중에 호스트가 교체되더라도 지속적인 CDC 작동을 보장합니다.

**중요**  
다중 AZ 인스턴스 장애 조치 후 `SERVERPROPERTY('Servername')` 함수는 네트워크/컴퓨터 이름의 변경 사항을 자동으로 반영합니다. 그러나 `@@SERVERNAME` 함수는 `MSSQLSERVER` 서비스가 다시 시작될 때까지 이전 서버 이름을 유지합니다. @@SERVERNAME 쿼리는 장애 조치 후 이전 서버 이름을 반환합니다. 장애 조치 후 정확한 서버 이름을 얻으려면 다음 SQL 쿼리를 사용하세요.  

```
SELECT name FROM sys.servers WHERE server_id=0
```
이 쿼리는 서비스를 다시 시작할 필요 없이 최신 서버 이름 정보를 제공합니다.

## 리전 및 버전 사용 가능 여부
<a name="custom-sqlserver-features.cdc.regionAvail"></a>

CDC 기능은 RDS Custom for SQL Server를 사용할 수 있는 모든 AWS 리전과 RDS Custom에서 지원하는 모든 SQL Server 버전에서 지원됩니다. RDS Custom for SQL Server가 지원되는 버전 및 리전에 대한 자세한 내용은 [RDS Custom for SQL Server를 지원하는 리전 및 DB 엔진](Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.md#Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.sq) 섹션을 참조하세요.

## 요구 사항 및 제한 사항
<a name="custom-sqlserver-features.cdc.reqsLims"></a>

RDS Custom for SQL Server에서 CDC를 구현할 때는 다음 주요 고려 사항에 유의하세요.
+ MS Replication과 같은 기능을 사용하도록 `sys.servers`에서 `@@SERVERNAME` 및/또는 *로컬 서버*를 수동으로 설정한 경우 `sys.servers`의 로컬 서버(`server_id = 0`이 있는 로컬 서버) 값이 `*.rds.amazonaws.com` 또는 `*.awsrds.*.com`과 일치하는 형식으로 설정했다면 RDS Custom for SQL Server는 `SERVERPROPERTY('ServerName')`와 일치하도록 수정을 시도하지 않습니다.
+ 원격 로그인 또는 연결된 서버가 이전 호스트 이름을 적극적으로 사용하는 동안에는 RDS가 `sys.servers`의 로컬 서버(`server_id = 0`가 있는 로컬 서버)를 새 호스트 이름으로 수정할 수 없습니다. 이 제한은 두 가지 시나리오에 적용됩니다.
  + 연결된 서버가 이전 호스트 이름과 연결된 원격 로그인을 사용하여 로컬 서버에 대한 연결을 설정하는 경우
  + RDS Custom for SQL Server 인스턴스가 게시자 또는 배포자 역할을 하고 이전 호스트 이름과 연결된 로그인을 구독자 인스턴스에 연결한 경우

## 문제 해결
<a name="custom-sqlserver-features.cdc.Troubleshooting"></a>

이전 서버 이름과 연결된 원격 로그인 또는 연결된 로그인을 식별하려면 다음 쿼리를 사용하세요. 적절한 CDC 기능을 보장하려면 결과를 검증하고 이러한 로그인을 제거하세요.

```
SELECT * FROM sys.remote_logins WHERE server_id=0
```

or

```
select sss.srvname,ssp.name,srl.remote_name  from sys.server_principals ssp 
inner join sys.remote_logins srl on srl.local_principal_id=ssp.principal_id
inner join sys.sysservers sss  on srl.server_id = sss.srvid
where sss.srvname = @@SERVERNAME
```

# Amazon RDS Custom for SQL Server를 위한 환경 설정
<a name="custom-setup-sqlserver"></a>

Amazon RDS Custom for SQL Server DB 인스턴스용 DB 인스턴스를 생성하고 관리하기 전에 다음 작업을 수행해야 합니다.

**Contents**
+ [RDS Custom for SQL Server 설정에 필요한 사전 조건](#custom-setup-sqlserver.review)
  + [AWS Management Console을 사용한 자동 인스턴스 프로파일 생성](#custom-setup-sqlserver.instanceProfileCreation)
+ [1단계: IAM 보안 주체에 필요한 권한 부여](#custom-setup-sqlserver.iam-user)
+ [2단계: 네트워킹, 인스턴스 프로파일 및 암호화 구성](#custom-setup-sqlserver.iam-vpc)
  + [CloudFormation을 사용한 구성](#custom-setup-sqlserver.cf)
    + [CloudFormation에 필요한 파라미터](#custom-setup-sqlserver.cf.params)
    + [CloudFormation 템플릿 파일 다운로드](#custom-setup-sqlserver.cf.download)
    + [CloudFormation을 사용하여 리소스 구성](#custom-setup-sqlserver.cf.config)
  + [수동으로 구성](#custom-setup-sqlserver.manual)
    + [대칭 암호화 AWS KMS 키 보유 여부 확인](#custom-setup-sqlserver.cmk)
    + [수동으로 IAM 역할과 인스턴스 프로파일 생성](#custom-setup-sqlserver.iam)
      + [AWSRDSCustomSQLServerInstanceRole IAM 역할 생성](#custom-setup-sqlserver.iam.create-role)
      + [AWSRDSCustomSQLServerInstanceRole에 액세스 정책 추가](#custom-setup-sqlserver.iam.add-policy)
      + [RDS Custom for SQL Server 인스턴스 프로파일 생성](#custom-setup-sqlserver.iam.create-profile)
      + [RDS Custom for SQL Server 인스턴스 프로파일에 AWSRDSCustomSQLServerInstanceRole 추가](#custom-setup-sqlserver.iam.add-profile)
    + [VPC 수동 구성](#custom-setup-sqlserver.vpc)
      + [VPC 보안 그룹 구성](#custom-setup-sqlserver.vpc.sg)
      + [종속 AWS 서비스의 엔드포인트 구성](#custom-setup-sqlserver.vpc.endpoints)
      + [인스턴스 메타데이터 서비스 구성](#custom-setup-sqlserver.vpc.imds)
+ [크로스 인스턴스 제한 사항](#custom-setup-sqlserver.cross-instance-restriction)

**참고**  
사전 조건을 설정하고 Amazon RDS Custom for SQL Server를 시작하는 방법에 대한 단계별 튜토리얼을 보려면 [Get started with Amazon RDS Custom for SQL Server using an CloudFormation template (Network setup)](https://aws.amazon.com/blogs/database/get-started-with-amazon-rds-custom-for-sql-server-using-an-aws-cloudformation-template-network-setup/) 및 [ Explore the prerequisites required to create an Amazon RDS Custom for SQL Server instance](https://aws.amazon.com/blogs/database/explore-the-prerequisites-required-to-create-an-amazon-rds-custom-for-sql-server-instance/)를 참조하세요.

## RDS Custom for SQL Server 설정에 필요한 사전 조건
<a name="custom-setup-sqlserver.review"></a>

RDS Custom for SQL Server DB 인스턴스를 생성하기 전에 환경이 이 주제에 설명된 요구 사항을 충족하는지 확인합니다. CloudFormation 템플릿을 사용하여 AWS 계정 내에서 사전 조건을 설정할 수도 있습니다. 자세한 내용은 [CloudFormation을 사용한 구성](#custom-setup-sqlserver.cf) 섹션을 참조하세요.

RDS Custom for SQL Server를 사용하려면 다음과 같은 사전 조건을 구성해야 합니다.
+ 인스턴스 생성에 필요한 AWS Identity and Access Management(IAM) 권한을 구성합니다. RDS에 `create-db-instance` 요청을 수행하는 데 필요한 AWS Identity and Access Management(IAM) 사용자 또는 역할입니다.
+ RDS Custom for SQL Server DB 인스턴스에서 요구하는 사전 조건 리소스를 구성합니다.
  + RDS Custom 인스턴스의 암호화에 필요한 AWS KMS 키를 구성합니다. RDS Custom을 사용하려면 인스턴스 생성 시 암호화를 위한 고객 관리형 키가 필요합니다. RDS Custom DB 인스턴스 생성 요청 시 KMS 키 ARN, ID, 별칭 ARN 또는 별칭 이름이 `kms-key-id` 파라미터로 전달됩니다.
  + RDS Custom for SQL Server DB 인스턴스 내에서 필요한 권한을 구성합니다. RDS Custom은 DB 인스턴스 생성 시 인스턴스 프로파일을 DB 인스턴스에 연결하고 이를 DB 인스턴스 내 자동화에 사용합니다. 인스턴스 프로파일 이름은 RDS Custom 생성 요청에서 `custom-iam-instance-profile`로 설정됩니다. AWS Management Console에서 인스턴스 프로파일을 생성하거나 인스턴스 프로파일을 수동으로 생성할 수 있습니다. 자세한 내용은 [AWS Management Console을 사용한 자동 인스턴스 프로파일 생성](#custom-setup-sqlserver.instanceProfileCreation) 및 [수동으로 IAM 역할과 인스턴스 프로파일 생성](#custom-setup-sqlserver.iam)(을)를 참조하세요.
  + RDS Custom for SQL Server의 요구 사항에 따라 네트워킹 설정을 구성합니다. RDS Custom 인스턴스는 인스턴스 생성 시 제공하는 서브넷(DB 서브넷 그룹으로 구성)에 있습니다. 이러한 서브넷은 RDS Custom 인스턴스가 RDS 자동화에 필요한 서비스와 통신할 수 있도록 허용해야 합니다.

**참고**  
위에서 언급한 요구 사항에 대해 계정 수준 권한을 제한하는 서비스 제어 정책(SCP)이 없어야 합니다.  
사용 중인 계정이 AWS Organization의 일부인 경우 계정 수준 권한을 제한하는 서비스 제어 정책(SCP)이 있을 수 있습니다. SCP가 다음 절차를 사용하여 생성한 사용자 및 역할에 대한 권한을 제한하지 않도록 합니다.  
SCP에 대한 자세한 내용은 *AWS Organizations 사용 설명서*에서 [서비스 제어 정책(SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)을 참조하세요. [describe-organization](https://docs.aws.amazon.com/cli/latest/reference/organizations/describe-organization.html) AWS CLI 명령을 사용하여 계정이 AWS Organization의 일부인지 확인합니다.  
AWS Organizations에 대한 자세한 내용을 알아보려면 *AWS Organizations Organizations 사용 설명서*의 [AWS Organizations란 무엇입니까?](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html)를 참조하세요.

RDS Custom for SQL Server에 적용되는 일반 요구 사항은 [RDS Custom for SQL Server 일반 요구 사항](custom-reqs-limits-MS.md#custom-reqs-limits.reqsMS) 섹션을 참조하세요.

### AWS Management Console을 사용한 자동 인스턴스 프로파일 생성
<a name="custom-setup-sqlserver.instanceProfileCreation"></a>

RDS Custom을 사용하여 RDS Custom for SQL Server DB 인스턴스를 시작하려면 인스턴스 프로파일을 생성하고 구성해야 합니다. AWS Management Console을 사용하면 한 번에 새 인스턴스 프로파일을 만들고 연결할 수 있습니다. 이 옵션은 **데이터베이스 생성**, **스냅샷 복원** 및 **특정 시점으로 복원** 콘솔 페이지의 RDS Custom 보안 섹션에서 사용할 수 있습니다. **새 인스턴스 프로파일 생성**을 선택하여 인스턴스 프로파일 이름 접미사를 제공합니다. AWS Management Console은 RDS Custom 자동화 작업에 필요한 권한이 있는 새 인스턴스 프로파일을 생성합니다. 새 인스턴스 프로파일을 자동으로 만들려면 로그인한 AWS Management Console 사용자에게 `iam:CreateInstanceProfile`, `iam:AddRoleToInstanceProfile`, `iam:CreateRole` 및 `iam:AttachRolePolicy` 권한이 있어야 합니다.

**참고**  
이 옵션은 AWS Management Console에서만 사용할 수 있습니다. CLI 또는 SDK를 사용하는 경우 RDS Custom 제공 CloudFormation 템플릿을 사용하거나 인스턴스 프로파일을 수동으로 생성하세요. 자세한 내용은 [수동으로 IAM 역할과 인스턴스 프로파일 생성](#custom-setup-sqlserver.iam) 섹션을 참조하세요.

## 1단계: IAM 보안 주체에 필요한 권한 부여
<a name="custom-setup-sqlserver.iam-user"></a>

RDS Custom 인스턴스를 생성하기에 충분한 액세스 권한을 가지고 있는지 확인하세요. 콘솔 또는 CLI를 사용하여 RDS Custom for SQL Server DB 인스턴스를 생성하는 데 필요한 IAM 역할 또는 IAM 사용자(**IAM 보안 주체라고 함)는 DB 인스턴스를 성공적으로 생성하기 위해 다음 정책 중 하나를 가지고 있어야 합니다.
+ `AdministratorAccess` 정책
+ 다음과 같은 추가 권한이 있는 `AmazonRDSFullAccess` 정책:

  ```
  iam:SimulatePrincipalPolicy
  cloudtrail:CreateTrail
  cloudtrail:StartLogging
  s3:CreateBucket
  s3:PutBucketPolicy
  s3:PutBucketObjectLockConfiguration
  s3:PutBucketVersioning 
  kms:CreateGrant
  kms:DescribeKey
  kms:Decrypt
  kms:ReEncryptFrom
  kms:ReEncryptTo
  kms:GenerateDataKeyWithoutPlaintext
  kms:GenerateDataKey
  ec2:DescribeImages
  ec2:RunInstances
  ec2:CreateTags
  ```

  RDS Custom은 인스턴스 생성 시 이러한 권한을 사용합니다. 이러한 권한은 RDS Custom 작업에 필요한 리소스를 계정에 구성합니다.

  `kms:CreateGrant` 권한에 대한 자세한 내용은 [AWS KMS key 관리](Overview.Encryption.Keys.md) 섹션을 참조하세요.

다음 샘플 JSON 정책은 필요한 권한을 부여합니다.

------
#### [ JSON ]

****  

```
{
    "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-*"
        },
        {
            "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": "*"
        }
    ]
}
```

------

IAM 보안 주체가 사용자 지정 엔진 버전(CEV)을 사용하려면 다음과 같은 추가 권한이 필요합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ConfigureKmsKeyEncryptionPermission",
            "Effect": "Allow",
            "Action": [
                "kms:CreateGrant",
                "kms:DescribeKey",
                "kms:Decrypt",
                "kms:ReEncryptFrom",
                "kms:ReEncryptTo",
                "kms:GenerateDataKeyWithoutPlaintext",
                "kms:GenerateDataKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/key_id"
        },
        {
            "Sid": "CreateEc2Instance",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeImages",
                "ec2:RunInstances",
                "ec2:CreateTags"
            ],
            "Resource": "*"
        }
    ]
}
```

------

인스턴스를 생성할 때 사용하는 계정의 ID로 *111122223333*을 바꿉니다. 인스턴스를 생성할 때 사용하는 AWS 리전으로 *us-east-1*을 바꿉니다. 고객 관리형 키 ID로 *key\$1id*를 바꿉니다. 필요에 따라 키를 여러 개 추가할 수 있습니다.

EC2 인스턴스를 시작하는 데 필요한 리소스 수준 권한에 대한 자세한 내용은 [인스턴스 실행(RunInstances)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-example-runinstances)을 참조하세요.

또한 IAM 보안 주체는 IAM 역할에 `iam:PassRole` 권한이 필요합니다. RDS Custom DB 인스턴스를 생성하려면 요청의 `custom-iam-instance-profile` 파라미터에 전달된 인스턴스 프로파일에 첨부해야 합니다. 인스턴스 프로파일과 연결된 역할은 나중에 [2단계: 네트워킹, 인스턴스 프로파일 및 암호화 구성](#custom-setup-sqlserver.iam-vpc)에서 생성됩니다.

**참고**  
서비스 제어 정책(SCP), 권한 경계 또는 IAM 보안 주체와 연결된 세션 정책에서 이전에 나열된 권한을 제한하지 않는지 확인합니다.

## 2단계: 네트워킹, 인스턴스 프로파일 및 암호화 구성
<a name="custom-setup-sqlserver.iam-vpc"></a>

다음 프로세스 중 하나를 사용하여 IAM 인스턴스 프로파일 역할, Virtual Private Cloud(VPC) 및 AWS KMS 대칭 암호화 키를 구성할 수 있습니다.
+ [CloudFormation을 사용한 구성](#custom-setup-sqlserver.cf) (권장)
+ [수동으로 구성](#custom-setup-sqlserver.manual)

**참고**  
계정이 AWS Organizations에 속한 경우 서비스 제어 정책(SCP)에서 인스턴스 프로파일 역할에 필요한 권한을 제한하지 않는지 확인해야 합니다.  
이 주제의 네트워킹 구성은 공개적으로 액세스할 수 없는 DB 인스턴스에서 가장 잘 작동하도록 설계되었습니다. VPC 외부에서 이러한 DB 인스턴스에 직접 연결할 수 없습니다.

### CloudFormation을 사용한 구성
<a name="custom-setup-sqlserver.cf"></a>

설정을 간소화하기 위해 CloudFormation 템플릿 파일을 사용하여 CloudFormation 스택을 만들 수 있습니다. CloudFormation 템플릿은 RDS Custom의 요구 사항에 따라 모든 네트워킹, 인스턴스 프로파일, 암호화 리소스를 생성합니다.

스택을 생성하는 방법은 *CloudFormation 사용 설명서*의 [CloudFormation 콘솔에서 스택 생성](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)을 참조하세요.

CloudFormation 템플릿을 사용하여 Amazon RDS Custom for SQL Server를 시작하는 방법에 대한 자습서는 *AWS 데이터베이스 블로그*에서 [CloudFormation 템플릿을 사용하여 Amazon RDS Custom for SQL Server 시작하기](https://aws.amazon.com/blogs/database/get-started-with-amazon-rds-custom-for-sql-server-using-an-aws-cloudformation-template-network-setup/)를 참조하세요.

**Topics**
+ [CloudFormation에 필요한 파라미터](#custom-setup-sqlserver.cf.params)
+ [CloudFormation 템플릿 파일 다운로드](#custom-setup-sqlserver.cf.download)
+ [CloudFormation을 사용하여 리소스 구성](#custom-setup-sqlserver.cf.config)

#### CloudFormation에 필요한 파라미터
<a name="custom-setup-sqlserver.cf.params"></a>

CloudFormation으로 RDS Custom 사전 조건 리소스를 구성하려면 다음 파라미터가 필요합니다.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/custom-setup-sqlserver.html)

#### CloudFormation으로 생성된 리소스
<a name="custom-setup-sqlserver.cf.list"></a>

기본 설정을 사용하여 CloudFormation 스택을 성공적으로 생성하면 AWS 계정에 다음 리소스가 생성됩니다.
+ RDS Custom에서 관리하는 데이터의 암호화를 위한 대칭 암호화 KMS 키입니다.
+ 인스턴스 프로파일은 RDS Custom에서 요구하는 권한을 제공하기 위해 `AmazonRDSCustomInstanceProfileRolePolicy`를 통해 IAM 역할에 연결됩니다. 자세한 내용은 **AWS 관리형 정책 참조 안내서의 [AmazonRDSCustomServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSCustomServiceRolePolicy.html)를 참조하세요.
+ CIDR 범위가 CloudFormation 파라미터로 지정된 VPC입니다. 기본값은 `10.0.0.0/16`입니다.
+ 파라미터에 CIDR 범위가 지정된 2개의 프라이빗 서브넷과 AWS 리전에 있는 2개의 서로 다른 가용 영역입니다. 서브넷 CIDR의 기본값은 `10.0.128.0/20` 및 `10.0.144.0/20`입니다.
+ 파라미터에 CIDR 범위가 지정된 퍼블릭 서브넷 1개. 서브넷 CIDR의 기본값은 10.0.0.0/20입니다. EC2 인스턴스는 이 서브넷에 있으며 RDS Custom 인스턴스에 연결하는 데 사용할 수 있습니다.
+ Amazon 도메인 이름 시스템(DNS) 서버에 대한 도메인 이름 확인 기능이 있는 VPC에 설정된 DHCP 옵션입니다.
+ 2개의 프라이빗 서브넷과 연결되며 인터넷에 액세스할 수 없는 라우팅 테이블입니다.
+ 퍼블릭 서브넷과 연결되며 인터넷에 액세스할 수 있는 라우팅 테이블
+ 퍼블릭 서브넷에 대한 인터넷 액세스를 허용하기 위해 VPC와 연결되는 인터넷 게이트웨이
+ 두 프라이빗 서브넷과 연결되는 네트워크 액세스 제어 목록(ACL)과 HTTPS와 VPC 내의 DB 포트로 제한된 액세스
+ RDS Custom 인스턴스와 연결할 VPC 보안 그룹입니다. 아웃바운드 HTTPS의 경우 RDS Custom과 EC2 인스턴스 보안 그룹의 인바운드 DB 포트에 필요한 AWS 서비스 엔드포인트로 액세스가 제한됩니다.
+ 퍼블릭 서브넷의 EC2 인스턴스에 연결되는 VPC 보안 그룹. 아웃바운드 DB 포트의 경우 액세스가 RDS Custom 인스턴스 보안 그룹으로 제한됩니다.
+ RDS Custom에 필요한 AWS 서비스 엔드포인트에 대해 생성된 VPC 엔드포인트와 연결할 VPC 보안 그룹입니다.
+ RDS Custom 인스턴스가 생성되는 DB 서브넷 그룹입니다. 이 템플릿으로 생성된 2개의 프라이빗 서브넷이 DB 서브넷 그룹에 추가됩니다.
+ RDS Custom에 필요한 각 AWS 서비스 엔드포인트에 대한 VPC 엔드포인트입니다.

가용성 구성을 multi-az로 설정하면 위 목록 외에도 다음과 같은 리소스가 생성됩니다.
+ 프라이빗 서브넷 간 통신을 허용하는 네트워크 ACL 규칙
+ RDS Custom 인스턴스와 연결된 VPC 보안 그룹 내 다중 AZ 포트에 대한 인바운드 및 아웃바운드 액세스
+ 다중 AZ 통신에 필요한 AWS 서비스 엔드포인트로의 VPC 엔드포인트 연결

또한 RDP 액세스 구성을 설정하면 다음과 같은 리소스가 생성됩니다.
+ 소스 IP 주소에서 퍼블릭 서브넷에 대한 RDP 액세스 구성:
  + 소스 IP에서 퍼블릭 서브넷으로의 RDP 연결을 허용하는 네트워크 ACL 규칙
  + 소스 IP에서 EC2 인스턴스와 연결된 VPC 보안 그룹으로의 RDP 포트 인그레스 액세스
+ 퍼블릭 서브넷의 EC2 인스턴스에서 프라이빗 서브넷의 RDS Custom 인스턴스로의 RDP 액세스 구성:
  + 퍼블릭 서브넷에서 프라이빗 서브넷으로의 RDP 연결을 허용하는 네트워크 ACL 규칙
  + EC2 인스턴스와 연결된 VPC 보안 그룹에서 RDS Custom 인스턴스와 연결된 VPC 보안 그룹으로의 RDP 포트에 대한 인바운드 액세스

다음 절차에 따라 RDS Custom for SQL Server용 CloudFormation 스택을 생성합니다.

#### CloudFormation 템플릿 파일 다운로드
<a name="custom-setup-sqlserver.cf.download"></a>

**템플릿 파일을 다운로드하려면**

1. [custom-sqlserver-onboard.zip](samples/custom-sqlserver-onboard.zip) 링크의 컨텍스트 메뉴(마우스 오른쪽 버튼 클릭)를 열고 **Save Link As**(다른 이름으로 링크 저장)를 선택합니다.

1. 파일을 컴퓨터에 저장하고 압축을 풉니다.

#### CloudFormation을 사용하여 리소스 구성
<a name="custom-setup-sqlserver.cf.config"></a>

**CloudFormation을 사용하여 리소스를 구성하려면**

1. [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)에서 CloudFormation 콘솔을 엽니다.

1. 스택 생성 마법사를 시작하려면 **스택 생성(Create Stack)**을 선택합니다.

   **스택 생성(Create Stack)** 페이지가 표시됩니다.

1. **사전 조건 - 템플릿 준비(Prerequisite - Prepare template)**에서 **템플릿 준비 완료**를 선택합니다.

1. **템플릿 지정(Specify template)**에서 다음 작업을 수행합니다.

   1. **템플릿 소스**로 **템플릿 파일 업로드**를 선택합니다.

   1. **파일 선택**에서 올바른 파일을 찾아 선택합니다.

1. **다음**을 선택합니다.

   **스택 세부 정보 지정(Specify stack details)** 페이지가 나타납니다.

1. **스택 이름**에 **rds-custom-sqlserver**을 입력합니다.

1. **파라미터(Parameters)**에서 다음을 수행합니다.

   1. 기본 옵션을 유지하려면 **다음(Next)**을 선택합니다.

   1. 옵션을 변경하려면 적절한 가용성 구성, 네트워킹 구성 및 RDP 액세스 구성을 선택한 후 **다음**을 선택합니다.

      파라미터를 변경하기 전에 각 파라미터에 대한 설명을 주의 깊게 살펴봅니다.
**참고**  
이 CloudFormation 스택에서 하나 이상의 다중 AZ 인스턴스를 생성하는 경우, CloudFormation 스택 파라미터 **사전 조건 설정을 위한 가용성 구성 선택**이 `Multi-AZ`로 설정되어 있는지 확인하세요. CloudFormation 스택을 단일 AZ로 생성하는 경우, 첫 번째 다중 AZ 인스턴스를 생성하기 전에 CloudFormation 스택을 다중 AZ 구성으로 업데이트하세요.

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

1. **rds-custom-sqlserver 검토(Review rds-custom-sqlserver)** 페이지에서 다음을 수행합니다.

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

   1. **스택 생성**을 선택합니다.

**참고**  
이 CloudFormation 스택에서 생성된 리소스를 리소스 페이지에서 직접 업데이트하지 마세요. 이렇게 하면 CloudFormation 템플릿을 사용하여 이러한 리소스에 향후 업데이트를 적용할 수 없습니다.

CloudFormation은 RDS Custom for SQL Server에 필요한 리소스를 생성합니다. 스택 생성에 실패하면 **이벤트(Events)** 탭에서 실패한 리소스 생성 및 상태 이유를 확인할 수 있습니다.

콘솔의 이 CloudFormation 스택에 대한 **출력(Outputs)** 탭에는 RDS Custom for SQL Server DB 인스턴스를 생성하기 위해 파라미터로 전달할 모든 리소스 정보가 있어야 합니다. RDS Custom DB 인스턴스용 CloudFormation에서 생성한 VPC 보안 그룹과 DB 서브넷 그룹을 사용해야 합니다. 기본적으로 RDS는 기본 VPC 보안 그룹을 연결하려고 하는데, 여기에 필요한 액세스 권한이 없을 수 있습니다.

CloudFormation을 사용하여 리소스를 만든 경우 [수동으로 구성](#custom-setup-sqlserver.manual)을 건너뛸 수 있습니다.

#### CloudFormation 스택 업데이트
<a name="custom-setup-sqlserver.cf.update"></a>

CloudFormation 스택을 만든 후 일부 구성을 업데이트할 수도 있습니다. 업데이트할 수 있는 구성은 다음과 같습니다.
+ RDS Custom for SQL Server에 대한 가용성 구성
  + **사전 조건 설정을 위한 가용성 구성 선택**: 단일 AZ 구성과 다중 AZ 구성 간에 전환하려면 이 파라미터를 업데이트하세요. 하나 이상의 다중 AZ 인스턴스에 대해 이 CloudFormation 스택을 사용하는 경우 다중 AZ 구성을 선택하도록 스택을 업데이트해야 합니다.
+ RDS Custom for SQL Server에 대한 RDP 액세스 구성
  + 소스의 IPv4 CIDR 블록: 이 파라미터를 업데이트하여 소스의 IPv4 CIDR 블록(또는 IP 주소 범위)을 업데이트할 수 있습니다. 이 파라미터를 공백으로 설정하면 소스 CIDR 블록에서 퍼블릭 서브넷으로의 RDP 액세스 구성이 제거됩니다.
  + RDS Custom for SQL Server에 대한 RDP 액세스 설정: EC2 인스턴스에서 RDS Custom for SQL Server 인스턴스로의 RDP 연결을 활성화하거나 비활성화합니다.

#### CloudFormation 스택 삭제
<a name="custom-setup-sqlserver.cf.delete"></a>

스택에서 리소스를 사용하는 모든 RDS Custom 인스턴스를 삭제한 후 CloudFormation 스택을 삭제할 수 있습니다. RDS Custom은 CloudFormation 스택을 추적하지 않으므로 스택 리소스를 사용하는 DB 인스턴스가 있는 경우 스택 삭제를 차단하지 않습니다. 스택을 삭제할 때 스택 리소스를 사용하는 RDS Custom DB 인스턴스가 없는지 확인하세요.

**참고**  
CloudFormation 스택을 삭제하면 KMS 키를 제외하고 스택에서 생성된 모든 리소스가 삭제됩니다. KMS 키는 삭제 대기 중 상태가 되고 30일 후에 삭제됩니다. KMS 키를 유지하려면 30일 유예 기간 동안 [CancelKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_CancelKeyDeletion.html) 작업을 수행합니다.

### 수동으로 구성
<a name="custom-setup-sqlserver.manual"></a>

리소스를 수동으로 구성하도록 선택한 경우 다음 태스크를 수행합니다.

**참고**  
설정을 간소화하려는 경우, 수동 구성 대신 CloudFormation 템플릿 파일을 사용하여 CloudFormation 스택을 만들 수 있습니다. 자세한 내용은 [CloudFormation을 사용한 구성](#custom-setup-sqlserver.cf) 섹션을 참조하세요.  
AWS CLI를 사용하여 이 섹션을 완료할 수도 있습니다. 사용하려면 최신 CLI를 다운로드하고 설치하세요.

**Topics**
+ [대칭 암호화 AWS KMS 키 보유 여부 확인](#custom-setup-sqlserver.cmk)
+ [수동으로 IAM 역할과 인스턴스 프로파일 생성](#custom-setup-sqlserver.iam)
+ [VPC 수동 구성](#custom-setup-sqlserver.vpc)

#### 대칭 암호화 AWS KMS 키 보유 여부 확인
<a name="custom-setup-sqlserver.cmk"></a>

대칭 암호화 AWS KMS key는 RDS Custom에 필수입니다. RDS Custom for SQL Server DB 인스턴스를 생성할 때는 KMS 키 식별자를 `kms-key-id` 파라미터로 제공해야 합니다. 자세한 내용은 [Amazon RDS Custom for SQL Server의 DB 인스턴스 생성 및 연결](custom-creating-sqlserver.md) 섹션을 참조하세요.

다음과 같은 옵션이 있습니다.
+ 기존에 AWS 계정에 고객 관리형 KMS 키가 있는 경우 RDS Custom과 함께 사용할 수 있습니다. 별도로 조치를 취할 필요가 없습니다.
+ 다른 RDS Custom 엔진에 대해 고객 관리형 대칭 암호화 KMS 키를 이미 생성한 경우 동일한 KMS 키를 재사용할 수 있습니다. 별도로 조치를 취할 필요가 없습니다.
+ 계정에 사용 중이던 고객 관리형 대칭 암호화 KMS 키가 없는 경우 *AWS Key Management Service 개발자 가이드*의 [키 생성](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) 지침에 따라 KMS 키를 생성합니다.
+ CEV 또는 RDS Custom DB 인스턴스를 생성하고 있으며 KMS 키가 다른 AWS 계정에 있는 경우 반드시 AWS CLI를 사용해야 합니다. 교차 계정 KMS 키에는 AWS 콘솔을 사용할 수 없습니다.

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

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

자세한 내용은 [4단계: RDS Custom for Oracle의 IAM 구성](custom-setup-orcl.md#custom-setup-orcl.iam-vpc) 섹션을 참조하세요.

#### 수동으로 IAM 역할과 인스턴스 프로파일 생성
<a name="custom-setup-sqlserver.iam"></a>

인스턴스 프로파일을 수동으로 생성하고 이를 사용하여 RDS Custom 인스턴스를 시작할 수 있습니다. AWS Management Console에서 인스턴스를 생성하려는 경우 이 섹션을 건너뛰세요. AWS Management Console을 사용하면 인스턴스 프로파일을 생성하여 RDS Custom DB 인스턴스에 연결할 수 있습니다. 자세한 내용은 [AWS Management Console을 사용한 자동 인스턴스 프로파일 생성](#custom-setup-sqlserver.instanceProfileCreation) 섹션을 참조하세요.

인스턴스 프로파일을 수동으로 생성할 때는 인스턴스 프로파일 이름을 `custom-iam-instance-profile` 파라미터로 `create-db-instance` CLI 명령에 전달하세요. RDS Custom은 이 인스턴스 프로파일과 연결된 역할을 사용하여 자동화를 실행함으로써 인스턴스를 관리합니다.

**RDS Custom for SQL Server에 대한 IAM 인스턴스 프로파일과 IAM 역할을 생성하려면**

1. Amazon EC2에서 역할을 위임하는 데 사용할 수 있는 신뢰 정책을 통해 이름이 `AWSRDSCustomSQLServerInstanceRole`인 IAM 역할을 생성합니다.

1. AWS 관리형 정책 `AmazonRDSCustomInstanceProfileRolePolicy`를 `AWSRDSCustomSQLServerInstanceRole`에 추가합니다.

1. 이름이 `AWSRDSCustomSQLServerInstanceProfile`인 RDS Custom for SQL Server의 IAM 인스턴스 프로파일을 생성합니다.

1. 인스턴스 프로파일에 `AWSRDSCustomSQLServerInstanceRole` 역할을 추가합니다.

##### AWSRDSCustomSQLServerInstanceRole IAM 역할 생성
<a name="custom-setup-sqlserver.iam.create-role"></a>

다음 예제에서는 `AWSRDSCustomSQLServerInstanceRole` 역할을 생성합니다. 신뢰 정책을 사용하면 Amazon EC2가 역할을 위임하도록 할 수 있습니다.

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

##### AWSRDSCustomSQLServerInstanceRole에 액세스 정책 추가
<a name="custom-setup-sqlserver.iam.add-policy"></a>

필요한 권한을 제공하려면 AWS 관리형 정책 `AmazonRDSCustomInstanceProfileRolePolicy`를 `AWSRDSCustomSQLServerInstanceRole`에 연결하세요. `AmazonRDSCustomInstanceProfileRolePolicy`는 RDS Custom 인스턴스가 메시지를 송수신하고 다양한 자동화 작업을 수행할 수 있도록 합니다.

**참고**  
SCP 또는 인스턴스 프로파일 역할과 관련된 권한 경계가 액세스 정책의 권한을 제한하지 않는지 확인합니다.

다음 예에서는 AWS 관리형 정책 `AmazonRDSCustomInstanceProfileRolePolicy`를 `AWSRDSCustomSQLServerInstanceRole` 역할에 연결합니다.

```
aws iam attach-role-policy \
    --role-name AWSRDSCustomSQLServerInstanceRole \
    --policy-arn arn:aws:iam::aws:policy/AmazonRDSCustomInstanceProfileRolePolicy
```

##### RDS Custom for SQL Server 인스턴스 프로파일 생성
<a name="custom-setup-sqlserver.iam.create-profile"></a>

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

AWS Management Console을 사용하여 Amazon EC2 역할을 생성하는 경우, 콘솔이 자동으로 인스턴스 프로파일을 생성하여 역할 생성 시 역할과 동일한 이름을 부여합니다. 다음과 같이 인스턴스 프로파일을 생성하고 이름을 `AWSRDSCustomSQLServerInstanceProfile`로 지정합니다.

```
aws iam create-instance-profile \
    --instance-profile-name AWSRDSCustomSQLServerInstanceProfile
```

##### RDS Custom for SQL Server 인스턴스 프로파일에 AWSRDSCustomSQLServerInstanceRole 추가
<a name="custom-setup-sqlserver.iam.add-profile"></a>

이전에 만든 `AWSRDSCustomSQLServerInstanceProfile` 프로파일에 `AWSRDSCustomInstanceRoleForRdsCustomInstance` 역할을 추가합니다.

```
aws iam add-role-to-instance-profile \
    --instance-profile-name AWSRDSCustomSQLServerInstanceProfile \
    --role-name AWSRDSCustomSQLServerInstanceRole
```

#### VPC 수동 구성
<a name="custom-setup-sqlserver.vpc"></a>

RDS Custom DB 인스턴스는 Amazon EC2 인스턴스 또는 Amazon RDS 인스턴스와 마찬가지로 Amazon VPC 서비스를 기반으로 하는 Virtual Private Cloud(VPC)에 있습니다. 자체 VPC를 제공하고 구성해야 인스턴스 네트워킹 설정을 완벽하게 제어할 수 있습니다.

RDS Custom은 DB 인스턴스에서 다른 AWS 서비스로 통신을 전송합니다. RDS Custom DB 인스턴스를 생성하는 서브넷에서 다음 서비스에 액세스할 수 있는지 확인합니다.
+ Amazon CloudWatch(`com.amazonaws.region.monitoring`)
+ Amazon CloudWatch Logs(`com.amazonaws.region.logs`)
+ Amazon CloudWatch Events(`com.amazonaws.region.events`)
+ Amazon EC2(`com.amazonaws.region.ec2` 및 `com.amazonaws.region.ec2messages`)
+ Amazon S3(`com.amazonaws.region.s3`)
+ AWS Secrets Manager (`com.amazonaws.region.secretsmanager`)
+ AWS Systems Manager (`com.amazonaws.region.ssm` 및 `com.amazonaws.region.ssmmessages`)

다중 AZ 배포를 생성하는 경우
+ Amazon Simple Queue Service(`com.amazonaws.region.sqs`)

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

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

```
Database instance in incompatible-network. Amazon RDS can't connect to dependent AWS services. Make sure port 443 (HTTPS) allows outbound connections, and try again. "Failed to connect to the following services: s3 events"
```

`incompatible-network` 오류를 방지하려면 RDS Custom DB 인스턴스와 AWS 서비스 간의 통신과 관련된 VPC 구성 요소가 다음 요구 사항을 충족하는지 확인합니다.
+ DB 인스턴스는 포트 443에서 다른 AWS 서비스로 아웃바운드 연결을 생성할 수 있습니다.
+ VPC는 RDS Custom DB 인스턴스에서 시작된 요청에 대한 수신 응답을 허용합니다.
+ RDS Custom는 각 AWS 서비스에 대한 엔드포인트의 도메인 이름을 정확하게 확인할 수 있습니다.

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

**Topics**
+ [VPC 보안 그룹 구성](#custom-setup-sqlserver.vpc.sg)
+ [종속 AWS 서비스의 엔드포인트 구성](#custom-setup-sqlserver.vpc.endpoints)
+ [인스턴스 메타데이터 서비스 구성](#custom-setup-sqlserver.vpc.imds)

##### VPC 보안 그룹 구성
<a name="custom-setup-sqlserver.vpc.sg"></a>

*보안 그룹*은 VPC 인스턴스에 대한 가상 방화벽 역할을 하며 인바운드 및 아웃바운드 트래픽을 모두 제어합니다. RDS Custom DB 인스턴스에는 네트워크 인터페이스에 연결되어 인스턴스를 보호하는 보안 그룹이 있습니다. 보안 그룹이 HTTPS를 통해 RDS Custom과 다른 AWS 서비스 간의 트래픽을 허용하는지 확인해야 합니다. 인스턴스 생성 요청 시 이 보안 그룹을 `vpc-security-group-ids` 파라미터로 전달합니다.

**RDS Custom의 보안 그룹을 구성하는 방법**

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/vpc](https://console.aws.amazon.com/vpc)에서 Amazon VPC 콘솔을 엽니다.

1. RDS Custom에서 기본 보안 그룹을 사용하거나 고유한 보안 그룹을 생성하도록 허용합니다.

   자세한 지침은 [보안 그룹을 생성하여 VPC 내부의 DB 인스턴스에 대한 액세스를 제공](CHAP_SettingUp.md#CHAP_SettingUp.SecurityGroup) 섹션을 참조하세요.

1. 보안 그룹이 포트 443에서 아웃바운드 연결을 허용하는지 확인합니다. RDS Custom에서 종속 AWS 서비스와 통신하려면 이 포트가 필요합니다.

1. 프라이빗 VPC가 있고 VPC 엔드포인트를 사용하는 경우 DB 인스턴스와 연결된 보안 그룹이 포트 443에서 VPC 엔드포인트로의 아웃바운드 연결을 허용하는지 확인합니다. 또한 VPC 엔드포인트와 연결된 보안 그룹이 DB 인스턴스에서 포트 443의 인바운드 연결을 허용하는지 확인합니다.

   수신 연결을 허용하지 않으면 RDS Custom 인스턴스가 AWS Systems Manager 및 Amazon EC2 엔드포인트에 연결할 수 없습니다. 자세한 내용은 *AWS Systems Manager 사용 설명서*의 [Virtual Private Cloud 엔드포인트 생성](https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-create-vpc.html)을 참조하세요.

1. RDS Custom for SQL Server 다중 AZ 인스턴스의 경우 DB 인스턴스와 연결된 보안 그룹이 포트 1120에서 이 보안 그룹 자체에 인바운드 및 아웃바운드 연결을 허용하는지 확인합니다. 이는 다중 AZ RDS Custom for SQL Server DB 인스턴스의 피어 호스트 연결에 필요합니다.

보안 그룹에 대한 자세한 내용은 *Amazon VPC 개발자 안내서*의 [VPC의 보안 그룹](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)을 참조하세요.

##### 종속 AWS 서비스의 엔드포인트 구성
<a name="custom-setup-sqlserver.vpc.endpoints"></a>

다음 지침에 따라 모든 서비스에 대한 엔드포인트를 VPC에 추가하는 것이 좋습니다. 그러나 VPC가 AWS 서비스 엔드포인트와 통신할 수 있도록 하는 모든 솔루션을 사용할 수 있습니다. 예를 들어, 네트워크 주소 변환(NAT) 또는 AWS Direct Connect를 사용할 수 있습니다.

**RDS Custom이 작동하는 AWS 서비스의 엔드포인트를 구성하려면**

1. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)에서 Amazon VPC 콘솔을 엽니다.

1. 탐색 모음에서 리전 선택기를 사용하여 AWS 리전을 선택합니다.

1. 탐색 창에서 **엔드포인트**를 선택합니다. 기본 창에서 **Create Endpoint**(엔드포인트 생성)를 선택합니다.

1. **서비스 범주(Service category)**에서 **AWS 서비스**를 선택합니다.

1. **서비스 이름**으로 테이블에 나와 있는 엔드포인트를 선택합니다.

1. **VPC**에서 VPC를 선택합니다.

1. **서브넷**에서 포함하고자 하는 각 가용 영역의 서브넷을 선택합니다.

   VPC 엔드포인트는 여러 가용 영역을 아우를 수 있습니다. AWS는 선택한 각 서브넷에 VPC 엔드포인트에 대한 탄력적 네트워크 인터페이스를 생성합니다. 각 네트워크 인터페이스에는 도메인 이름 시스템(DNS) 호스트 이름과 프라이빗 IP 주소가 있습니다.

1. **보안 그룹(Security group)**에서 보안 그룹을 선택하거나 새로 만듭니다.

   보안 그룹을 사용하면 엔드포인트에 대한 액세스를 제어하므로 방화벽을 사용하는 것과 마찬가지입니다. 보안 그룹이 포트 443에서 DB 인스턴스로부터 인바운드 연결을 허용하는지 확인합니다. VPC 보안 그룹에 대한 자세한 내용은 [Amazon VPC 사용 설명서](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)의 *VPC의 보안 그룹*을 참조하세요.

1. 필요에 따라 정책을 VPC 엔드포인트에 연결할 수 있습니다. 엔드포인트정책은 연결 중인 AWS 서비스에 대한 액세스를 제어할 수 있습니다. 기본 정책은 모든 요청이 엔드포인트를 통과하도록 허용합니다. 사용자 지정 정책을 사용하는 경우 정책에서 DB 인스턴스의 요청이 허용되는지 확인합니다.

1. **엔드포인트 생성**을 선택합니다.

다음 테이블에서는 VPC가 아웃바운드 통신에 사용해야 하는 엔드포인트 목록을 찾는 방법을 안내합니다.


| 서비스 | 엔드포인트 형식 | 참고 및 링크 | 
| --- | --- | --- | 
|  AWS Systems Manager  |  다음 엔드포인트 형식을 사용합니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/custom-setup-sqlserver.html)  |  각 리전의 엔드포인트 목록은 *Amazon Web Services 일반 참조*에서 [AWS Systems Manager 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/ssm.html)을 참조하세요.  | 
|  AWS Secrets Manager  |  `secretsmanager.region.amazonaws.com` 엔드포인트 형식을 사용합니다.  |  각 리전의 엔드포인트 목록은 *Amazon Web Services 일반 참조*에서 [AWS Secrets Manager 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/asm.html)을 참조하세요.  | 
|  Amazon CloudWatch  |  다음 엔드포인트 형식을 사용합니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/custom-setup-sqlserver.html)  | 모든 리전의 엔드포인트 목록은 다음을 참조하세요.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/custom-setup-sqlserver.html) | 
|  Amazon EC2  |  다음 엔드포인트 형식을 사용합니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/custom-setup-sqlserver.html)  |  각 리전의 엔드포인트 목록은 *Amazon Web Services 일반 참조*의 [Amazon Elastic Compute Cloud 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/ec2-service.html)을 참조하세요.  | 
|  Amazon S3  |  `s3.region.amazonaws.com` 엔드포인트 형식을 사용합니다.  |  각 리전의 엔드포인트 목록은 *Amazon Web Services 일반 참조*에서 [Amazon Simple Storage Service 엔드포인트 및 할당량](https://docs.aws.amazon.com/general/latest/gr/s3.html)을 참조하세요. Amazon S3용 게이트웨이 엔드포인트에 대해 자세히 알아보려면 *Amazon VPC 개발자 가이드*에서 [Amazon S3용 엔드포인트](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html)를 참조하세요. 액세스 포인트를 생성하는 방법은 *Amazon VPC 개발자 안내서*의 [액세스 포인트 생성](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/access-points-create-ap.html)을 참조하세요. Amazon S3용 게이트웨이 엔드포인트를 생성하는 방법은 [게이트웨이 VPC 엔드포인트](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-gateway.html)를 참조하세요.  | 
|  Amazon Simple Queue Service  | sqs.region.amazonaws.com 엔드포인트 형식 사용 | 각 리전의 엔드포인트 목록은 [Amazon Simple Queue Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/sqs-service.html)를 참조하세요. | 

##### 인스턴스 메타데이터 서비스 구성
<a name="custom-setup-sqlserver.vpc.imds"></a>

인스턴스가 다음을 수행할 수 있는지 확인하세요.
+ 인스턴스 메타데이터 서비스 버전 2(IMDSv2)를 사용하여 인스턴스 메타데이터 서비스에 액세스합니다.
+ 포트 80(HTTP)을 통한 IMDS 링크 IP 주소로의 아웃바운드 통신을 허용합니다.
+ IMDSv2 링크인 `http://169.254.169.254`에서 인스턴스 메타데이터를 요청합니다.

자세한 내용은 [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html)Amazon EC2 사용 설명서의 *IMDSv2 사용*을 참조하세요.

## 크로스 인스턴스 제한 사항
<a name="custom-setup-sqlserver.cross-instance-restriction"></a>

위 단계에 따라 인스턴스 프로파일을 만들면 AWS 관리형 정책 `AmazonRDSCustomInstanceProfileRolePolicy`를 사용하여 RDS Custom에 필요한 권한을 제공하므로 인스턴스 관리 및 모니터링을 자동화할 수 있습니다. 이 관리형 정책은 RDS Custom이 자동화를 실행하는 데 필요한 리소스에만 권한을 부여하도록 합니다. 관리형 정책을 사용하여 새 기능을 지원하고 수동 개입 없이 기존 인스턴스 프로파일에 자동으로 적용되도록 하여 보안 요구 사항을 충족하는 것이 좋습니다. 자세한 내용은 [AWS AWS 관리형 정책: AmazonRDSCustomInstanceProfileRolePolicy](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-security-iam-awsmanpol.html#rds-security-iam-awsmanpol-AmazonRDSCustomInstanceProfileRolePolicy)를 참조하세요.

`AmazonRDSCustomInstanceProfileRolePolicy` 관리형 정책은 인스턴스 프로파일을 크로스 계정 액세스로 제한하지만, 동일한 계정 내 RDS Custom 인스턴스에서 일부 RDS Custom 관리 리소스에 대한 액세스는 허용할 수 있습니다. 요구 사항에 따라 권한 경계를 사용하여 크로스 인스턴스 액세스를 추가로 제한할 수 있습니다. 권한 경계는 ID 기반 정책을 통해 엔터티에 부여할 수 있는 최대 권한을 정의하지만, 그 자체로 권한을 부여하지는 않습니다. 자세한 내용은 [경계를 사용한 유효 권한 평가](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html#access_policies_boundaries-eval-logic)를 참조하세요.

예를 들어 다음 경계 정책은 인스턴스 프로파일 역할이 특정 AWS KMS 키에만 액세스하도록 제한하고 다른 AWS KMS 키를 사용하는 인스턴스 전체에서 RDS Custom 관리형 리소스에 대한 액세스를 제한합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenyOtherKmsKeyAccess",
            "Effect": "Deny",
            "Action": "kms:*",
            "NotResource": "arn:aws:kms:us-east-1:111122223333:key/KMS_key_ID"
        }
    ]
}
```

------

**참고**  
`AmazonRDSCustomInstanceProfileRolePolicy`기 RDS Custom에 부여하는 권한을 권한 경계가 차단하지 않도록 하세요.

# RDS Custom for SQL Server에서 기존 보유 미디어 사용(BYOM)
<a name="custom-sqlserver.byom"></a>

RDS Custom for SQL Server는 라이선스 포함(LI) 및 기존 보유 미디어 사용(BYOM)이라는 두 가지 라이선스 모델을 지원합니다.

**BYOM을 사용하여 다음 작업을 수행할 수 있습니다.**

1. 지원되는 누적 업데이트 (CU)와 함께 자체 Microsoft SQL Server 바이너리를 AWS EC2 Windows AMI에 제공하고 설치합니다.

1. AMI를 골든 이미지로 저장합니다. 골든 이미지는 사용자 지정 엔진 버전(CEV)을 생성하는 데 사용할 수 있는 템플릿입니다.

1. 골든 이미지로 CEV를 만듭니다.

1. CEV를 사용하여 새 RDS Custom for SQL Server DB 인스턴스를 생성합니다.

그러면 Amazon RDS가 사용자를 대신해 DB 인스턴스를 관리합니다.

**참고**  
또한 라이선스 포함(LI) RDS Custom for SQL Server DB 인스턴스가 있는 경우 이 DB 인스턴스의 SQL Server 소프트웨어를 BYOM과 함께 사용할 수 없습니다. 자체 SQL Server 바이너리를 BYOM에 가져와야 합니다.

## RDS Custom for SQL Server에서 BYOM 사용 시 요구 사항
<a name="custom-sqlserver.byom.requirements"></a>

RDS Custom for SQL Server를 사용하는 사용자 지정 엔진 버전에 대한 일반 요구 사항이 BYOM에도 적용됩니다. 자세한 내용은 [RDS Custom for SQL Server CEV 요구 사항](custom-cev-sqlserver.preparing.md#custom-cev-sqlserver.preparing.Requirements) 섹션을 참조하세요.

BYOM을 사용할 때는 다음과 같은 추가 요구 사항을 충족해야 합니다.
+ 지원되는 다음 에디션(SQL Server 2022 또는 2019 Enterprise, Standard, Developer Edition) 중 하나를 사용하세요.
+ SQL Server 시스템 관리자(SA) 서버 역할 권한을 `NT AUTHORITY\SYSTEM`에 부여합니다.
+ SSM 연결을 허용하려면 TCP 포트 1433과 UDP 포트 1434를 엽니다.

## RDS Custom for SQL Server에서 BYOM 사용 시 제한 사항
<a name="custom-sqlserver.byom.limitations"></a>

RDS Custom for SQL Server에 대한 일반 제한 사항이 BYOM에도 적용됩니다. 자세한 내용은 [Amazon RDS Custom for SQL Server 요구 사항 및 제한](custom-reqs-limits-MS.md) 섹션을 참조하세요.

BYOM에는 다음과 같은 추가 제한 사항이 적용됩니다.
+ 기본 SQL Server 인스턴스(MSSQLSERVER)만 지원됩니다. 이름이 지정된 SQL Server 인스턴스는 지원되지 않습니다. RDS Custom for SQL Server는 기본 SQL Server 인스턴스만 검색하고 모니터링합니다.
+ 각 AMI에서는 SQL Server를 한 번만 설치할 수 있습니다. 서로 다른 SQL Server 버전을 여러 개 설치하는 것은 지원되지 않습니다.
+ SQL Server Web Edition은 BYOM에서 지원되지 않습니다.
+ SQL Server 에디션의 평가 버전은 BYOM에서 지원되지 않습니다. SQL Server를 설치할 때 평가 버전 사용 확인란을 선택하지 마시기 바랍니다.
+ 기능 가용성 및 해당 지원은 각 데이터베이스 엔진의 특정 버전 및 AWS 리전 리전에 따라 다릅니다. 자세한 내용은 [RDS Custom for SQL Server CEV에 대한 리전 가용성](custom-cev-sqlserver.preparing.md#custom-cev-sqlserver.preparing.RegionVersionAvailability) 및 [RDS Custom for SQL Server CEV에 대한 버전 지원](custom-cev-sqlserver.preparing.md#custom-cev-sqlserver.preparing.VersionSupport)(을)를 참조하세요.

## BYOM을 사용하여 RDS Custom for SQL Server DB 인스턴스 생성
<a name="custom-sqlserver.byom.creating"></a>

BYOM을 사용하여 RDS Custom for SQL Server DB 인스턴스를 준비하고 생성하려면 [기존 보유 미디어를 사용(BYOM)하여 CEV 준비](custom-cev-sqlserver.preparing.md#custom-cev-sqlserver.preparing.byom) 섹션을 참조하세요.

# RDS Custom for SQL Server 사용자 지정 엔진 버전 작업
<a name="custom-cev-sqlserver"></a>

RDS Custom for SQL Server용 *사용자 지정 엔진 버전(CEV)*은 Microsoft SQL Server가 포함된 Amazon Machine Image(AMI)입니다.

**CEV 워크플로의 기본 단계는 다음과 같습니다.**

1. CEV의 기본 이미지로 사용할 AWS EC2 Windows AMI를 선택합니다. 사전 설치된 Microsoft SQL Server를 사용하거나 자체 미디어를 가져와 SQL Server를 직접 설치할 수 있습니다.

1. 운영 체제(OS)에 다른 소프트웨어를 설치하고 기업 요구 사항에 맞게 OS 및 SQL Server의 구성을 사용자 지정합니다.

1. AMI를 골든 이미지로 저장

1. 골든 이미지로 커스텀 엔진 버전(CEV)을 만듭니다.

1. CEV를 사용하여 새 RDS Custom for SQL Server DB 인스턴스를 생성합니다.

이렇게 하면 Amazon RDS가 사용자를 대신해 이러한 DB 인스턴스를 관리합니다.

CEV를 사용하면 OS와 데이터베이스의 기본 구성을 원하는 대로 유지할 수 있습니다. CEV를 사용하면 타사 에이전트 설치 또는 기타 OS 사용자 지정 같은 호스트 구성이 RDS Custom for SQL Server DB 인스턴스에서 유지됩니다. CEV를 사용하면 동일한 구성의 RDS Custom for SQL Server DB 플릿을 빠르게 배포할 수 있습니다.

**Topics**
+ [RDS Custom for SQL Server용 CEV 생성 준비](custom-cev-sqlserver.preparing.md)
+ [RDS Custom for SQL Server CEV 생성](custom-cev-sqlserver.create.md)
+ [RDS Custom for SQL Server용 CEV 수정](custom-cev-sqlserver-modifying.md)
+ [Amazon RDS Custom for SQL Server의 CEV 세부 정보 보기](custom-viewing-sqlserver.md)
+ [RDS Custom for SQL Server용 CEV 삭제](custom-cev-sqlserver-deleting.md)

# RDS Custom for SQL Server용 CEV 생성 준비
<a name="custom-cev-sqlserver.preparing"></a>

사전 설치된 라이선스 포함(LI) Microsoft SQL Server가 속한 Amazon Machine Image(AMI)를 사용하거나 자체 SQL Server 설치 미디어(BYOM)가 설치될 AMI를 사용하여 CEV를 생성할 수 있습니다.

## CEV 준비
<a name="custom-cev-sqlserver.preparing.types"></a>

다음 절차에 따라 기존 보유 미디어 사용(BYOM) 또는 사전 설치된 Microsoft SQL Server(LI)를 사용하여 CEV를 생성합니다.

### 기존 보유 미디어를 사용(BYOM)하여 CEV 준비
<a name="custom-cev-sqlserver.preparing.byom"></a>

다음 단계에서는 **Windows Server 2019 Base**가 포함된 AMI를 예로 사용합니다.

**BYOM을 사용하여 CEV를 만드는 방법**

1. Amazon EC2 콘솔 대시보드에서 **인스턴스 시작**을 선택합니다.

1. **이름**에 인스턴스 이름을 입력합니다.

1. 빠른 시작에서 **Windows**를 선택합니다.

1. **Microsoft Windows Server 2019 Base**를 선택합니다.

1. 적절한 인스턴스 유형, 키 페어, 네트워크 및 스토리지 설정을 선택하고 인스턴스를 시작합니다.

1. EC2 인스턴스를 시작하거나 생성한 후 4단계에서 올바른 Windows AMI를 선택했는지 확인합니다.

   1. Amazon EC2 콘솔에서 EC2 인스턴스를 선택합니다.

   1. **세부 정보** 섹션에서 **사용 작업**을 확인하고 해당 작업이 **RunInstances:0002**로 설정되어 있는지 확인합니다.  
![\[BYOM용 RunInstances:0002를 사용하는 Windows AMI입니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/cev-sqlserver-byom-ec2runinstances.png)

1. EC2 인스턴스에 로그인하고 SQL Server 설치 미디어를 해당 인스턴스에 복사합니다.
**참고**  
SQL Server Developer 에디션을 사용하여 CEV를 구축하는 경우 [Microsoft Visual Studio 구독](https://my.visualstudio.com/Downloads?q=sqlserver%20developer)을 사용하여 설치 미디어를 구해야 할 수 있습니다.

1. SQL Server를 설치합니다. 다음을 수행하세요.

   1. [RDS Custom for SQL Server에서 BYOM 사용 시 요구 사항](custom-sqlserver.byom.md#custom-sqlserver.byom.requirements) 및 [RDS Custom for SQL Server CEV에 대한 버전 지원](#custom-cev-sqlserver.preparing.VersionSupport)를 검토합니다.

   1. 인스턴스 루트 디렉터리를 기본값인 `C:\Program Files\Microsoft SQL Server\`로 설정합니다. 이 디렉터리를 변경하지 마세요.

   1. SQL Server 데이터베이스 엔진 계정 이름을 `NT Service\MSSQLSERVER` 또는 `NT AUTHORITY\NETWORK SERVICE`로 설정합니다.

   1. SQL Server 시작 모드를 **수동**으로 설정합니다.

   1. SQL Server 인증 모드를 **혼합**으로 선택합니다.

   1. 기본 데이터 디렉터리 및 TempDB 위치에 대한 기존 설정을 그대로 유지합니다.

1. SQL Server 시스템 관리자(SA) 서버 역할 권한을 `NT AUTHORITY\SYSTEM`에 부여합니다.

   ```
   1. USE [master]
   2. GO
   3. EXEC master..sp_addsrvrolemember @loginame = N'NT AUTHORITY\SYSTEM' , @rolename = N'sysadmin'
   4. GO
   ```

1. 추가 소프트웨어를 설치하거나 요구 사항에 맞게 OS 및 데이터베이스 구성을 사용자 지정합니다.

1. EC2 인스턴스에서 Sysprep을 실행합니다. 자세한 내용은 [Create an Amazon EC2 AMI using Windows Sysprep](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-create-win-sysprep.html)을 참조하세요.

1. 설치된 SQL Server 버전, 기타 소프트웨어 및 사용자 지정이 포함된 AMI를 저장합니다. 이것이 골든 이미지가 됩니다.

1. 생성한 이미지의 AMI ID를 제공하여 새 CEV를 생성합니다. 자세한 단계는 [RDS Custom for SQL Server CEV 생성](custom-cev-sqlserver.create.md) 섹션을 참조하세요.

1. CEV를 사용하여 새 RDS Custom for SQL Server DB 인스턴스를 생성합니다. 자세한 단계는 [CEV에서 RDS Custom for SQL Server DB 인스턴스 생성](custom-cev-sqlserver.create.md#custom-cev-sqlserver.create.newdbinstance) 섹션을 참조하세요.

### 사전 설치된 SQL Server(LI)를 사용하여 CEV 준비
<a name="custom-cev-sqlserver.preparing.licenseincluded"></a>

사전 설치된 Microsoft SQL Server(LI)를 사용하여 CEV를 생성하는 다음 단계에서는 **SQL Server CU20** 릴리스 번호가 `2023.05.10`인 AMI를 예로 사용합니다. CEV를 생성할 때는 릴리스 번호가 가장 최신인 AMI를 선택하세요. 이렇게 하면 지원되는 버전의 Windows Server 및 SQL Server를 최신 누적 업데이트(CU)와 함께 사용할 수 있습니다.

**사전 설치된 Microsoft SQL Server(LI)를 사용하여 CEV를 만드는 방법**

1. 라이선스 포함(LI) Microsoft Windows Server 및 SQL Server가 있는 최신 AWS EC2 Windows Amazon Machine Image(AMI)를 선택합니다.

   1. [Windows AMI 버전 기록](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-windows-ami-version-history.html)에서 **CU20**을 검색합니다.

   1. 릴리스 번호를 기록해 두세요. SQL Server 2019 CU20의 릴리스 번호는 `2023.05.10`입니다.  
![\[SQL Server 2019 CU20에 대한 AMI 버전 기록 결과.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/rds_custom_sqlserver_cev_find_ami_history_li_cu20.png)

   1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

   1. Amazon EC2 콘솔의 왼쪽 탐색 창에서 **Images**(이미지)를 선택하고 **AMIs**를 선택합니다.

   1. **퍼블릭 이미지**를 선택합니다.

   1. 검색 상자에 `2023.05.10`를 입력합니다. AMI 목록이 나타납니다.

   1. 검색 상자에 `Windows_Server-2019-English-Full-SQL_2019`를 입력하여 결과를 필터링합니다. 다음과 같은 결과가 표시됩니다.  
![\[SQL Server 2019 CU20을 사용하는 지원되는 AMI.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/rds_custom_sqlserver_cev_find_ami_li_cu.png)

   1. 사용할 SQL Server 에디션이 있는 AMI를 선택합니다.

1. 선택한 AMI에서 EC2 인스턴스를 생성하거나 시작합니다.

1. EC2 인스턴스에 로그인하여 추가 소프트웨어를 설치하거나 요구 사항에 맞게 OS 및 데이터베이스 구성을 사용자 지정합니다.

1. EC2 인스턴스에서 Sysprep을 실행합니다. Sysprep을 사용한 AMI 준비에 대한 자세한 내용은 [Sysprep을 사용하여 표준화된 Amazon Machine Image(AMI) 생성](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/Creating_EBSbacked_WinAMI.html#sysprep-using-ec2launchv2)을 참조하세요.

1. 설치된 SQL Server 버전, 기타 소프트웨어 및 사용자 지정이 포함된 AMI를 저장합니다. 이것이 골든 이미지가 됩니다.

1. 생성한 이미지의 AMI ID를 제공하여 새 CEV를 생성합니다. CEV 생성에 대한 자세한 단계는 [RDS Custom for SQL Server CEV 생성](custom-cev-sqlserver.create.md) 섹션을 참조하세요.

1. CEV를 사용하여 새 RDS Custom for SQL Server DB 인스턴스를 생성합니다. 자세한 단계는 [CEV에서 RDS Custom for SQL Server DB 인스턴스 생성](custom-cev-sqlserver.create.md#custom-cev-sqlserver.create.newdbinstance) 섹션을 참조하세요.

## RDS Custom for SQL Server CEV에 대한 리전 가용성
<a name="custom-cev-sqlserver.preparing.RegionVersionAvailability"></a>

RDS Custom for SQL Server에 대한 사용자 지정 엔진 버전(CEV) 지원은 다음 AWS 리전에서 제공됩니다.
+ 미국 동부(오하이오)
+ 미국 동부(버지니아 북부)
+ 미국 서부(오레곤)
+ 미국 서부(캘리포니아 북부)
+ 아시아 태평양(뭄바이)
+ 아시아 태평양(오사카)
+ 아시아 태평양(서울)
+ 아시아 태평양(싱가포르)
+ 아시아 태평양(시드니)
+ 아시아 태평양(도쿄)
+ 캐나다(중부)
+ 유럽(프랑크푸르트)
+ 유럽(아일랜드)
+ 유럽(런던)
+ 유럽(파리)
+ 유럽(스톡홀름)
+ 남아메리카(상파울루)

## RDS Custom for SQL Server CEV에 대한 버전 지원
<a name="custom-cev-sqlserver.preparing.VersionSupport"></a>

RDS Custom for SQL Server용 CEV 생성은 다음 AWS EC2 Windows AMI에서 지원됩니다.
+ 사전 설치된 미디어를 사용하는 CEV의 경우 라이선스 포함(LI) Microsoft Windows Server 2019(OS) 및 SQL Server 2022 또는 2019가 포함된 AWS EC2 Windows AMI
+ 기존 보유 미디어를 사용(BYOM)하는 CEV의 경우 Microsoft Windows Server 2019(OS)가 포함된 AWS EC2 Windows AMI

RDS Custom for SQL Server용 CEV 생성은 다음 운영 체제(OS) 및 데이터베이스 에디션에 지원됩니다.
+ 사전 설치된 미디어를 사용하는 CEV의 경우:
  + SQL Server 2,022 Enterprise, Standard 또는 Web과 CU9, CU13, CU14-GDR, CU15-GDR, CU16, CU17, CU18, CU19, CU19-GDR, CU20-GDR, CU21-GDR, CU22 및 CU22-GDR.
  + SQL Server 2019 Enterprise, Standard 또는 Web과 CU8, CU17, CU18, CU20, CU24, CU26, CU28-GDR, CU29-GDR, CU30, CU32 및 CU32-GDR.
+ 기존 보유 미디어를 사용(BYOM)하는 CEV의 경우:
  + SQL Server 2022 Enterprise, Standard 또는 Developer와 CU9, CU13, CU14-GDR, CU15-GDR, CU16, CU17, CU18, CU19, CU19-GDR, CU20-GDR, CU21-GDR, CU22 및 CU22-GDR.
  + SQL Server 2019 Enterprise, Standard 또는 Developer와 CU8, CU17, CU18, CU20, CU24, CU26, CU28-GDR, CU29-GDR, CU30, CU32 및 CU32-GDR.
+ 사전 설치된 미디어 또는 기존 보유 미디어를 사용(BYOM)하는 CEV의 경우 OS로 Windows Server 2019가 유일하게 지원됨

자세한 내용은 [AWS Windows AMI 버전 기록](https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/ec2-windows-ami-version-history.html)을 참조하세요.

## RDS Custom for SQL Server CEV 요구 사항
<a name="custom-cev-sqlserver.preparing.Requirements"></a>

다음 요구 사항은 RDS Custom for SQL Server용 CEV 생성에 적용됩니다.
+ CEV를 생성하는 데 사용하는 AMI는 RDS Custom for SQL Server에서 지원하는 OS 및 데이터베이스 구성을 기반으로 해야 합니다. 지원되는 구성에 대한 자세한 내용은 [Amazon RDS Custom for SQL Server 요구 사항 및 제한](custom-reqs-limits-MS.md) 섹션을 참조하세요.
+ CEV에는 고유한 이름이 있어야 합니다. 기존 CEV와 이름이 같은 CEV는 생성할 수 없습니다.
+ SQL Server *메이저 버전 \$1 마이너 버전 \$1 사용자 지정 문자열*이라는 이름 지정 패턴을 사용하여 CEV 이름을 지정해야 합니다. *메이저 버전\$1마이너 버전*은 AMI와 함께 제공된 SQL Server 버전과 일치해야 합니다. 예를 들어 SQL Server 2019 CU17을 사용하는 AMI의 이름은 **15.00.4249.2.my\$1cevtest**로 지정할 수 있습니다.
+ Sysprep을 사용한 AMI를 준비해야 합니다. Sysprep을 사용한 AMI 준비에 대한 자세한 내용은 [Sysprep을 사용하여 표준화된 Amazon Machine Image(AMI) 생성](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-create-win-sysprep.html)을 참조하세요.
+ AMI의 수명 주기를 관리할 책임은 사용자에게 있습니다. CEV에서 생성된 RDS Custom for SQL Server DB 인스턴스에는 AMI 사본이 저장되지 않습니다. CEV를 생성하는 데 사용한 AMI에 대한 포인터를 유지합니다. RDS Custom for SQL Server DB 인스턴스가 계속 작동하려면 AMI가 있어야 합니다.

## RDS Custom for SQL Server CEV 제한 사항
<a name="custom-cev-sqlserver.preparing.Limitations"></a>

RDS Custom for SQL Server를 사용하는 사용자 지정 엔진 버전에는 다음과 같은 제한 사항이 적용됩니다.
+ 연결된 DB 인스턴스 또는 DB 스냅샷 같은 리소스가 있는 경우 CEV를 삭제할 수 없습니다.
+ RDS Custom for SQL Server DB 인스턴스를 생성하려면 CEV는 상태가 `pending-validation`, `available`, `failed` 또는 `validating`이어야 합니다. CEV 상태가 `incompatible-image-configuration`인 경우에는 CEV를 사용하여 RDS Custom for SQL Server DB 인스턴스를 생성할 수 없습니다.
+ 새 CEV를 사용하도록 RDS Custom for SQL Server DB 인스턴스를 수정하려면 CEV 상태가 `available`이어야 합니다.
+ 기존 RDS Custom for SQL Server DB 인스턴스에서 AMI 또는 CEV를 생성할 수 없습니다.
+ 다른 AMI를 사용하도록 기존 CEV를 수정할 수는 없습니다. 그러나 RDS Custom for SQL Server DB 인스턴스를 수정하여 다른 CEV를 사용할 수는 있습니다. 자세한 내용은 [RDS Custom for SQL Server DB 인스턴스 수정](custom-managing.modify-sqlserver.md) 섹션을 참조하세요.
+ DB 인스턴스 생성 중에 제공된 KMS 키와 다른 고객 관리형 KMS 키로 AMI 또는 CEV를 암호화하는 것은 지원되지 않습니다.
+ CEV의 교차 리전 복사는 지원되지 않습니다.
+ CEV의 교차 계정 복사는 지원되지 않습니다.
+ 삭제한 CEV는 복원 또는 복구할 수 없습니다. 하지만 동일한 AMI에서 새 CEV를 생성할 수 있습니다.
+ RDS Custom for SQL Server DB 인스턴스는 SQL Server 데이터베이스 파일을 *D:\$1* 드라이브에 저장합니다. CEV와 연결된 AMI는 Microsoft SQL Server 시스템 데이터베이스 파일을 *C:\$1* 드라이브에 저장해야 합니다.
+ RDS Custom for SQL Server DB 인스턴스는 SQL Server 구성 변경 사항을 유지합니다. CEV에서 생성한 RDS Custom for SQL Server DB 인스턴스에서 실행 중인 운영 체제의 구성 변경 사항은 유지되지 않습니다. OS의 구성을 영구적으로 변경하고 이를 새 기본 구성으로 유지해야 하는 경우, 새 CEV를 생성한 다음 새 CEV를 사용하도록 DB 인스턴스를 수정하십시오.
**중요**  
새 CEV를 사용하도록 RDS Custom for SQL Server DB 인스턴스를 수정하는 작업은 오프라인 작업입니다. 즉시 수정을 수행하거나 주간 유지 관리 기간 중에 수정하도록 예약할 수 있습니다.
+ CEV를 수정할 때 Amazon RDS는 해당 수정 사항을 관련 RDS Custom for SQL Server DB 인스턴스에 푸시하지 않습니다. 신규 또는 업데이트된 CEV를 사용하려면 각 RDS Custom for SQL Server DB 인스턴스를 수정해야 합니다. 자세한 내용은 [RDS Custom for SQL Server DB 인스턴스 수정](custom-managing.modify-sqlserver.md) 섹션을 참조하세요.
+ 
**중요**  
CEV에서 사용하는 AMI가 삭제되면 호스트 교체가 필요할 수 있는 모든 수정(예: 컴퓨팅 크기 조정)이 실패하게 됩니다. 이렇게 되면 RDS Custom for SQL Server DB 인스턴스가 RDS 지원 경계 외부에 배치됩니다. CEV와 연결된 AMI는 삭제하지 않는 것이 좋습니다.

# RDS Custom for SQL Server CEV 생성
<a name="custom-cev-sqlserver.create"></a>

AWS Management Console 또는 AWS CLI를 사용하여 사용자 지정 엔진 버전(CEV)을 생성할 수 있습니다. 그런 다음 CEV를 사용하여 RDS Custom for SQL Server DB 인스턴스를 생성할 수 있습니다.

Amazon Machine Image(AMI)가 CEV와 동일한 AWS 계정 및 리전에 있는지 확인합니다. 그렇지 않으면 CEV 생성 프로세스가 실패합니다.

자세한 내용은 [Amazon RDS Custom for SQL Server의 DB 인스턴스 생성 및 연결](custom-creating-sqlserver.md) 단원을 참조하십시오.

**중요**  
CEV를 만드는 단계는 사전 설치된 SQL Server로 만든 AMI 및 기존 보유 미디어를 사용(BYOM)하여 만든 AMI와 동일합니다.

## 콘솔
<a name="custom-cev-sqlserver.create.console"></a>

**CEV를 생성하는 방법**

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **사용자 지정 엔진 버전(Custom engine versions)**을 선택합니다.

   **사용자 지정 엔진 버전(Custom engine versions)** 페이지에는 현재 존재하는 모든 CEV가 표시됩니다. CEV를 생성하지 않았다면 테이블은 비어 있습니다.

1. **Create custom engine version**(사용자 지정 엔진 버전 생성)을 선택합니다.

1. **Engine type**(엔진 유형)에서 **Microsoft SQL Server**를 선택합니다.

1. **에디션**에서 사용할 DB 엔진 에디션을 선택합니다.

1. **Major version**(메이저 버전)에서 AMI에 설치된 메이저 엔진 버전을 선택합니다.

1. **버전 세부 정보(Version details)**의 **사용자 지정 엔진 버전 이름(Custom engine version name)**에 유효한 이름을 입력합니다.

   이름 형식은 `major-engine-version.minor-engine-version.customized_string`입니다. 1\$150개의 영숫자, 밑줄, 대시 및 마침표를 사용할 수 있습니다. 예를 들어, **15.00.4249.2.my\$1cevtest**을 이름으로 입력할 수 있습니다.

   필요에 따라 CEV에 대한 설명을 입력합니다.

1. **Installation Media**(설치 미디어)에서 CEV를 생성할 때 사용할 AMI ID를 찾거나 입력합니다.

1. **Tags**(태그) 섹션에서 CEV를 식별하는 태그를 추가합니다.

1. **Create custom engine version**(사용자 지정 엔진 버전 생성)을 선택합니다.

**사용자 지정 엔진 버전(Custom engine versions)** 페이지가 표시됩니다. CEV가 **pending-validation**(검증 보류 중) 상태로 표시됩니다.

## AWS CLI
<a name="custom-cev-sqlserver.create.CEV"></a>

AWS CLI를 사용하여 CEV를 생성하려면 [create-custom-db-engine-version](https://docs.aws.amazon.com/cli/latest/reference/rds/create-custom-db-engine-version.html) 명령을 실행합니다.

다음 옵션이 필요합니다.
+ `--engine`
+ `--engine-version`
+ `--image-id`

다음 옵션도 지정할 수 있습니다.
+ `--description`
+ `--region`
+ `--tags`

다음 예제에서는 `15.00.4249.2.my_cevtest`이라는 CEV를 생성합니다. CEV의 이름이 주요 엔진 버전 번호로 시작하는지 확인하세요.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
1. aws rds create-custom-db-engine-version \
2.     --engine custom-sqlserver-ee \
3.     --engine-version 15.00.4249.2.my_cevtest \
4.     --image-id ami-0r93cx31t5r596482 \                    
5.     --description "Custom SQL Server EE 15.00.4249.2 cev test"
```
다음 부분 출력은 엔진, 파라미터 그룹 및 기타 정보를 보여줍니다.  

```
 1. "DBEngineVersions": [
 2.     {
 3.     "Engine": "custom-sqlserver-ee",
 4.     "MajorEngineVersion": "15.00",
 5.     "EngineVersion": "15.00.4249.2.my_cevtest",
 6.     "DBEngineDescription": "Microsoft SQL Server Enterprise Edition for RDS Custom for SQL Server",
 7.     "DBEngineVersionArn": "arn:aws:rds:us-east-1:<my-account-id>:cev:custom-sqlserver-ee/15.00.4249.2.my_cevtest/a1234a1-123c-12rd-bre1-1234567890",
 8.     "DBEngineVersionDescription": "Custom SQL Server EE 15.00.4249.2 cev test",
 9.                                                       
10.     "Image": [
11.         "ImageId": "ami-0r93cx31t5r596482",
12.         "Status": "pending-validation"
13.      ],
14.     "CreateTime": "2022-11-20T19:30:01.831000+00:00",
15.     "SupportsLogExportsToCloudwatchLogs": false,
16.     "SupportsReadReplica": false,
17.     "Status": "pending-validation",
18.     "SupportsParallelQuery": false,
19.     "SupportsGlobalDatabases": false,
20.     "TagList": []
21.     }
22. ]
```

CEV 생성 프로세스가 실패하면 RDS Custom for SQL Server가 `Creation failed for custom engine version major-engine-version.cev_name` 메시지와 함께 `RDS-EVENT-0198`을 발급합니다. 메시지에는 실패(예: 이벤트가 누락된 파일 인쇄) 관련 세부 정보가 포함되어 있습니다. CEV 생성 문제 해결 아이디어를 찾으려면 [RDS Custom for SQL Server의 CEV 오류 문제 해결](custom-troubleshooting-sqlserver.md#custom-troubleshooting-sqlserver.cev) 단원을 참조하세요.

## CEV에서 RDS Custom for SQL Server DB 인스턴스 생성
<a name="custom-cev-sqlserver.create.newdbinstance"></a>

CEV를 성공적으로 생성하면 **CEV status**(CEV 상태)에 `pending-validation`이 표시됩니다. 이제 CEV를 사용하여 새 RDS Custom for SQL Server DB 인스턴스를 생성할 수 있습니다. CEV에서 새 RDS Custom for SQL Server DB 인스턴스를 생성하려면 [RDS Custom for SQL Server DB 인스턴스 생성](custom-creating-sqlserver.md#custom-creating-sqlserver.create) 단원을 참조하세요.

## CEV의 수명 주기
<a name="custom-cev-sqlserver.create.lifecycle"></a>

CEV 수명 주기에는 다음 상태가 포함됩니다.


****  

| CEV 상태 | 설명 | 문제 해결 제안 | 
| --- | --- | --- | 
| `pending-validation` | CEV가 생성되었고 연결된 AMI의 검증이 보류 중입니다. CEV는 RDS Custom for SQL Server DB 인스턴스가 생성될 때까지 `pending-validation` 상태를 유지됩니다. | 기존 작업이 없는 경우 CEV에서 새 RDS Custom for SQL Server DB 인스턴스를 생성하세요. RDS Custom for SQL Server DB 인스턴스를 생성할 때 시스템은 CEV에 연결된 AMI 검증을 시도합니다.  | 
| `validating` | 새 CEV를 기반으로 하는 RDS Custom for SQL Server DB 인스턴스의 생성 작업이 진행 중입니다. RDS Custom for SQL Server DB 인스턴스를 생성할 때 시스템은 CEV의 연결된 AMI를 검증하려고 합니다. | RDS Custom for SQL Server DB 인스턴스 생성 작업이 완료될 때까지 기다리세요. RDS EVENTS 콘솔을 사용하여 문제 해결을 위한 세부 이벤트 메시지를 검토할 수 있습니다.  | 
| `available` | CEV가 성공적으로 검증되었습니다. CEV에서 RDS Custom for SQL Server DB 인스턴스가 성공적으로 생성되면 CEV가 `available` 상태가 됩니다. | CEV는 추가 검증을 하지 않아도 됩니다. CEV는 RDS Custom for SQL Server DB 인스턴스를 추가로 생성하거나 기존 인스턴스를 수정하는 데 사용할 수 있습니다. | 
| `inactive` | CEV가 비활성 상태로 수정되었습니다. | 이 CEV에서는 RDS Custom DB 인스턴스를 생성하거나 업그레이드할 수 없습니다. 또한 이 CEV에서는 DB 스냅샷을 복원하여 새로운 RDS Custom DB 인스턴스를 생성할 수 없습니다. 상태를 `ACTIVE`로 변경하는 방법에 대한 자세한 내용은 [RDS Custom for SQL Server용 CEV 수정](custom-cev-sqlserver-modifying.md) 단원을 참조하세요. | 
| `failed` | AMI를 검증하기 전에 이 CEV의 DB 인스턴스 생성 단계가 실패했습니다. 또는 CEV에서 사용하는 기본 AMI가 사용 가능한 상태가 아닙니다. | 시스템에서 DB 인스턴스를 생성할 수 없는 근본 원인을 해결하세요. 자세한 오류 메시지를 확인하고 새 DB 인스턴스를 다시 생성해 보세요. CEV에서 사용하는 기본 AMI가 사용 가능한 상태인지 확인하세요. | 
| `incompatible-image-configuration` | AMI를 검증하는 중 오류가 발생했습니다. | 오류의 기술적 세부 정보를 확인하세요. 이 CEV를 사용하여 AMI를 다시 검증할 수는 없습니다. 다음을 검토하세요. 권장 사항: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/custom-cev-sqlserver.create.html) 올바른 정보를 사용하여 새 CEV를 생성합니다. 필요한 경우 지원되는 AMI를 사용하여 새 EC2 인스턴스를 생성하고 이 인스턴스에서 Sysprep 프로세스를 실행합니다.  | 

# RDS Custom for SQL Server용 CEV 수정
<a name="custom-cev-sqlserver-modifying"></a>

AWS Management Console 또는 AWS CLI를 사용하여 CEV를 수정하고, CEV 설명 또는 가용 상태를 수정할 수 있습니다. CEV는 다음 상태 값 중 하나를 가집니다.
+ `available` - 이 CEV를 사용하여 새로운 RDS Custom DB 인스턴스를 생성하거나 DB 인스턴스를 업그레이드할 수 있습니다. 이 상태는 새로 생성된 CEV의 기본 상태입니다.
+ `inactive` - 이 CEV에서는 RDS Custom DB 인스턴스를 생성하거나 업그레이드할 수 없습니다. 이 CEV에서는 DB 스냅샷을 복원하여 새로운 RDS Custom DB 인스턴스를 생성할 수 없습니다.

CEV 상태를 `available`에서 `inactive`로, 또는 `inactive`에서 `available`로 변경할 수 있습니다. 상태를 `INACTIVE`로 변경하면 CEV를 실수로 사용하는 일을 방지하고 중단된 CEV를 다시 사용할 수 있습니다.

## 콘솔
<a name="custom-cev-sqlserver-modifying.console"></a>

**CEV를 수정하는 방법**

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **사용자 지정 엔진 버전(Custom engine versions)**을 선택합니다.

1. 수정하려는 설명 또는 상태가 지정된 CEV를 선택합니다.

1. **작업**에서 **수정**을 선택합니다.

1. 다음을 원하는 대로 변경합니다.
   + **CEV 상태 설정(CEV status settings)**에서 새로운 가용 상태를 선택합니다.
   + **버전 설명(Version description)**에 새로운 설명을 입력합니다.

1. **CEV 수정(Modify CEV)**을 선택합니다.

   CEV가 사용 중인 경우 콘솔에 **CEV 상태를 수정할 수 없습니다(You can't modify the CEV status)**가 표시됩니다. 문제를 해결한 후 다시 시도하세요.

**사용자 지정 엔진 버전(Custom engine versions)** 페이지가 표시됩니다.

## AWS CLI
<a name="custom-cev-sqlserver-modifying.cli"></a>

AWS CLI를 사용하여 CEV를 수정하려면 [modify-custom-db-engine-version](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-custom-db-engine-version.html) 명령을 실행합니다. [describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) 명령을 실행하여 수정할 CEV를 찾을 수 있습니다.

다음 옵션이 필요합니다.
+ `--engine`
+ `--engine-version cev`(*`cev`*는 수정하려는 사용자 지정 엔진 버전의 이름)
+ `--status`` status`(*`status`*는 CEV에 할당하려는 가용 상태)

다음 예제에서는 이름이 `15.00.4249.2.my_cevtest`로 지정된 CEV를 현재 상태에서 `inactive`로 변경합니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
1. aws rds modify-custom-db-engine-version \
2.     --engine custom-sqlserver-ee \ 
3.     --engine-version 15.00.4249.2.my_cevtest \
4.     --status inactive
```
Windows의 경우:  

```
1. aws rds modify-custom-db-engine-version ^
2.     --engine custom-sqlserver-ee ^
3.     --engine-version 15.00.4249.2.my_cevtest ^
4.     --status inactive
```

새 CEV를 사용하도록 RDS Custom for SQL Server DB 인스턴스를 수정하려면 [새 CEV를 사용하도록 RDS Custom for SQL Server DB 인스턴스 수정](custom-cev-sqlserver-modifying-dbinstance.md) 섹션을 참조하세요.

# 새 CEV를 사용하도록 RDS Custom for SQL Server DB 인스턴스 수정
<a name="custom-cev-sqlserver-modifying-dbinstance"></a>

기존 RDS Custom for SQL Server DB 인스턴스를 수정하여 다른 CEV를 사용할 수 있습니다. 다음과 같은 변경을 적용할 수 있습니다.
+ CEV 변경
+ DB 인스턴스 클래스 변경
+ 백업 보존 기간 및 백업 기간 변경
+ 유지 관리 기간 변경

## 콘솔
<a name="custom-cev-sqlserver-modifying-dbinstance.CON"></a>

**RDS Custom for SQL Server DB 인스턴스를 수정하는 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

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

1. 수정하려는 DB 인스턴스를 선택합니다.

1. **Modify**(수정)를 선택합니다.

1. 필요에 따라 다음과 같이 변경합니다.

   1. **DB 엔진 버전**(DB engine version)에서 다른 CEV를 선택합니다.

   1. **DB 인스턴스 클래스(DB instance class)** 값을 변경합니다. 지원되는 클래스는 [RDS Custom for SQL Server DB 인스턴스 클래스 지원](custom-reqs-limits.instancesMS.md) 섹션을 참조하세요.

   1. **백업 보존 기간(Backup retention period)** 값을 변경합니다.

   1. **백업 기간(Backup window)**의 경우 **시작 시간(Start time)**과 **기간(Duration)** 값을 설정합니다.

   1. **DB 인스턴스 유지 관리 기간(DB instance maintenance window)**의 경우 **시작일(Start day)**, **시작 시간(Start time)**, **기간(Duration)** 값을 설정합니다.

1. **계속(Continue)**을 선택합니다.

1. **즉시 적용(Apply immediately)** 또는 **예약된 다음 유지 관리 기간에 적용(Apply during the next scheduled maintenance window)**을 선택합니다.

1. **Modify DB instance**(DB 인스턴스 수정)를 선택합니다.
**참고**  
특정 CEV의 DB 인스턴스를 다른 CEV로 수정하는 경우(예를 들어 마이너 버전 업그레이드를 하는 경우), SQL Server 시스템 데이터베이스와 관련 데이터 및 구성은 현재 RDS Custom for SQL Server DB 인스턴스의 항목이 그대로 유지됩니다.

## AWS CLI
<a name="custom-cev-sqlserver-modifying-dbinstance.CLI"></a>

AWS CLI로 DB 인스턴스를 수정해 다른 CEV를 사용할 수 있게 하려면 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-custom-db-engine-version.html) 명령을 실행합니다.

다음 옵션이 필요합니다.
+ `--db-instance-identifier`
+ `--engine-version cev`(*`cev`*는 DB 인스턴스의 변경 대상인 사용자 지정 엔진 버전의 이름입니다).

다음 예제에서는 `my-cev-db-instance`라는 이름의 CEV를 사용하도록 `15.00.4249.2.my_cevtest_new`라는 이름의 DB 인스턴스를 수정하고 변경 사항을 즉시 적용합니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
1. aws rds modify-db-instance \
2.     --db-instance-identifier my-cev-db-instance \ 
3.     --engine-version 15.00.4249.2.my_cevtest_new \
4.     --apply-immediately
```
Windows의 경우:  

```
1. aws rds modify-db-instance ^
2.     --db-instance-identifier my-cev-db-instance ^
3.     --engine-version 15.00.4249.2.my_cevtest_new ^
4.     --apply-immediately
```

# Amazon RDS Custom for SQL Server의 CEV 세부 정보 보기
<a name="custom-viewing-sqlserver"></a>

AWS Management Console 또는 AWS CLI를 사용하여 CEV에 대한 세부 정보를 볼 수 있습니다.

## 콘솔
<a name="custom-viewing-sqlserver.console"></a>

**CEV 세부 정보를 보려면**

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **사용자 지정 엔진 버전(Custom engine versions)**을 선택합니다.

   **사용자 지정 엔진 버전(Custom engine versions)** 페이지에는 현재 존재하는 모든 CEV가 표시됩니다. CEV를 생성한 적이 없으면 페이지가 비어 있습니다.

1. 보려는 CEV의 이름을 선택합니다.

1. 세부 정보를 보려면 **Configuration**(구성)을 선택합니다.  
![\[CEV의 구성 세부 정보를 봅니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/rds_custom_sqlserver_cev_viewdetails.PNG)

## AWS CLI
<a name="custom-viewing-sqlserver.CEV"></a>

AWS CLI를 사용하여 CEV에 대한 세부 정보를 보려면 [describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) 명령을 실행합니다.

다음 옵션도 지정할 수 있습니다.
+ `--include-all`, 수명 주기 상태가 있는 모든 CEV를 볼 수 있습니다. `--include-all` 옵션이 없으면 `available` 수명 주기 상태의 CEV만 반환됩니다.

```
aws rds describe-db-engine-versions --engine custom-sqlserver-ee --engine-version 15.00.4249.2.my_cevtest --include-all
{
    "DBEngineVersions": [
        {
            "Engine": "custom-sqlserver-ee",
            "MajorEngineVersion": "15.00",
            "EngineVersion": "15.00.4249.2.my_cevtest",
            "DBParameterGroupFamily": "custom-sqlserver-ee-15.0",
            "DBEngineDescription": "Microsoft SQL Server Enterprise Edition for custom RDS",
            "DBEngineVersionArn": "arn:aws:rds:us-east-1:{my-account-id}:cev:custom-sqlserver-ee/15.00.4249.2.my_cevtest/a1234a1-123c-12rd-bre1-1234567890",
            "DBEngineVersionDescription": "Custom SQL Server EE 15.00.4249.2 cev test",
            "Image": {
                "ImageId": "ami-0r93cx31t5r596482",
                "Status": "pending-validation"
            },
            "DBEngineMediaType": "AWS Provided",
            "CreateTime": "2022-11-20T19:30:01.831000+00:00",
            "ValidUpgradeTarget": [],
            "SupportsLogExportsToCloudwatchLogs": false,
            "SupportsReadReplica": false,
            "SupportedFeatureNames": [],
            "Status": "pending-validation",
            "SupportsParallelQuery": false,
            "SupportsGlobalDatabases": false,
            "TagList": [],
            "SupportsBabelfish": false
        }
    ]
}
```

필터를 사용하여 특정 수명 주기 상태의 CEV를 볼 수 있습니다. 예를 들어 수명 주기 상태가 `pending-validation`, `available` 또는 `failed`인 CEV를 볼 수 있습니다.

```
aws rds describe-db-engine-versions engine custom-sqlserver-ee
                region us-west-2 include-all query 'DBEngineVersions[?Status == pending-validation || 
                Status == available || Status == failed]'
```

# RDS Custom for SQL Server용 CEV 삭제
<a name="custom-cev-sqlserver-deleting"></a>

AWS Management Console 또는 AWS CLI를 사용하여 CEV를 삭제할 수 있습니다. 이 작업은 일반적으로 몇 분 정도 걸립니다.

CEV를 삭제하기 전에 CEV가 다음 중 하나에 속하지 않는지 확인하세요.
+ RDS Custom DB 인스턴스
+ RDS Custom DB 인스턴스의 스냅샷
+ RDS Custom DB 인스턴스의 자동 백업

## 콘솔
<a name="custom-cev-sqlserver-deleting.console"></a>

**CEV를 삭제하는 방법**

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **사용자 지정 엔진 버전(Custom engine versions)**을 선택합니다.

1. 삭제하려는 설명 또는 상태가 지정된 CEV를 선택합니다.

1. **작업**에 대해 **삭제**를 선택합니다.

   ***cev\$1name*을 삭제하시겠습니까?(Delete cev\$1name?)** 대화 상자가 표시됩니다.

1. **delete me**를 입력한 다음 **삭제**를 선택합니다.

   **사용자 지정 엔진 버전(Custom engine versions)** 페이지의 배너에서 CEV가 삭제 중임을 표시합니다.

## AWS CLI
<a name="custom-cev-sqlserver-deleting.console.cli"></a>

AWS CLI를 사용하여 CEV를 삭제하려면 [delete-custom-db-engine-version](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-custom-db-engine-version.html) 명령을 실행합니다.

다음 옵션이 필요합니다.
+ `--engine custom-sqlserver-ee`
+ `--engine-version cev`(*cev*는 삭제할 사용자 지정 엔진 버전의 이름)

다음 예제에서는 이름이 `15.00.4249.2.my_cevtest`인 CEV를 삭제합니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
1. aws rds delete-custom-db-engine-version \
2.     --engine custom-sqlserver-ee \
3.     --engine-version 15.00.4249.2.my_cevtest
```
Windows의 경우:  

```
1. aws rds delete-custom-db-engine-version ^
2.     --engine custom-sqlserver-ee ^
3.     --engine-version 15.00.4249.2.my_cevtest
```

# Amazon RDS Custom for SQL Server의 DB 인스턴스 생성 및 연결
<a name="custom-creating-sqlserver"></a>

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

**중요**  
RDS Custom for SQL Server DB 인스턴스를 생성하거나 연결하기 전에 [Amazon RDS Custom for SQL Server를 위한 환경 설정](custom-setup-sqlserver.md)에 나와 있는 작업을 완료해야 합니다.  
RDS Custom DB 인스턴스를 생성할 때 태그를 지정할 수 있지만, RDS Custom 자동화에 필요한 `AWSRDSCustom` 태그를 생성하거나 수정해서는 안 됩니다. 자세한 내용은 [RDS Custom for SQL Server 리소스 태깅](custom-managing-sqlserver.tagging.md) 섹션을 참조하세요.  
RDS Custom for SQL Server DB 인스턴스를 처음 생성할 때 다음 오류가 표시될 수 있습니다. 서비스 연결 역할이 생성되고 있습니다. 나중에 다시 시도해 주세요. 이 경우에는 몇 분 정도 기다렸다가 다시 DB 인스턴스를 생성하면 됩니다.

**Topics**
+ [RDS Custom for SQL Server DB 인스턴스 생성](#custom-creating-sqlserver.create)
+ [RDS Custom 서비스 연결 역할](custom-creating-sqlserver.slr.md)
+ [AWS Systems Manager를 사용하여 RDS Custom DB 인스턴스에 연결](custom-creating-sqlserver.ssm.md)
+ [RDP를 사용하여 RDS Custom DB 인스턴스에 연결](custom-creating-sqlserver.rdp.md)

## RDS Custom for SQL Server DB 인스턴스 생성
<a name="custom-creating-sqlserver.create"></a>

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

자세한 내용은 [Amazon RDS DB 인스턴스 생성](USER_CreateDBInstance.md) 섹션을 참조하세요.

### 콘솔
<a name="custom-creating-sqlserver.CON"></a>

**RDS Custom for SQL Server DB 인스턴스를 생성하는 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

   지원되는 클래스는 [RDS Custom for SQL Server DB 인스턴스 클래스 지원](custom-reqs-limits.instancesMS.md) 섹션을 참조하세요.

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

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

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

      1. **새 인스턴스 프로파일 생성**을 선택하고 인스턴스 프로파일 이름 접미사를 제공합니다. 자세한 내용은 [AWS Management Console을 사용한 자동 인스턴스 프로파일 생성](custom-setup-sqlserver.md#custom-setup-sqlserver.instanceProfileCreation) 섹션을 참조하세요.

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

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

      AWS KMS 키는 RDS Custom에 필수입니다. 자세한 내용은 [대칭 암호화 AWS KMS 키 보유 여부 확인](custom-setup-sqlserver.md#custom-setup-sqlserver.cmk) 섹션을 참조하세요.

1. 나머지 섹션에서 원하는 대로 RDS Custom DB 인스턴스 설정을 지정합니다. 각 설정에 대한 자세한 내용은 [DB 인스턴스에 대한 설정](USER_CreateDBInstance.Settings.md) 섹션을 참조하세요. 다음 설정은 콘솔에 표시되지 않으며 지원되지 않습니다.
   + **프로세서 기능**
   + **Storage autoscaling(스토리지 Autoscaling**
   + **가용성 및 지속성(Availability & durability**
   + **데이터베이스 인증(Database authentication)**의 **암호 및 Kerberos 인증(Password and Kerberos authentication)** 옵션(**암호 인증(Password authentication)**만 지원)
   + **추가 구성(Additional configuration)**의 **데이터베이스 옵션(Database options)** 그룹
   + **성능 개선 도우미** 
   + **로그 내보내기**
   + **마이너 버전 자동 업그레이드 활성화**
   + **삭제 방지**

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

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

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

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

   DB 인스턴스를 마스터 사용자로 연결하려면 화면에 나타난 사용자 이름과 암호를 사용합니다.
**중요**  
마스터 사용자 암호를 다시 볼 수는 없습니다. 따라서 기록을 해두지 않으면 이를 변경해야 합니다. RDS Custom DB 인스턴스가 사용 가능한 상태가 되고 난 후에 마스터 사용자 암호를 변경하려면 DB 인스턴스를 수정하면 됩니다. DB 인스턴스 수정에 대한 자세한 내용은 [Amazon RDS Custom for SQL Server DB 인스턴스 관리](custom-managing-sqlserver.md) 섹션을 참조하세요.

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

1. 방금 생성한 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 인스턴스가 자동 모니터링 및 인스턴스 복구를 제공함을 의미합니다.

### AWS CLI
<a name="custom-creating-sqlserver.CLI"></a>

[create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) AWS CLI 명령을 사용하여 RDS Custom DB 인스턴스를 생성합니다.

다음 옵션이 필요합니다.
+ `--db-instance-identifier`
+ `--db-instance-class`(지원되는 인스턴스 클래스 목록은 섹션 참조)[RDS Custom for SQL Server DB 인스턴스 클래스 지원](custom-reqs-limits.instancesMS.md)
+ `--engine`(`custom-sqlserver-ee`, `custom-sqlserver-se` 또는 `custom-sqlserver-web`)
+ `--kms-key-id`
+ `--custom-iam-instance-profile`

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

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

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
 1. aws rds create-db-instance \
 2.     --engine custom-sqlserver-ee \
 3.     --engine-version 15.00.4073.23.v1 \
 4.     --db-instance-identifier my-custom-instance \
 5.     --db-instance-class db.m5.xlarge \
 6.     --allocated-storage 20 \
 7.     --db-subnet-group mydbsubnetgroup \
 8.     --master-username myuser \
 9.     --master-user-password mypassword \
10.     --backup-retention-period 3 \
11.     --no-multi-az \
12.     --port 8200 \
13.     --kms-key-id mykmskey \
14.     --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance
```
Windows의 경우:  

```
 1. aws rds create-db-instance ^
 2.     --engine custom-sqlserver-ee ^
 3.     --engine-version 15.00.4073.23.v1 ^
 4.     --db-instance-identifier my-custom-instance ^
 5.     --db-instance-class db.m5.xlarge ^
 6.     --allocated-storage 20 ^
 7.     --db-subnet-group mydbsubnetgroup ^
 8.     --master-username myuser ^
 9.     --master-user-password mypassword ^
10.     --backup-retention-period 3 ^
11.     --no-multi-az ^
12.     --port 8200 ^
13.     --kms-key-id mykmskey ^
14.     --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance
```
보안 모범 사례로 여기에 표시된 프롬프트 이외의 암호를 지정하는 것이 좋습니다.

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

```
1. aws rds describe-db-instances --db-instance-identifier my-custom-instance
```

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

```
 1. {
 2.     "DBInstances": [
 3.         {
 4.             "PendingModifiedValues": {},
 5.             "Engine": "custom-sqlserver-ee",
 6.             "MultiAZ": false,
 7.             "DBSecurityGroups": [],
 8.             "DBParameterGroups": [
 9.                 {
10.                     "DBParameterGroupName": "default.custom-sqlserver-ee-15",
11.                     "ParameterApplyStatus": "in-sync"
12.                 }
13.             ],
14.             "AutomationMode": "full",
15.             "DBInstanceIdentifier": "my-custom-instance",
16.             "TagList": []
17.         }
18.     ]
19. }
```

# RDS Custom 서비스 연결 역할
<a name="custom-creating-sqlserver.slr"></a>

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

RDS Custom DB 인스턴스를 생성하면 Amazon RDS 및 RDS Custom 서비스 연결 역할이 모두 생성되어(존재하지 않았던 경우) 사용됩니다. 자세한 내용은 [Amazon RDS에 서비스 연결 역할 사용](UsingWithRDS.IAM.ServiceLinkedRoles.md) 단원을 참조하십시오.

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

# AWS Systems Manager를 사용하여 RDS Custom DB 인스턴스에 연결
<a name="custom-creating-sqlserver.ssm"></a>

RDS Custom DB 인스턴스를 생성한 후 AWS Systems Manager 세션 관리자를 사용하여 연결할 수 있습니다. 세션 관리자는 브라우저 기반 셸이나 AWS CLI를 통해 Amazon EC2 인스턴스를 관리하는 데 사용할 수 있는 Systems Manager 기능입니다. 자세한 내용은 [AWS Systems Manager 세션 관리자](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html)를 참조하세요.

## 콘솔
<a name="custom-creating-sqlserver.ssm.CON"></a>

**세션 관리자를 사용하여 DB 인스턴스에 연결하는 방법**

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다.

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

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

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

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

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

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

1. **연결**을 선택합니다.

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

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

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

## AWS CLI
<a name="custom-creating-sqlserver.ssm.CLI"></a>

AWS CLI를 사용하여 RDS Custom DB 인스턴스에 연결할 수 있습니다. 이 기술을 사용하려면 AWS CLI용 세션 관리자 플러그인이 필요합니다. 플러그인 설치 방법은 [AWS CLI용 세션 관리자 플러그인 설치](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html)를 참조하세요.

RDS Custom DB 인스턴스의 DB 리소스 ID를 찾으려면 `[describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html)`를 사용합니다.

```
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 인스턴스에 연결
<a name="custom-creating-sqlserver.rdp"></a>

RDS Custom DB 인스턴스를 생성한 후 RDP 클라이언트를 사용하여 이 인스턴스에 연결할 수 있습니다. 이 절차는 Amazon EC2 인스턴스에 연결하는 절차와 동일합니다. 자세한 내용은 [Windows 인스턴스에 연결](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/connecting_to_windows_instance.html)을 참조하세요.

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

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

1. [RDP 연결을 허용하도록 DB 인스턴스 구성](#custom-creating-sqlserver.rdp.port).

1. [비밀 키 검색](#custom-creating-sqlserver.rdp.key).

1. [RDP 유틸리티를 사용하여 EC2 인스턴스에 연결](#custom-creating-sqlserver.rdp.connect).

## RDP 연결을 허용하도록 DB 인스턴스 구성
<a name="custom-creating-sqlserver.rdp.port"></a>

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

### VPC 보안 그룹 구성
<a name="custom-creating-sqlserver.rdp.port.vpc"></a>

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

### 호스트에서 방화벽 규칙 설정
<a name="custom-creating-sqlserver.rdp.port.firewall"></a>

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

특정 `-Profile` 값(`Public`, `Private` 또는 `Domain`)을 사용하는 것이 좋습니다. `Any`을 사용하면 세 값을 모두 지정하는 것입니다. 쉼표로 구분된 값 조합을 지정할 수도 있습니다. 방화벽 규칙 설정에 대한 자세한 내용은 Microsoft 설명서의 [Set-NetFirewallRule](https://docs.microsoft.com/en-us/powershell/module/netsecurity/set-netfirewallrule?view=windowsserver2019-ps)을 참조하세요.

**Systems Manager 세션 관리자를 사용하여 방화벽 규칙을 설정하는 방법**

1. [AWS Systems Manager를 사용하여 RDS Custom DB 인스턴스에 연결](custom-creating-sqlserver.ssm.md)에 표시된 대로 세션 관리자에 연결합니다.

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

   ```
   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")
   ```

1. 출력에서 반환된 명령 ID를 사용하여 이전 명령의 상태를 가져옵니다. 다음 쿼리를 사용하여 명령 ID를 반환하려면 jq 플러그인이 설치되어 있는지 확인합니다.

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

## 비밀 키 검색
<a name="custom-creating-sqlserver.rdp.key"></a>

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

### 콘솔
<a name="custom-creating-sqlserver.rdp.key.CON"></a>

**비밀 키를 검색하는 방법**

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다.

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

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

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

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

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

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

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

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

1. 인스턴스 요약에서 **퍼블릭 IPv4 DNS(Public IPv4 DNS)**를 찾습니다. 예를 들어, 퍼블릭 DNS는 `ec2-12-345-678-901.us-east-2.compute.amazonaws.com`일 수 있습니다.

1. [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)에서 AWS Secrets Manager 콘솔을 엽니다.

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

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

### AWS CLI
<a name="custom-creating-sqlserver.rdp.key.CLI"></a>

**프라이빗 키를 검색하는 방법**

1. `aws rds describe-db-instances` 명령을 호출하여 RDS Custom DB 인스턴스 목록을 가져옵니다

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

1. 샘플 출력에서 DB 인스턴스 식별자를 선택합니다(예: `do-not-delete-rds-custom-my-custom-instance`).

1. `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
   ```

1. 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 인스턴스에 연결
<a name="custom-creating-sqlserver.rdp.connect"></a>

**Amazon EC2 사용 설명서의 [RDP를 사용하여 Windows 인스턴스에 연결](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/connecting_to_windows_instance.html#connect-rdp)에 나와 있는 절차를 따릅니다. 이 절차에서는 프라이빗 키가 포함된 .pem 파일을 생성한 것으로 가정합니다.

# Amazon RDS Custom for SQL Server DB 인스턴스 관리
<a name="custom-managing-sqlserver"></a>

Amazon RDS Custom for SQL Server은 Amazon RDS DB 인스턴스에 대한 일반적인 관리 작업의 하위 집합을 지원합니다. 그런 다음 AWS Management Console 및 AWS CLI를 사용하여 지원되는 RDS Custom for SQL Server 관리 작업에 대한 지침을 확인할 수 있습니다.

**Topics**
+ [RDS Custom 자동화 일시 중지 및 다시 시작](custom-managing-sqlserver.pausing.md)
+ [RDS Custom for SQL Server DB 인스턴스 수정](custom-managing.modify-sqlserver.md)
+ [RDS Custom for SQL Server DB 인스턴스 스토리지 수정](custom-managing-sqlserver.storage-modify.md)
+ [RDS Custom for SQL Server 리소스 태깅](custom-managing-sqlserver.tagging.md)
+ [RDS Custom for SQL Server DB 인스턴스 삭제](#custom-managing-sqlserver.deleting)
+ [RDS Custom for SQL Server DB 인스턴스 시작 및 중지](custom-managing-sqlserver.startstop.md)

# RDS Custom 자동화 일시 중지 및 다시 시작
<a name="custom-managing-sqlserver.pausing"></a>

RDS Custom은 RDS Custom for SQL Server DB 인스턴스에 대한 모니터링 및 인스턴스 복구를 자동으로 제공합니다. 인스턴스를 사용자 지정해야 하는 경우 다음을 수행하세요.

1. 지정된 기간 동안 RDS Custom 자동화를 일시 중지합니다. 일시 중지하면 사용자 지정한 인스턴스가 RDS Custom 자동화를 방해하지 않도록 할 수 있습니다.

1. 필요에 따라 RDS Custom for SQL Server DB 인스턴스를 사용자 지정합니다.

1. 다음 중 하나를 수행하세요.
   + 수동으로 자동화를 다시 시작합니다.
   + 일시 중지 기간이 끝날 때까지 기다립니다. 이 경우 RDS Custom은 모니터링 및 인스턴스 복구를 자동으로 재개합니다.

**중요**  
RDS Custom for SQL Server DB 인스턴스를 수정할 때 지원되는 자동화 작업은 자동화 일시 중지 및 재개입니다.

## 콘솔
<a name="custom-managing.pausing.console"></a>

**RDS Custom 자동화를 일시 중지하거나 다시 시작하는 방법**

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **데이터베이스(Databases)**를 선택한 다음 변경하려는 RDS Custom DB 인스턴스를 선택합니다.

1. **Modify**(수정)를 선택합니다. **Modify DB instance**(DB 인스턴스 수정) 페이지가 나타납니다.

1. **RDS Custom 자동화 모드(RDS Custom automation mode)**로 다음 옵션 중 하나를 선택합니다.
   + **일시 중지됨(Paused)**을 선택하면 RDS Custom DB 인스턴스에 대한 모니터링 및 인스턴스 복구가 일시 중지됩니다. **자동화 모드 지속 시간(Automation mode duration)**으로 원하는 일시 중지 기간(분)을 입력합니다. 최소값은 60분(기본값)입니다. 최대값은 1,440분입니다.
   + **완전 자동화(Full automation)**를 선택하면 자동화가 재개됩니다.

1. **계속(Continue)**을 선택하여 수정 사항을 요약한 내용을 확인합니다.

   RDS Custom에서 변경 사항을 즉시 적용한다는 메시지가 표시됩니다.

1. 변경 내용이 정확할 경우 **DB 인스턴스 수정(Modify DB instance)**을 선택합니다. 또는 **뒤로**를 선택하여 변경 내용을 편집하거나 **취소**를 선택하여 변경 내용을 취소합니다.

   RDS 콘솔에 수정 사항에 대한 세부 정보가 표시됩니다. 자동화를 일시 중지한 경우 RDS Custom DB 인스턴스의 **상태(Status)**가 **자동화 일시 중지됨(Automation paused)**으로 표시됩니다.

1. (선택 사항) 탐색 창에서 **데이터베이스(Databases)**를 선택한 후 RDS Custom DB 인스턴스를 선택합니다.

   **요약(Summary)** 창에서 **RDS Custom 자동화 모드(RDS Custom automation mode)**는 자동화 상태를 나타냅니다. 자동화가 일시 중지되면 값이 **일시 중지됨(Paused)이 됩니다. *num*분 후에 자동화가 재개됩니다**.

## AWS CLI
<a name="custom-managing-sqlserver.pausing.CLI"></a>

RDS Custom 자동화를 일시 중지하거나 재개하려면 `modify-db-instance` AWS CLI 명령을 사용합니다. 필수 파라미터 `--db-instance-identifier`를 사용하여 DB 인스턴스를 식별합니다. 다음 파라미터를 사용하여 자동화 모드를 제어합니다.
+ `--automation-mode`는 DB 인스턴스의 일시 정지 상태를 지정합니다. 유효한 값은 자동화를 일시 중지하는 `all-paused`와 다시 재개하는 `full`입니다.
+ `--resume-full-automation-mode-minutes`는 일시 중지 기간을 지정합니다. 기본값은 60분입니다.

**참고**  
`--no-apply-immediately` 또는 `--apply-immediately`에 관계없이 RDS Custom은 가능한 한 빨리 비동기식으로 수정 사항을 적용합니다.

명령 응답에서 `ResumeFullAutomationModeTime`은 재개 시간을 UTC 타임스탬프로 나타냅니다. 자동화 모드가 `all-paused`인 경우 `modify-db-instance`를 사용하여 자동화 모드를 재개하거나 일시 중지 기간을 연장할 수 있습니다. 다른 `modify-db-instance` 옵션은 지원되지 않습니다.

다음 예제에서는 `my-custom-instance`에 대한 자동화를 90분 동안 일시 중지합니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --automation-mode all-paused \
    --resume-full-automation-mode-minutes 90
```
Windows의 경우:  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --automation-mode all-paused ^
    --resume-full-automation-mode-minutes 90
```

다음 예제에서는 일시 중지 기간을 30분 더 연장합니다. 30분이 `ResumeFullAutomationModeTime`에 표시된 원래 시간에 추가됩니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --automation-mode all-paused \
    --resume-full-automation-mode-minutes 30
```
Windows의 경우:  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --automation-mode all-paused ^
    --resume-full-automation-mode-minutes 30
```

다음 예제에서는 `my-custom-instance`에 대한 전체 자동화를 재개합니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --automation-mode full \
```
Windows의 경우:  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --automation-mode full
```
다음 부분 샘플 출력에서 보류 중인 `AutomationMode` 값은 `full`입니다.  

```
{
    "DBInstance": {
        "PubliclyAccessible": true,
        "MasterUsername": "admin",
        "MonitoringInterval": 0,
        "LicenseModel": "bring-your-own-license",
        "VpcSecurityGroups": [
            {
                "Status": "active",
                "VpcSecurityGroupId": "0123456789abcdefg"
            }
        ],
        "InstanceCreateTime": "2020-11-07T19:50:06.193Z",
        "CopyTagsToSnapshot": false,
        "OptionGroupMemberships": [
            {
                "Status": "in-sync",
                "OptionGroupName": "default:custom-oracle-ee-19"
            }
        ],
        "PendingModifiedValues": {
            "AutomationMode": "full"
        },
        "Engine": "custom-oracle-ee",
        "MultiAZ": false,
        "DBSecurityGroups": [],
        "DBParameterGroups": [
            {
                "DBParameterGroupName": "default.custom-oracle-ee-19",
                "ParameterApplyStatus": "in-sync"
            }
        ],
        ...
        "ReadReplicaDBInstanceIdentifiers": [],
        "AllocatedStorage": 250,
        "DBInstanceArn": "arn:aws:rds:us-west-2:012345678912:db:my-custom-instance",
        "BackupRetentionPeriod": 3,
        "DBName": "ORCL",
        "PreferredMaintenanceWindow": "fri:10:56-fri:11:26",
        "Endpoint": {
            "HostedZoneId": "ABCDEFGHIJKLMNO",
            "Port": 8200,
            "Address": "my-custom-instance.abcdefghijk.us-west-2.rds.amazonaws.com"
        },
        "DBInstanceStatus": "automation-paused",
        "IAMDatabaseAuthenticationEnabled": false,
        "AutomationMode": "all-paused",
        "EngineVersion": "19.my_cev1",
        "DeletionProtection": false,
        "AvailabilityZone": "us-west-2a",
        "DomainMemberships": [],
        "StorageType": "gp2",
        "DbiResourceId": "db-ABCDEFGHIJKLMNOPQRSTUVW",
        "ResumeFullAutomationModeTime": "2020-11-07T20:56:50.565Z",
        "KmsKeyId": "arn:aws:kms:us-west-2:012345678912:key/aa111a11-111a-11a1-1a11-1111a11a1a1a",
        "StorageEncrypted": false,
        "AssociatedRoles": [],
        "DBInstanceClass": "db.m5.xlarge",
        "DbInstancePort": 0,
        "DBInstanceIdentifier": "my-custom-instance",
        "TagList": []
    }
```

# RDS Custom for SQL Server DB 인스턴스 수정
<a name="custom-managing.modify-sqlserver"></a>

RDS Custom for SQL Server DB 인스턴스를 수정하는 절차는 Amazon RDS에서와 유사하지만, 변경할 수 있는 내용은 다음으로 제한됩니다.
+ DB 인스턴스 클래스 변경
+ 백업 보존 기간 및 백업 기간 변경
+ 유지 관리 기간 변경
+ 새로운 버전을 사용할 수 있을 때 DB 엔진 버전 업그레이드
+ 할당된 스토리지, 프로비저닝된 IOPS, 스토리지 유형 변경
+ 다중 AZ 배포 허용 및 제거

RDS Custom for SQL Server DB 인스턴스를 수정할 때는 다음과 같은 제한이 적용됩니다.
+ Custom DB 옵션 및 파라미터 그룹은 지원되지 않습니다.
+ RDS Custom DB 인스턴스에 수동으로 연결하는 모든 스토리지 볼륨은 지원 경계를 벗어납니다.

  자세한 내용은 [RDS Custom 지원 범위](custom-concept.md#custom-troubleshooting.support-perimeter) 단원을 참조하십시오.

## 콘솔
<a name="custom-managing.modify-sqlserver.CON"></a>

**RDS Custom for SQL Server DB 인스턴스를 수정하는 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

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

1. 수정하려는 DB 인스턴스를 선택합니다.

1. **Modify**(수정)를 선택합니다.

1. 필요에 따라 다음과 같이 변경합니다.

   1. **DB engine version**(DB 엔진 버전)에서 새 버전을 선택합니다.

   1. **DB 인스턴스 클래스(DB instance class)** 값을 변경합니다. 지원되는 클래스는 [RDS Custom for SQL Server DB 인스턴스 클래스 지원](custom-reqs-limits.instancesMS.md) 섹션을 참조하세요.

   1. **백업 보존 기간(Backup retention period)** 값을 변경합니다.

   1. **백업 기간(Backup window)**의 경우 **시작 시간(Start time)**과 **기간(Duration)** 값을 설정합니다.

   1. **DB 인스턴스 유지 관리 기간(DB instance maintenance window)**의 경우 **시작일(Start day)**, **시작 시간(Start time)**, **기간(Duration)** 값을 설정합니다.

1. **계속(Continue)**을 선택합니다.

1. **즉시 적용(Apply immediately)** 또는 **예약된 다음 유지 관리 기간에 적용(Apply during the next scheduled maintenance window)**을 선택합니다.

1. **Modify DB instance**(DB 인스턴스 수정)를 선택합니다.

## AWS CLI
<a name="custom-managing.modify-sqlserver.CLI"></a>

RDS Custom for SQL Server DB 인스턴스를 수정하려면 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) AWS CLI 명령을 사용하면 됩니다. 필요한 경우 다음 파라미터를 설정합니다.
+ `--db-instance-class` - 지원되는 클래스는 [RDS Custom for SQL Server DB 인스턴스 클래스 지원](custom-reqs-limits.instancesMS.md) 섹션을 참조하세요.
+ `--engine-version` - 업그레이드할 데이터베이스 엔진의 버전 번호입니다.
+ `--backup-retention-period` - 자동화된 백업을 유지하는 기간으로, 0\$135일까지 설정할 수 있습니다.
+ `--preferred-backup-window` - 자동화된 백업이 생성되는 일일 시간 범위입니다.
+ `--preferred-maintenance-window` - 시스템 유지 관리를 실행할 수 있는 주 단위 기간(UTC)입니다.
+ `--apply-immediately` – `--apply-immediately`를 사용하여 스토리지 변경 사항을 바로 적용합니다.

  그 밖에 다음 유지 관리 기간에 스토리지 변경 사항을 적용하려면 `--no-apply-immediately`(기본값)를 사용합니다.

# RDS Custom for SQL Server DB 인스턴스 스토리지 수정
<a name="custom-managing-sqlserver.storage-modify"></a>

RDS Custom for SQL Server DB 인스턴스의 스토리지 수정은 Amazon RDS DB 인스턴스의 스토리지 수정과 유사하지만 다음 작업만 수행할 수 있습니다.
+ 할당된 스토리지 크기를 늘립니다.
+ 스토리지 유형을 변경합니다. 범용 또는 프로비저닝된 IOPS 같은 사용 가능한 스토리지 유형을 사용할 수 있습니다. 프로비저닝된 IOPS는 gp3, io1 및 io2 Block Express 스토리지 유형에서 지원됩니다.
+ 프로비저닝된 IOPS를 지원하는 볼륨 유형을 사용하는 경우 프로비저닝된 IOPS를 변경합니다.

RDS Custom for SQL Server DB 인스턴스의 스토리지 수정에는 다음과 같은 제한이 적용됩니다.
+ RDS Custom for SQL Server에 할당된 최소 스토리지 크기는 20GiB입니다. io1, gp2, gp3의 최대 스토리지 한도는 16TiB인 반면 io2는 64TiB를 지원합니다.
+ Amazon RDS와 마찬가지로 할당된 스토리지를 줄일 수는 없는데, 이는 Amazon Elastic Block Store(Amazon EBS) 볼륨의 제한입니다. 자세한 내용은 [Amazon RDS DB 인스턴스 스토리지 작업](USER_PIOPS.StorageTypes.md) 섹션을 참조하세요.
+ RDS Custom for SQL Server DB 인스턴스에는 스토리지 autoscaling이 지원되지 않습니다.
+ RDS Custom DB 인스턴스에 수동으로 연결하는 스토리지 볼륨은 스토리지 크기 조정 대상으로 간주되지 않습니다. RDS에서 제공하는 기본 데이터 볼륨, 즉 D 드라이브만 스토리지 크기 조정 대상으로 간주됩니다.

  자세한 내용은 [RDS Custom 지원 범위](custom-concept.md#custom-troubleshooting.support-perimeter) 섹션을 참조하세요.
+ 스토리지 크기 조정은 일반적으로 DB 인스턴스의 중단이나 성능 저하를 일으키지 않습니다. DB 인스턴스에 대한 스토리지 크기를 수정하면 DB 인스턴스의 상태가 **스토리지 최적화**로 됩니다.
+ 스토리지 최적화는 몇 시간이 걸릴 수 있습니다. 6시간 또는 인스턴스에서 스토리지 최적화가 완료된 시간 둘 중 더 긴 시간 동안은 스토리지를 추가로 수정할 수 없습니다. 자세한 내용은 [Amazon RDS DB 인스턴스 스토리지 작업](USER_PIOPS.StorageTypes.md) 섹션을 참조하세요.

스토리지에 대한 자세한 내용은 [Amazon RDS DB 인스턴스 스토리지](CHAP_Storage.md) 단원을 참조하세요.

스토리지 수정에 대한 일반적인 정보는 [Amazon RDS DB 인스턴스 스토리지 작업](USER_PIOPS.StorageTypes.md) 섹션을 참조하세요.

**중요**  
Amazon EC2 콘솔 또는 Amazon EBS 콘솔 또는 API를 사용하여 RDS Custom for SQL Server DB 인스턴스의 스토리지를 수정하지 마세요. Amazon RDS 콘솔 또는 API 외부에서 직접 스토리지를 수정하면 데이터베이스가 `unsupported-configuration` 상태가 됩니다.  
Amazon EC2 또는 Amazon EBS를 사용하여 직접 스토리지를 변경하는 경우 Amazon RDS는 데이터베이스 인스턴스 상태를 추적하거나 관리할 수 없습니다. 이로 인해 다음가 같은 문제가 발생할 수 있습니다.  
고가용성 장애 조치 메커니즘이 제대로 작동하지 않음
데이터베이스 복제 설정이 중단됨
중복 기능이 실패함
데이터베이스를 지원되는 상태로 유지하려면 Amazon RDS 콘솔 또는 API를 통해서만 스토리지를 수정하세요. 복구 단계는 [RDS Custom for SQL Server에서 지원되지 않는 구성 문제 해결](custom-troubleshooting-sqlserver.md#custom-troubleshooting-sqlserver.fix-unsupported) 섹션을 참조하세요.

## 콘솔
<a name="custom-managing.storage-modify.CON"></a>

**RDS Custom for SQL Server DB 인스턴스 스토리지를 수정하는 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

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

1. 수정하려는 DB 인스턴스를 선택합니다.

1. **Modify**(수정)를 선택합니다.

1. 필요에 따라 다음과 같이 변경합니다.

   1. **Allocated storage**(할당된 스토리지)에 새로운 값을 입력합니다. 현재 값보다 커야 하며 20GiB\$116TiB여야 합니다.

   1. **스토리지 유형(Storage type)** 값을 변경합니다. 범용 또는 프로비저닝된 IOPS 같은 사용 가능한 스토리지 유형을 사용할 수 있습니다. 프로비저닝된 IOPS는 gp3, io1 및 io2 Block Express 스토리지 유형에서 지원됩니다.

   1. 프로비저닝된 IOPS를 지원하는 볼륨 유형을 지정하는 경우 **프로비저닝된 IOPS** 값을 정의할 수 있습니다.

1. **Continue**(계속)를 선택합니다.

1. **즉시 적용(Apply immediately)** 또는 **예약된 다음 유지 관리 기간에 적용(Apply during the next scheduled maintenance window)**을 선택합니다.

1. **Modify DB instance**(DB 인스턴스 수정)를 선택합니다.

## AWS CLI
<a name="custom-managing-sqlserver.storage-modify.CLI"></a>

RDS Custom for SQL Server DB 인스턴스의 스토리지를 수정하려면 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) AWS CLI 명령을 사용하면 됩니다. 필요한 경우 다음 파라미터를 설정합니다.
+ `--allocated-storage` - DB 인스턴스에 할당할 스토리지 크기(GiB)입니다. 현재 값보다 커야 하며 20\$116,384GiB여야 합니다.
+ `--storage-type` - 스토리지 유형(예: gp2, gp3, io1 또는 io2)입니다.
+ `--iops` - DB 인스턴스의 프로비저닝된 IOPS입니다. 프로비저닝된 IOPS를 지원하는 스토리지 유형(예: gp3, io1, io2)에만 지정할 수 있습니다.
+ `--apply-immediately` – `--apply-immediately`를 사용하여 스토리지 변경 사항을 바로 적용합니다.

  그 밖에 다음 유지 관리 기간에 스토리지 변경 사항을 적용하려면 `--no-apply-immediately`(기본값)를 사용합니다.

다음 예에서는 my-custom-instance의 스토리지 크기를 200GiB로, 스토리지 유형을 io1로, 프로비저닝된 IOPS를 3000으로 변경합니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --storage-type io1 \
    --iops 3000 \
    --allocated-storage 200 \
    --apply-immediately
```
Windows의 경우:  

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --storage-type io1 ^
    --iops 3000 ^
    --allocated-storage 200 ^
    --apply-immediately
```

# RDS Custom for SQL Server 리소스 태깅
<a name="custom-managing-sqlserver.tagging"></a>

Amazon RDS 리소스와 마찬가지로 RDS Custom 리소스에 태그를 지정할 수 있지만, 몇 가지 중요한 차이점이 있습니다.
+ RDS Custom 자동화에 필요한 `AWSRDSCustom` 태그를 생성하거나 수정해서는 안 됩니다. 이렇게 하면 자동화가 중단될 수 있습니다.
+ `Name` 태그는 접두사가 `do-not-delete-rds-custom`인 RDS Custom 리소스에 추가됩니다. 고객이 전달한 키 값을 덮어씁니다.
+ 생성 중에 RDS Custom DB 인스턴스에 추가된 태그는 다른 모든 관련 RDS Custom 리소스로 전파됩니다.
+ DB 인스턴스 생성 후 RDS Custom 리소스에 태그를 추가하면 태그가 전파되지 않습니다.

리소스 태그 지정에 대한 일반적인 정보는 [Amazon RDS 리소스에 태그 지정](USER_Tagging.md) 섹션을 참조하세요.

## RDS Custom for SQL Server DB 인스턴스 삭제
<a name="custom-managing-sqlserver.deleting"></a>

RDS Custom for SQL Server DB 인스턴스를 삭제하려면 다음을 수행하세요.
+ DB 인스턴스 이름을 입력합니다.
+ DB 인스턴스의 최종 DB 스냅샷을 생성하는 옵션을 선택하거나 선택 취소합니다.
+ 자동화된 백업을 유지하는 옵션을 선택하거나 선택 취소합니다.

콘솔이나 CLI를 사용하여 RDS Custom for SQL Server DB 인스턴스를 삭제할 수 있습니다. 해당 DB 인스턴스를 삭제하는 데 필요한 시간은 백업 보존 기간(즉, 삭제할 백업 수), 삭제되는 데이터의 양과 최종 스냅샷 생성 여부에 따라 달라질 수 있습니다.

**주의**  
RDS Custom for SQL Server DB 인스턴스를 삭제하면 EC2 인스턴스 및 관련 Amazon EBS 볼륨이 영구적으로 삭제됩니다. 이러한 리소스를 종료하거나 삭제해서는 안 됩니다. 종료하거나 삭제하면 삭제 및 최종 스냅샷 생성이 실패할 수 있습니다.

**참고**  
DB 인스턴스가 `creating`, `failed`, `incompatible-create`, `incompatible-restore` 또는 `incompatible-network` 상태일 때는 최종 DB 스냅샷을 생성할 수 없습니다. 자세한 내용은 [ Amazon RDSDB 인스턴스 상태 보기](accessing-monitoring.md#Overview.DBInstance.Status) 단원을 참조하십시오.

**중요**  
최종 스냅샷을 선택하는 경우 DB 인스턴스 삭제가 진행되는 동안 DB 인스턴스에 데이터를 쓰지 않는 것이 좋습니다. 일단 DB 인스턴스 삭제가 시작되면 데이터 변경 사항이 최종 스냅샷에 캡처되지 않을 수 있습니다.

### 콘솔
<a name="custom-managing-sqs.deleting.console"></a>

**RDS Custom DB 인스턴스를 삭제하는 방법**

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **Databases**(데이터베이스)를 선택한 후 삭제하려는 RDS Custom for SQL Server DB 인스턴스를 선택합니다. RDS Custom for SQL Server DB 인스턴스는 **Instance (RDS Custom for SQL Server)**(인스턴스(RDS Custom for SQL Server))를 표시합니다.

1. **작업**에 대해 **삭제**를 선택합니다.

1. 최종 스냅샷을 생성하려면 **Create final snapshot**(최종 스냅샷 생성)을 선택하고 **Final snapshot name**(최종 스냅샷 이름)에 이름을 입력합니다.

1. 자동 백업을 보관하려면 **Retain automated backups**(자동 백업 보관)를 선택합니다.

1. 상자에 **delete me**를 입력합니다.

1. **삭제**를 선택합니다.

### AWS CLI
<a name="custom-managing-sqs.deleting.CLI"></a>

[delete-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-instance.html) AWS CLI 명령을 사용하여 RDS Custom for SQL Server DB 인스턴스를 삭제할 수 있습니다. 필수 파라미터 `--db-instance-identifier`를 사용하여 DB 인스턴스를 식별합니다. 나머지 파라미터는 Amazon RDS DB 인스턴스와 동일합니다.

다음 예제에서는 이름이 `my-custom-instance`인 RDS Custom for SQL Server DB 인스턴스를 삭제하고 최종 스냅샷을 생성하며 자동 백업을 유지합니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
aws rds delete-db-instance \
    --db-instance-identifier my-custom-instance \
    --no-skip-final-snapshot \
    --final-db-snapshot-identifier my-custom-instance-final-snapshot \
    --no-delete-automated-backups
```
Windows의 경우:  

```
aws rds delete-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --no-skip-final-snapshot ^
    --final-db-snapshot-identifier my-custom-instance-final-snapshot ^
    --no-delete-automated-backups
```

최종 스냅샷을 찍으려면 `--final-db-snapshot-identifier` 옵션이 필요하며 이 옵션을 지정해야 합니다.

최종 스냅샷을 건너뛰려면 명령에서 `--no-skip-final-snapshot` 옵션 및 `--final-db-snapshot-identifier` 옵션 대신 `--skip-final-snapshot` 옵션을 지정합니다.

자동 백업을 삭제하려면 명령에서 `--no-delete-automated-backups` 옵션 대신 `--delete-automated-backups` 옵션을 지정합니다.

# RDS Custom for SQL Server DB 인스턴스 시작 및 중지
<a name="custom-managing-sqlserver.startstop"></a>

RDS Custom for SQL Server DB 인스턴스를 시작 및 중지할 수 있습니다. RDS Custom for SQL Server DB 인스턴스를 중지 및 시작할 때도 RDS for SQL Server DB 인스턴스의 일반적인 요구 사항 및 제한 사항이 동일하게 적용됩니다. 자세한 내용은 [Amazon RDS DB 인스턴스의 일시적 중지](USER_StopInstance.md) 단원을 참조하십시오.

RDS Custom for SQL Server DB 인스턴스를 시작 및 중지할 때도 다음과 같은 고려 사항이 적용됩니다.
+ DB 인스턴스가 `STOPPED` 상태인 동안에는 RDS Custom for SQL Server DB 인스턴스의 EC2 인스턴스 속성을 수정하는 작업이 지원되지 않습니다.
+ 단일 가용 영역에 구성되어 있는 경우 RDS Custom for SQL Server DB 인스턴스를 중지 및 시작할 수 있습니다. 다중 AZ 구성에서는 RDS Custom for SQL Server DB 인스턴스를 중지할 수 없습니다.
+ RDS Custom for SQL Server DB 인스턴스를 중지할 때 `SYSTEM` 스냅샷이 생성됩니다. RDS Custom for SQL Server DB 인스턴스를 다시 시작하면 스냅샷이 자동 삭제됩니다.
+ RDS Custom for SQL Server DB 인스턴스를 중지할 때 EC2 인스턴스를 삭제하면 RDS Custom for SQL Server DB 인스턴스가 다시 시작될 때 `C:` 드라이브가 교체됩니다.
+ RDS Custom for SQL Server DB 인스턴스를 중지해도 인스턴스 유형을 수정하지 않는 한 `C:\` 드라이브, 호스트 이름 및 사용자 지정 구성은 그대로 유지됩니다.
+ 다음 작업을 수행하면 RDS Custom에서 DB 인스턴스를 지원 경계가 아닌 영역에 배치하게 되며, 이 경우에도 DB 인스턴스 시간에 대한 요금이 부과됩니다.
  + Amazon RDS가 중지되어 있는 동안 기본 EC2 인스턴스를 시작합니다. 문제를 해결하려면 `start-db-instance` Amazon RDS API를 호출하거나, EC2를 중지하여 RDS Custom 인스턴스가 `STOPPED` 상태가 되도록 합니다.
  + RDS Custom for SQL Server DB 인스턴스가 `ACTIVE` 상태일 때 기본 EC2 인스턴스를 중지합니다.

DB 인스턴스의 중지 및 시작에 관한 자세한 내용은 [Amazon RDS DB 인스턴스의 일시적 중지](USER_StopInstance.md) 및 [이전에 중지된 Amazon RDS DB 인스턴스 시작](USER_StartInstance.md) 단원을 참조하세요.

# RDS Custom for SQL Server를 사용하여 Microsoft Active Directory 작업
<a name="custom-sqlserver-WinAuth"></a>

RDS Custom for SQL Server를 사용하면 인스턴스를 자체 관리형 Active Directory(AD) 또는 AWS Managed Microsoft AD에 조인할 수 있습니다. 이는 온프레미스 데이터 센터, Amazon EC2 또는 다른 클라우드 서비스 공급자와 같이 AD가 호스팅되는 위치에 관계없이 적용됩니다.

사용자 및 서비스 인증의 경우, 중간 도메인 및 포리스트 신뢰를 사용하지 않고도 RDS Custom for SQL Server DB 인스턴스에서 NTLM 또는 Kerberos 인증을 사용할 수 있습니다. 사용자가 자체 조인된 Active Directory로 RDS Custom for SQL Server DB 인스턴스에서 인증을 시도하면 인증 요청이 자체 관리형 AD 또는 사용자가 지정한 AWS Managed Microsoft AD로 전달됩니다.

다음 섹션에서는 RDS Custom for SQL Server에 자체 관리형 Active Directory 및 AWS 관리형 Active Directory를 사용하여 작업하는 정보를 찾을 수 있습니다.

**Topics**
+ [리전 및 버전 사용 가능 여부](#custom-sqlserver-WinAuth.Regions)
+ [자체 관리형 또는 온프레미스 AD 구성](custom-sqlserver-WinAuth.config-Self-Managed.md)
+ [Directory Service를 사용하여 Microsoft Active Directory 구성](custom-sqlserver-WinAuth.config-ADS.md)
+ [네트워크 구성 포트 규칙](custom-sqlserver-WinAuth.NWConfigPorts.md)
+ [네트워크 검증](custom-sqlserver-WinAuth.NWValidation.md)
+ [RDS Custom for SQL Server 인스턴스에 대한 Windows 인증 설정](custom-sqlserver-WinAuth.settingUp.md)
+ [도메인에서 DB 인스턴스 관리](custom-sqlserver-WinAuth.ManagingDBI.md)
+ [도메인 멤버십 이해](custom-sqlserver-WinAuth.Understanding.md)
+ [Active Directory 문제 해결](custom-sqlserver-WinAuth.Troubleshoot.md)

## 리전 및 버전 사용 가능 여부
<a name="custom-sqlserver-WinAuth.Regions"></a>

RDS Custom for SQL Server는 RDS Custom for SQL Server가 지원되는 모든 리전에서 NTLM 또는 Kerberos를 사용하여 자체 관리형 AD 및 AWS Managed Microsoft AD를 모두 지원합니다. 자세한 내용은 [RDS Custom을 지원하는 리전 및 DB 엔진](Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.md) 단원을 참조하십시오.

# 자체 관리형 또는 온프레미스 AD 구성
<a name="custom-sqlserver-WinAuth.config-Self-Managed"></a>

온프레미스 또는 자체 관리형 Microsoft AD를 RDS Custom for SQL Server DB 인스턴스에 조인하려면 Active Domain을 다음과 같이 구성해야 합니다.
+ 자체 관리형 또는 온프레미스 AD에서 RDS Custom for SQL Server DB 인스턴스와 연결된 VPC의 서브넷을 정의합니다. VPC의 서브넷과 AD 사이트의 서브넷 간에 충돌이 없는지 확인합니다.
+ AD 도메인 컨트롤러의 도메인 기능 수준은 Windows Server 2008 R2 이상입니다.
+ AD 도메인 이름은 단일 레이블 도메인(SLD) 형식일 수 없습니다. RDS Custom for SQL Server는 SLD 도메인을 지원하지 않습니다.
+ AD의 정규화된 도메인 이름(FQDN)이 47자를 초과하면 안 됩니다.

## 네트워크 연결 구성
<a name="custom-sqlserver-WinAuth.config-Self-Managed.network"></a>

다음과 같은 방식으로 자체 관리형 또는 온프레미스 AD 네트워크 연결을 구성합니다.
+ RDS Custom for SQL Server 인스턴스가 실행 중인 Amazon VPC와 AD 간의 연결을 설정합니다. Direct Connect, Site-to-Site VPN, AWS Transit Gateway 및 VPC 피어링을 사용합니다.
+ 자체 관리형 또는 온프레미스 AD에 대해 RDS Custom for SQL Server 보안 그룹 및 네트워크 ACL 포트의 트래픽을 허용합니다. 자세한 내용은 [네트워크 구성 포트 규칙](custom-sqlserver-WinAuth.NWConfigPorts.md) 섹션을 참조하세요.  
![\[Microsoft SQL Server Windows 인증 디렉터리\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/custom-sqs-SM-NC.png)

## DNS 확인 구성
<a name="custom-sqlserver-WinAuth.config-Self-Managed.DNS"></a>

자체 관리형 또는 온프레미스 AD를 사용하여 DNS 확인을 구성하려면 다음 요구 사항을 설정합니다.
+ 자체 호스팅된 Active Directory의 정규화된 도메인 이름(FQDN)을 확인하도록 VPC 내에서 DNS 확인을 구성합니다. FQDN의 예는 `corp.example.local`입니다. DNS 확인을 구성하려면 Amazon Route 53 아웃바운드 엔드포인트 및 해석기 규칙이 있는 특정 도메인에 대한 쿼리를 전달하도록 VPC DNS 해석기를 구성합니다. 자세한 내용은 [DNS 레코드를 확인하도록 Route 53 Resolver 아웃바운드 엔드포인트 구성](https://repost.aws/knowledge-center/route53-resolve-with-outbound-endpoint)을 참조하세요.
+ VPC와 온프레미스 리소스를 모두 활용하는 워크로드의 경우 온프레미스에서 호스팅되는 DNS 레코드를 확인해야 합니다. 온프레미스 리소스는 AWS에서 호스팅되는 이름을 확인해야 할 수 있습니다.

  하이브리드 클라우드 설정을 생성하려면 해석기 엔드포인트와 조건부 전달을 사용하여 온프레미스 리소스와 사용자 지정 VPC 간의 DNS 쿼리를 확인합니다. 자세한 내용은 *Amazon Route 53 개발자 안내서*의 [VPC와 네트워크 간 DNS 쿼리 해석](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resolver-overview-DSN-queries-to-vpc.html)을 참조하세요.

**중요**  
RDS Custom for SQL Server에서 네트워크 인터페이스의 DNS 해석기 설정을 수정하면 DNS 지원 VPC 엔드포인트가 더 이상 제대로 작동하지 않습니다. 인터넷 액세스가 없는 프라이빗 서브넷 내의 인스턴스에는 DNS 지원 VPC 엔드포인트가 필요합니다.

# Directory Service를 사용하여 Microsoft Active Directory 구성
<a name="custom-sqlserver-WinAuth.config-ADS"></a>

AWS Managed Microsoft AD는 AWS에서 완전 관리형 Microsoft Active Directory를 생성하며, Windows Server 2019에 의해 구동되고 2012 R2 포리스트 및 도메인 기능 수준에서 작동합니다. Directory Service는 Amazon VPC의 서로 다른 서브넷에 도메인 컨트롤러를 생성하여 장애가 발생하더라도 디렉터리를 쉽게 사용할 수 있도록 합니다.

AWS Managed Microsoft AD를 사용하여 디렉터리를 생성하려면 *AWS Directory Service 관리 안내서*의 [AWS Managed Microsoft AD 시작하기](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_getting_started.html)를 참조하세요.

## 네트워크 연결 구성
<a name="custom-sqlserver-WinAuth.config-ADS.network"></a>

### 디렉터리와 DB 인스턴스 사이에 VPC 간 트래픽 활성화
<a name="custom-sqlserver-WinAuth.config-ADS.network.x-vpc"></a>

디렉터리와 DB 인스턴스를 동일한 VPC에 배치하려면 이 단계를 건너뛰고 [네트워크 구성 포트 규칙](custom-sqlserver-WinAuth.NWConfigPorts.md)의 다음 단계로 이동하세요.

디렉터리와 DB 인스턴스를 서로 다른 VPC에 배치하려면 VPC 피어링 또는 AWS Transit Gateway를 사용하여 VPC 간 트래픽을 구성하세요. VPC 피어링 사용에 대한 자세한 내용은 *Amazon VPC 피어링 가이드*의 [VPC 피어링이란 무엇인가요?](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) 및 *Amazon VPC Transit Gateways*의 [AWS Transit Gateway란 무엇인가요?](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html)를 참조하세요.

**VPC 피어링을 사용하여 VPC 간 트래픽 활성화**

1. 네트워크 트래픽이 양방향으로 흐를 수 있도록 적절한 VPC 라우팅 규칙을 설정합니다.

1. DB 인스턴스의 보안 그룹이 디렉터리의 보안 그룹에서 인바운드 트래픽을 수신할 수 있도록 허용합니다. 자세한 내용은 [네트워크 구성 포트 규칙](custom-sqlserver-WinAuth.NWConfigPorts.md) 섹션을 참조하세요.

1. 네트워크 액세스 제어 목록(ACL)은 트래픽을 차단해서는 안 됩니다.

다른 AWS 계정가 디렉터리를 소유하는 경우 디렉터리를 공유해야 합니다. *AWS Directory Service 관리 안내서*의 [자습서: 원활한 EC2 도메인 조인을 위해 AWS Managed Microsoft AD 공유](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_tutorial_directory_sharing.html)에 따라 RDS Custom for SQL Server 인스턴스가 있는 AWS 계정와 디렉터리를 공유합니다.

**AWS 계정 간에 디렉터리 공유**

1. DB 인스턴스용 계정을 사용하여 Directory Service 콘솔에 로그인하고 계속하기 전에 도메인이 `SHARED` 상태가 되었는지 확인합니다.

1. DB 인스턴스용 계정을 사용하여 Directory Service 콘솔에 로그인한 후 **디렉터리 ID** 값을 기록해 둡니다. 이 ID를 사용하여 DB 인스턴스를 도메인에 조인합니다.

## DNS 확인 구성
<a name="custom-sqlserver-WinAuth.config-ADS.DNS"></a>

AWS Managed Microsoft AD를 사용하여 디렉터리를 생성하면 Directory Service가 자동으로 두 개의 도메인 컨트롤러를 생성하고 사용자를 대신하여 DNS 서비스를 추가합니다.

기존 AWS Managed Microsoft AD가 있거나 RDS Custom for SQL Server DB 인스턴스가 아닌 다른 VPC에서 시작할 계획이 있는 경우 Route 53 아웃바운드 및 해석기 규칙이 있는 특정 도메인에 대한 쿼리를 전달하도록 VPC DNS 해석기를 구성합니다. [DNS 레코드를 확인하도록 Route 53 Resolver 아웃바운드 엔드포인트 구성](https://repost.aws/knowledge-center/route53-resolve-with-outbound-endpoint)을 참조하세요.

# 네트워크 구성 포트 규칙
<a name="custom-sqlserver-WinAuth.NWConfigPorts"></a>

다음 네트워크 구성을 충족하는지 확인합니다.
+ RDS Custom for SQL Server DB 인스턴스를 생성하려는 Amazon VPC와 자체 관리형 Active Directory 또는 AWS Managed Microsoft AD 간에 연결이 구성되었습니다. 자체 관리형 Active Directory의 경우, AWS Direct Connect, AWS VPN, VPC 피어링 또는 AWS Transit Gateway를 사용하여 연결을 설정합니다. AWS Managed Microsoft AD의 경우, VPC 피어링을 사용하여 연결을 설정합니다.
+ RDS Custom for SQL Server DB 인스턴스를 만드는 서브넷의 보안 그룹과 VPC 네트워크 ACL이 다음 다이어그램에 표시된 방향으로 포트를 통한 트래픽을 허용하는지 확인합니다.  
![\[Microsoft Active Directory 네트워크 구성 포트 규칙입니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/custom_sqlserver_ActiveDirectory_Requirements_NetworkConfig.png)

  다음 테이블에는 각 포트의 역할이 나와 있습니다.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/custom-sqlserver-WinAuth.NWConfigPorts.html)
+ 일반적으로 도메인 DNS 서버는 AD 도메인 컨트롤러에 있습니다. 이 기능을 사용하기 위해 VPC DHCP 옵션 세트를 구성할 필요는 없습니다. 자세한 정보는 *Amazon VPC 사용 설명서*의 [DHCP 옵션 세트](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html)를 참조하세요.

**중요**  
VPC 네트워크 ACL을 사용하는 경우 RDS Custom for SQL Server DB 인스턴스의 동적 포트(49152\$165535)를 통한 아웃바운드 트래픽도 허용해야 합니다. 이러한 트래픽 규칙이 각 AD 도메인 컨트롤러, DNS 서버 및 RDS Custom for SQL Server DB 인스턴스에 적용되는 방화벽에도 반영되는지 확인하세요.  
VPC 보안 그룹에서는 네트워크 트래픽이 시작되는 방향으로만 포트를 열어야 하지만, 대부분의 Windows 방화벽과 VPC 네트워크 ACL에서는 포트가 양방향으로 열려 있어야 합니다.

# 네트워크 검증
<a name="custom-sqlserver-WinAuth.NWValidation"></a>

RDS Custom 인스턴스를 자체 관리형 또는 AWS Managed Microsoft AD에 조인하기 전에 RDS Custom for SQL Server 인스턴스를 시작하려는 위치와 동일한 VPC의 EC2 인스턴스에서 다음을 확인합니다.
+ 정규화된 도메인 이름(FQDN)을 도메인 컨트롤러 IP로 확인할 수 있는지 확인합니다.

  ```
  nslookup corp.example.com
  ```

  명령은 유사한 출력을 반환해야 합니다.

  ```
  Server:  ip-10-0-0-2.us-west-2.compute.internal
  Address:  25.0.0.2
  
  Non-authoritative answer:
  Name:    corp.example.com
  Addresses:  40.0.9.25 (DC1 IP)
              40.0.50.123 (DC2 IP)
  ```
+ RDS Custom 인스턴스를 시작하는 VPC의 EC2 인스턴스에서 AWS 서비스를 확인합니다.

  ```
  $region='input-your-aws-region'
  $domainFQDN='input-your-domainFQDN'
   
  function Test-DomainPorts {
      param (
          [string]$Domain,
          [array]$Ports
      )
   
      foreach ($portInfo in $Ports) {
          try {
              $conn = New-Object System.Net.Sockets.TcpClient
              $connectionResult = $conn.BeginConnect($Domain, $portInfo.Port, $null, $null)
              $success = $connectionResult.AsyncWaitHandle.WaitOne(1000) # 1 second timeout
              if ($success) {
                  $conn.EndConnect($connectionResult)
                  $result = $true
              } else {
                  $result = $false
              }
          }
          catch {
              $result = $false
          }
          finally {
              if ($null -ne $conn) {
                  $conn.Close()
              }
          }
          Write-Host "$($portInfo.Description) port open: $result"
      }
  }
   
  # Check if ports can be reached 
  $ports = @(
      @{Port = 53;   Description = "DNS"},
      @{Port = 88;   Description = "Kerberos"},
      @{Port = 389;  Description = "LDAP"},
      @{Port = 445;  Description = "SMB"},
      @{Port = 5985; Description = "WinRM"},
      @{Port = 636;  Description = "LDAPS"},
      @{Port = 3268; Description = "Global Catalog"},
      @{Port = 3269; Description = "Global Catalog over SSL"},
      @{Port = 9389; Description = "AD DS"}
  )
   
  function Test-DomainReachability {
      param (
          [string]$DomainName
      )
      
      try {
          $dnsResults = Resolve-DnsName -Name $DomainName -ErrorAction Stop
          Write-Host "Domain $DomainName is successfully resolving to following IP addresses: $($dnsResults.IpAddress)"
          Write-Host ""
          return $true
      } 
      catch {
          Write-Host ""
          Write-Host "Error Message: $($_.Exception.Message)"
          Write-Host "Domain $DomainName reachability check failed, please Configure DNS resolution"
          return $false
      }
  }
   
  $domain = (Get-WmiObject Win32_ComputerSystem).Domain
  if ($domain -eq 'WORKGROUP') {
      Write-Host ""    
      Write-Host "Host $env:computername is still part of WORKGROUP and not part of any domain"
      }
  else {
      Write-Host ""
      Write-Host "Host $env:computername is joined to $domain domain"
      Write-Host ""
      }
   
   
  $isReachable = Test-DomainReachability -DomainName $domainFQDN  
  if ($isReachable) {
      write-Host "Checking if domain $domainFQDN is reachable on required ports  "
      Test-DomainPorts -Domain $domainFQDN -Ports $ports
  }
  else {
      Write-Host "Port check skipped. Domain not reachable"
  }   
   
   
   
  # Get network adapter configuration
  $networkConfig = Get-WmiObject Win32_NetworkAdapterConfiguration | 
                   Where-Object { $_.IPEnabled -eq $true } |
                   Select-Object -First 1
   
  # Check DNS server settings
  $dnsServers = $networkConfig.DNSServerSearchOrder
   
  if ($dnsServers) {
      Write-Host "`nDNS Server settings:"
      foreach ($server in $dnsServers) {
          Write-Host "  - $server"
      }
  } else {
      Write-Host "`nNo DNS servers configured or unable to retrieve DNS server information."
  }
   
  write-host ""
   
  # Checks reachability to dependent services
  $services = "s3", "ec2", "secretsmanager", "logs", "events", "monitoring", "ssm", "ec2messages", "ssmmessages"
   
  function Get-TcpConnectionAsync {
      param (
          $ServicePrefix,
          $region
      )
      $endpoint = "${ServicePrefix}.${region}.amazonaws.com"
      $tcp = New-Object Net.Sockets.TcpClient
      $result = $false
   
      try {
          $connectTask = $tcp.ConnectAsync($endpoint, 443)
          $timedOut = $connectTask.Wait(3000)
          $result = $tcp.Connected
      } 
      catch {
          $result = $false
      } 
      return $result
  }
   
  foreach ($service in $services) {
      $validationResult = Get-TcpConnectionAsync -ServicePrefix $service -Region $region
      Write-Host "Reachability to $service is $validationResult"
  }
  ```

  `TcpTestSucceeded` 값은 `s3`, `ec2`, `secretsmanager`, `logs`, `events`, `monitoring`, `ssm`, `ec2messages`, `ssmmessages`에 대해 `True`를 반환해야 합니다.

# RDS Custom for SQL Server 인스턴스에 대한 Windows 인증 설정
<a name="custom-sqlserver-WinAuth.settingUp"></a>

AD 도메인에 조인된 RDS Custom for SQL Server DB 인스턴스를 소유한 AWS 계정에 대해 전용 OU 및 해당 OU 범위의 서비스 보안 인증을 만드는 것이 좋습니다. 전용 OU 및 서비스 보안 인증을 지정하면 권한 충돌을 피하고 최소 권한 원칙을 따릅니다.

Active Directory 수준 그룹 정책은 AWS 자동화 및 권한과 충돌할 수 있습니다. RDS Custom for SQL Server에 대해 생성한 OU에만 적용되는 GPO를 선택하는 것이 좋습니다.
+ 자체 관리형 또는 온프레미스 AD에서 OU 및 AD 도메인 사용자를 생성하려면 도메인 컨트롤러를 도메인 관리자로 연결할 수 있습니다.
+ Directory Service 디렉터리에서 사용자 및 그룹을 생성하려면 관리 인스턴스에 연결하고 사용자 및 그룹 생성 권한이 있는 사용자로 로그인해야 합니다. 자세한 내용은 *AWS Directory Service 관리 안내서*의 [AWS Managed Microsoft AD에서의 사용자 및 그룹 관리](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_manage_users_groups.html)를 참조하세요.
+ Amazon EC2 Windows Server 인스턴스에서 Active Directory를 관리하려면 EC2 인스턴스에서 Active Directory 도메인 서비스 및 Active Directory Lightweight Directory 서비스 도구를 설치해야 합니다. 자세한 내용은 *AWS Directory Service 관리 안내서*의 [AWS Managed Microsoft AD용 Active Directory 관리 도구 설치](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_install_ad_tools.html)를 참조하세요.
+ 이러한 도구는 관리가 용이하도록 RDS Custom for SQL Server DB 인스턴스가 아닌 별도의 EC2 인스턴스에 설치하는 것이 좋습니다.

AD 도메인 서비스 계정의 요구 사항은 다음과 같습니다.
+ AD 도메인에는 컴퓨터를 도메인에 연결할 수 있는 권한이 위임된 서비스 계정이 있어야 합니다. 도메인 서비스 계정은 특정 작업을 수행할 권한이 위임된 AD의 사용자 계정입니다.
+ RDS Custom for SQL Server에 조인하려는 조직 단위의 도메인 서비스 계정에 다음 권한을 위임합니다.
  + 검증된 DNS 호스트 이름 쓰기 기능
  + 서비스 보안 주체 이름에 쓸 수 있는 검증된 기능
  + 컴퓨터 객체 생성 및 삭제
+ 자체 관리형 및 온프레미스 AD의 경우 도메인 서비스 계정은 ‘AWS위임 도메인 이름 시스템 관리자’ 그룹의 멤버여야 합니다.
+ AWS Managed Microsoft AD의 경우 도메인 서비스 계정은 ‘DnsAdmins’ 그룹의 멤버여야 합니다.

이러한 권한은 컴퓨터 객체를 자체 관리형 AD 및 AWS Managed Microsoft AD에 조인하는 데 필요한 최소 권한 집합입니다. 자세한 내용은 Microsoft Windows Server 설명서의 [오류: 제어를 위임받은 관리자가 아닌 사용자가 컴퓨터를 도메인 컨트롤러에 조인하려고 하면 액세스가 거부됨](https://learn.microsoft.com/en-us/troubleshoot/windows-server/active-directory/access-denied-when-joining-computers) 항목을 참조하세요.

**중요**  
DB 인스턴스를 만든 후에는 RDS Custom for SQL Server가 조직 단위(OU)에서 생성한 컴퓨터 객체를 옮기지 마세요. 연결된 객체를 이동하면 RDS Custom for SQL Server DB 인스턴스가 잘못 구성될 수 있습니다. Amazon RDS에서 생성한 컴퓨터 객체를 이동해야 하는 경우 [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 작업을 사용하여 컴퓨터 객체의 원하는 위치로 도메인 파라미터를 수정하세요.

**Topics**
+ [1단계: AD에서 조직 단위(OU) 생성](#custom-sqlserver-WinAuth.settingUp.CreateOU)
+ [2단계: AD 도메인 사용자 생성](#custom-sqlserver-WinAuth.settingUp.ADuser)
+ [3단계: 자체 관리형 또는 AWS Managed Microsoft AD에서 AD 사용자에게 제어 권한 위임](#custom-sqlserver-WinAuth.settingUp.Delegate)
+ [4단계: 보안 암호 생성](#custom-sqlserver-WinAuth.settingUp.ASM)
+ [5단계: RDS Custom for SQL Server DB 인스턴스 생성 또는 수정](#custom-sqlserver-WinAuth.settingUp.CreateDBInstance)
+ [6단계: Windows 인증 SQL Server 로그인 생성](#custom-sqlserver-WinAuth.settingUp.CreateLogins)
+ [7단계: Kerberos 또는 NTLM 인증 사용](#custom-sqlserver-WinAuth.settingUp.KerbNTLM)

## 1단계: AD에서 조직 단위(OU) 생성
<a name="custom-sqlserver-WinAuth.settingUp.CreateOU"></a>

다음 단계에 따라 AD에서 조직 단위를 생성합니다.

**AD에서 OU 생성**

1. 도메인 관리자로 도메인 AD에 연결합니다.

1. **Active Directory 사용자 및 컴퓨터**를 열고 OU를 생성할 도메인을 선택합니다.

1. 도메인을 마우스 오른쪽 버튼으로 클릭하고 **새로 만들기**를 선택한 다음 **조직 단위**를 선택합니다.

1. OU 이름을 입력합니다.

   **컨테이너가 실수로 삭제되지 않도록 보호**를 활성화합니다.

1. **확인**을 선택합니다. 새 OU는 도메인 아래에 표시됩니다.

AWS Managed Microsoft AD의 경우 이 OU의 이름은 디렉터리 생성 시 입력한 NetBIOS 이름에 근거를 둡니다. 이 OU는 AWS가 소유하며, 전체 제어 권한을 부여한 모든 AWS 관련 디렉터리 객체가 포함됩니다. 기본적으로 이 OU에는 **컴퓨터와 사용자**라는 두 개의 하위 OU가 있습니다. RDS Custom이 생성하는 새 OU는 NetBIOS를 기반으로 하는 OU의 하위 OU입니다.

## 2단계: AD 도메인 사용자 생성
<a name="custom-sqlserver-WinAuth.settingUp.ADuser"></a>

도메인 사용자 보안 인증 정보는 Secrets Manager에서 보안 암호로 사용됩니다.

**AD에서 AD 도메인 사용자 생성**

1. **Active Directory 사용자 및 컴퓨터**를 열고 사용자를 생성할 도메인과 OU를 선택합니다.

1. **사용자** 객체를 마우스 오른쪽 버튼으로 클릭하고 **새로 만들기**, **사용자** 순으로 선택합니다.

1. 사용자의 이름, 성 및 로그인 이름을 입력합니다. **다음**을 클릭합니다.

1. 사용자의 암호를 입력합니다. **다음 로그인 시 사용자가 암호를 변경해야 함** 또는 **계정이 비활성화됨**을 선택하지 마세요. **다음**을 클릭합니다.

1. **확인**을 클릭합니다. 새 사용자는 도메인 아래에 표시됩니다.

## 3단계: 자체 관리형 또는 AWS Managed Microsoft AD에서 AD 사용자에게 제어 권한 위임
<a name="custom-sqlserver-WinAuth.settingUp.Delegate"></a>

**도메인의 AD 도메인 사용자에게 제어 권한을 위임하려면**

1. **Active Directory 사용자 및 컴퓨터** MMC 스냅인을 열고 도메인을 선택합니다.

1. 이전에 만든 OU를 마우스 오른쪽 버튼으로 클릭하고 **제어 위임**을 선택합니다.

1. **제어 위임 마법사**에서 **다음**을 클릭합니다.

1. **사용자 또는 그룹** 섹션에서 **추가**를 클릭합니다.

1. **사용자, 컴퓨터 또는 그룹 선택**에서 생성한 AD 사용자를 입력하고 **이름 확인**을 클릭합니다. AD 사용자 확인에 성공하면 **확인**을 클릭합니다.

1. **사용자 또는 그룹** 섹션에서 AD 사용자가 추가되었는지 확인하고 **다음**을 클릭합니다.

1. **위임할 작업** 섹션에서 **위임할 사용자 지정 작업 생성**을 선택하고 **다음**을 클릭합니다.

1. **Active Directory 객체 유형** 섹션에서:

   **폴더의 다음 객체만**을 선택합니다.

   **컴퓨터 객체**를 선택합니다.

   **이 폴더에서 선택한 객체 생성**을 선택합니다.

   **이 폴더에서 선택한 객체 삭제**를 선택하고 **다음**을 클릭합니다.

1. **권한** 섹션에서:

   **일반**을 선택한 상태로 유지합니다.

   **DNS 호스트 이름에 대한 검증된 쓰기**를 선택합니다.

   **서비스 보안 주체 이름에 대한 검증된 쓰기**를 선택하고 **다음**을 클릭합니다.

1. **제어 위임 마법사를 완료하려면**에서 설정을 확인한 다음 **마침**을 클릭합니다.

## 4단계: 보안 암호 생성
<a name="custom-sqlserver-WinAuth.settingUp.ASM"></a>

Active Directory에 포함하려는 RDS Custom for SQL Server DB 인스턴스가 포함된 동일한 AWS 계정 및 리전에 보안 암호를 만들어야 합니다. [2단계: AD 도메인 사용자 생성](#custom-sqlserver-WinAuth.settingUp.ADuser)에서 생성된 AD 도메인 사용자의 자격 증명을 저장합니다.

------
#### [ Console ]
+ AWS Secrets Manager에서 **새 암호 저장**을 선택합니다.
+ **보안 암호 유형**에서 **다른 유형의 보안 암호**를 선택합니다.
+ **키/값 쌍**의 경우 2개의 키를 추가합니다.
  + 첫 번째 키 값에는 `SELF_MANAGED_ACTIVE_DIRECTORY_USERNAME`을 입력하고 AD 사용자의 사용자 이름(도메인 접두사 제외)을 입력합니다.
  + 두 번째 키에 `SELF_MANAGED_ACTIVE_DIRECTORY_PASSWORD`를 입력하고 도메인에 AD 사용자의 암호를 입력합니다.
+ **암호화 키**에 RDS Custom for SQL Server 인스턴스를 생성하는 데 사용한 것과 동일한 AWS KMS 키를 입력합니다.
+ **보안 암호 이름**에서 `do-not-delete-rds-custom-`으로 시작하는 보안 암호 이름을 선택하여 인스턴스 프로파일이 이 보안 암호에 액세스할 수 있도록 합니다. 보안 암호에 다른 이름을 선택하려면 **보안 암호 이름**에 액세스하도록 `RDSCustomInstanceProfile`을 업데이트합니다.
+ (선택 사항) **설명**에 보안 암호 이름에 대한 설명을 입력합니다.
+ 태그 `Key="AWSRDSCustom",Value="custom-sqlserver"` 추가 
+ **저장**을 클릭한 후 **다음**을 클릭합니다.
+ **교체 설정 구성**에서 기본값을 유지하고 **다음**을 선택합니다.
+ 보안 암호 설정을 검토하고 **저장**을 클릭합니다.
+ 새 보안 암호를 선택하고 **보안 암호 ARN**의 값을 복사합니다. 다음 단계에서 이를 사용하여 Active Directory를 설정합니다.

------
#### [ CLI ]

CLI에서 다음 명령을 실행하여 보안 암호를 생성합니다.

```
# Linux based
aws secretsmanager create-secret \
--name do-not-delete-rds-custom-DomainUserCredentails \ 
--description "Active directory user credentials for managing RDS Custom" \ 
--secret-string "{\"SELF_MANAGED_ACTIVE_DIRECTORY_USERNAME\":\"tester\",\"SELF_MANAGED_ACTIVE_DIRECTORY_PASSWORD\":\"xxxxxxxx\"}" \
--kms-key-id <RDSCustomKMSKey> \
--tags Key="AWSRDSCustom",Value="custom-sqlserver"

# Windows based
aws secretsmanager create-secret ^
--name do-not-delete-rds-custom-DomainUserCredentails ^ 
--description "Active directory user credentials for managing RDS Custom" ^
--secret-string "{\"SELF_MANAGED_ACTIVE_DIRECTORY_USERNAME\":\"tester\",\"SELF_MANAGED_ACTIVE_DIRECTORY_PASSWORD\":\"xxxxxxxx\"}" ^
--kms-key-id <RDSCustomKMSKey> ^
--tags Key="AWSRDSCustom",Value="custom-sqlserver"
```

------

## 5단계: RDS Custom for SQL Server DB 인스턴스 생성 또는 수정
<a name="custom-sqlserver-WinAuth.settingUp.CreateDBInstance"></a>

디렉터리에서 사용할 RDS Custom for SQL Server DB 인스턴스를 생성하거나 수정합니다. 콘솔, CLI 또는 RDS API를 사용하여 DB 인스턴스를 디렉터리에 연결할 수 있습니다. 이 작업을 다음 중 한 가지 방법으로 수행할 수 있습니다.
+ 콘솔, [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) CLI 명령 또는 [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) RDS API 작업을 사용하여 새 SQL Server DB 인스턴스를 생성합니다.

  지침은 [Amazon RDS DB 인스턴스 생성](USER_CreateDBInstance.md) 섹션을 참조하세요.
+ 콘솔, [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) CLI 명령 또는 [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) RDS API 작업을 사용하여 기존 SQL Server DB 인스턴스를 수정합니다.

  지침은 [Amazon RDS DB 인스턴스 수정](Overview.DBInstance.Modifying.md) 섹션을 참조하세요.
+ 콘솔, [restore-db-instance-from-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html) CLI 명령 또는 [RestoreDBInstanceFromDBSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceFromDBSnapshot.html) RDS API 작업을 사용하여 DB 스냅샷에서 SQL Server DB 인스턴스를 복원합니다.

  지침은 [DB 인스턴스 복원](USER_RestoreFromSnapshot.md) 섹션을 참조하세요.
+ 콘솔, [restore-db-instance-to-point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html) CLI 명령 또는 [RestoreDBInstanceToPointInTime](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBInstanceToPointInTime.html) RDS API 작업을 사용하여 SQL Server DB 인스턴스를 특정 시점으로 복구합니다.

  지침은 [Amazon RDS에서 DB 인스턴스를 지정된 시간으로 복원](USER_PIT.md) 섹션을 참조하세요.

**참고**  
RDS Custom for SQL Server 인스턴스가 이미 AD에 수동으로 조인된 경우 [네트워크 구성 포트 규칙](custom-sqlserver-WinAuth.NWConfigPorts.md), [네트워크 검증](custom-sqlserver-WinAuth.NWValidation.md)의 설정을 확인하고 1\$14단계를 완료합니다. 도메인 조인 보안 인증 정보 및 구성이 RDS Custom에 등록되어 CNAME를 모니터링, 등록 및 복구 작업을 수행할 수 있도록 `--domain-fqdn`, `--domain-ou` 및 `--domain-auth-secret-arn`을 AD로 업데이트합니다.

AWS CLI를 사용하는 경우 생성한 도메인 디렉터리를 DB 인스턴스에서 사용하려면 다음과 같은 파라미터가 필요합니다.
+ `--domain-fqdn` 파라미터에는 자체 관리형 AD의 정규화된 도메인 이름을 사용합니다.
+ `--domain-ou` 파라미터에는 자체 관리형 AD에서 만든 OU를 사용합니다.
+ `--domain-auth-secret-arn` 파라미터에는 생성한 **보안 암호 ARN**의 값을 사용합니다.

**중요**  
자체 관리형 AD 도메인에 조인하거나 자체 관리형 AD 도메인 또는 AWS Managed Microsoft AD에서 제거하도록 DB 인스턴스를 수정한 경우 변경 사항이 적용되려면 DB 인스턴스를 재부팅해야 합니다. 변경 사항을 즉시 적용하거나 다음 유지 관리 기간까지 기다릴 수 있습니다. **즉시 적용** 옵션을 선택하면 단일 AZ DB 인스턴스에 가동 중단이 발생합니다. 다중 AZ DB 클러스터는 재부팅을 완료하기 전에 장애 조치를 수행합니다. 자세한 내용은 [Amazon RDS DB 인스턴스 수정](Overview.DBInstance.Modifying.md) 섹션을 참조하세요.

다음 CLI 명령은 새 RDS Custom for SQL Server DB 인스턴스를 만들어 자체 관리형 또는 AWS Managed Microsoft AD 도메인에 조인합니다.

대상 LinuxmacOS, 또는Unix:

```
aws rds create-db-instance  \
--engine custom-sqlserver-se \
--engine-version 15.00.4312.2.v1 \
--db-instance-identifier my-custom-instance \
--db-instance-class db.m5.large \
--allocated-storage 100 --storage-type io1 --iops 1000 \
--master-username my-master-username \
--master-user-password my-master-password \
--kms-key-id  my-RDSCustom-key-id \
--custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance  \
--domain-fqdn "corp.example.com" \
--domain-ou "OU=RDSCustomOU,DC=corp,DC=example,DC=com" \
--domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:do-not-delete-rds-custom-my-AD-test-secret-123456" \
--db-subnet-group-name my-DB-subnet-grp \
--vpc-security-group-ids  my-securitygroup-id \
--no-publicly-accessible \
--backup-retention-period 3 \
--port 8200 \
--region us-west-2 \
--no-multi-az
```

Windows의 경우:

```
aws rds create-db-instance  ^
--engine custom-sqlserver-se ^
--engine-version 15.00.4312.2.v1 ^
--db-instance-identifier my-custom-instance ^
--db-instance-class db.m5.large ^
--allocated-storage 100 --storage-type io1 --iops 1000 ^
--master-usernamemy-master-username ^
--master-user-password my-master-password ^
--kms-key-id  my-RDSCustom-key-id ^
--custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance  ^
--domain-fqdn "corp.example.com" ^
--domain-ou "OU=RDSCustomOU,DC=corp,DC=example,DC=com" ^
--domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:do-not-delete-rds-custom-my-AD-test-secret-123456" ^
--db-subnet-group-name my-DB-subnet-grp ^
--vpc-security-group-ids  my-securitygroup-id ^
--no-publicly-accessible ^
--backup-retention-period 3 ^
--port 8200 ^
--region us-west-2 ^
--no-multi-az
```

**중요**  
AWS Managed Microsoft AD에 대한 NetBIOS가 **corpexample**인 경우 OU 자체로 표시됩니다. 이전에 생성된 새 OU는 중첩 OU로 표시됩니다. AWS Managed Microsoft AD의 경우 `--domain-ou`을 `"OU=RDSCustomOU,OU=corpexample,DC=corp,DC=example,DC=com"`으로 설정합니다.

다음 명령은 Active Directory 도메인을 사용하도록 기존 RDS Custom for SQL Server DB 인스턴스를 수정합니다.

대상 LinuxmacOS, 또는Unix:

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --domain-fqdn "corp.example.com" \
    --domain-ou "OU=RDSCustomOU,DC=corp,DC=example,DC=com" \
    --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:do-not-delete-rds-custom-my-AD-test-secret-123456" \
```

Windows의 경우:

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --domain-fqdn "corp.example.com" ^
    --domain-ou "OU=RDSCustomOU,DC=corp,DC=example,DC=com" ^
    --domain-auth-secret-arn "arn:aws:secretsmanager:region:account-number:secret:do-not-delete-rds-custom-my-AD-test-secret-123456" ^
```

다음 CLI 명령은 Active Directory 도메인에서 RDS Custom for SQL Server DB 인스턴스를 제거합니다.

대상 LinuxmacOS, 또는Unix:

```
aws rds modify-db-instance \
    --db-instance-identifier my-custom-instance \
    --disable-domain
```

Windows의 경우:

```
aws rds modify-db-instance ^
    --db-instance-identifier my-custom-instance ^
    --disable-domain
```

콘솔을 사용하여 인스턴스를 생성하거나 수정할 때 **Microsoft SQL Server Windows 인증 활성화**를 클릭하여 다음 옵션을 확인합니다.

![\[Microsoft SQL Server Windows 인증 디렉터리\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/custom-sqs-WinAuth.png)


도메인 FQDN이 도메인 컨트롤러 IP 주소로 확인되고 있는지 확인하는 것은 사용자의 책임입니다. 도메인 컨트롤러 IP가 확인되지 않으면 도메인 조인 작업은 실패하지만 RDS Custom for SQL Server 인스턴스 만들기에 성공합니다. 문제 해결 정보는 [Active Directory 문제 해결](custom-sqlserver-WinAuth.Troubleshoot.md)를 참조하세요.

## 6단계: Windows 인증 SQL Server 로그인 생성
<a name="custom-sqlserver-WinAuth.settingUp.CreateLogins"></a>

다른 DB 인스턴스의 경우와 같은 방법으로 Amazon RDS 마스터 사용자 보안 인증 정보를 사용하여 SQL Server DB 인스턴스에 연결합니다. DB 인스턴스는 AD 도메인에 조인되므로 SQL Server 로그인 및 사용자를 프로비저닝할 수 있습니다. 이 작업은 AD 도메인의 AD 사용자 및 그룹 유틸리티에서 수행합니다. 데이터베이스 권한은 이러한 Windows 로그인에 부여되거나 취소되는 표준 SQL Server 권한을 통해 관리됩니다.

AD 사용자가 SQL Server로 인증하려면 AD 사용자 또는 사용자가 속한 Active Directory 그룹에 대한 SQL Server Windows 로그인이 있어야 합니다. 세분화된 액세스 제어는 이러한 SQL Server 로그인에 대한 권한을 부여하거나 취소하여 처리합니다. SQL Server 로그인이 없거나 이러한 로그인이 있는 AD 그룹에 속하지 않은 AD 사용자는 SQL Server DB 인스턴스에 액세스할 수 없습니다.

AD SQL Server 로그인을 생성하려면 `ALTER ANY LOGIN` 권한이 필요합니다. 이 권한으로 로그인을 생성하지 않은 경우 SQL Server 인증을 사용하여 DB 인스턴스의 마스터 사용자로 연결하고 마스터 사용자의 맥락에서 AD SQL Server 로그인을 생성합니다.

다음과 같은 데이터 정의 언어(DDL) 명령을 실행하여 AD 사용자 또는 그룹에 대한 SQL Server 로그인을 생성할 수 있습니다.

```
USE [master]
GO
CREATE LOGIN [mydomain\myuser] FROM WINDOWS WITH DEFAULT_DATABASE = [master], DEFAULT_LANGUAGE = [us_english];
GO
```

도메인의 사용자(사람 및 애플리케이션)는 이제 Windows 인증을 사용하여 도메인이 조인된 클라이언트 컴퓨터의 RDS Custom for SQL Server 인스턴스에 연결할 수 있습니다.

## 7단계: Kerberos 또는 NTLM 인증 사용
<a name="custom-sqlserver-WinAuth.settingUp.KerbNTLM"></a>

### RDS 엔드포인트를 사용한 NTLM 인증
<a name="custom-sqlserver-WinAuth.settingUp.KerbNTLM.NTLM"></a>

각 Amazon RDS DB 인스턴스에는 엔드포인트가 있으며, 각 엔드포인트에는 DB 인스턴스의 DNS 이름과 포트 번호가 있습니다. SQL 클라이언트 애플리케이션을 사용해 DB 인스턴스에 연결하려면 DB 인스턴스에 연결할 수 있는 DNS 이름과 포트 번호가 필요합니다. NTLM 인증을 사용하여 인증하려면 RDS 엔드포인트에 연결해야 합니다.

계획된 데이터베이스 유지 관리 또는 예기치 않은 서비스 중단이 발생할 경우 Amazon RDS가 최신 보조 데이터베이스로 자동으로 장애 조치를 수행하므로 수동 개입 없이 작업을 빠르게 재개할 수 있습니다. 기본 인스턴스 및 보조 인스턴스는 동일한 엔드포인트를 사용합니다. 이 엔드포인트의 물리적 네트워크 주소는 장애 조치 프로세스의 일환으로 보조로 전환됩니다. 장애 조치가 발생하는 경우 애플리케이션을 다시 구성할 필요가 없습니다.

### Kerberos 인증
<a name="custom-sqlserver-WinAuth.settingUp.KerbNTLM.Kerb"></a>

RDS Custom for SQL Server에 대한 Kerberos 기반 인증을 수행하려면 특정 서비스 보안 주체 이름(SPN)에 연결해야 합니다. 그러나 장애 조치 이벤트 후 애플리케이션이 새 SPN을 인식하지 못할 수 있습니다. 이를 해결하기 위해 RDS Custom for SQL Server는 Kerberos 기반 엔드포인트를 제공합니다.

Kerberos 기반 엔드포인트는 특정 형식을 따릅니다. RDS 엔드포인트가 `rds-instance-name.account-region-hash.aws-region.rds.amazonaws.com`인 경우 해당 Kerberos 기반 엔드포인트는 `rds-instance-name.account-region-hash.aws-region.awsrds.fully qualified domain name (FQDN)`입니다.

예를 들어 RDS 엔드포인트가 `ad-test.cocv6zwtircu.us-east-1.rds.amazonaws.com`이고 도메인 이름이 `corp-ad.company.com`인 경우 Kerberos 기반 엔드포인트는 `ad-test.cocv6zwtircu.us-east-1.awsrds.corp-ad.company.com`입니다.

이 Kerberos 기반 엔드포인트는 기본 SQL Server 인스턴스의 새 SPN을 가리키도록 엔드포인트가 자동으로 업데이트되므로 장애 조치 이벤트 후에도 Kerberos를 사용하여 SQL Server 인스턴스로 인증하는 데 사용할 수 있습니다.

### CNAME 찾기
<a name="custom-sqlserver-WinAuth.settingUp.KerbNTLM.CNAME"></a>

CNAME를 찾으려면 도메인 컨트롤러에 연결하고 **DNS Manager**를 엽니다. **정방향 조회 영역** 및 FQDN으로 이동합니다.

**awsrds**, **aws-region**, **계정 및 리전별 해시**를 탐색합니다.

RDS Custom EC2 인스턴스를 연결하고 CNAME를 사용하여 로컬에서 데이터베이스에 연결하려고 하면 연결에서 Kerberos 대신 NTLM 인증을 사용합니다.

원격 클라이언트에서 CNAME를 연결한 후 NTLM 연결이 반환되면 필요한 포트가 허용 목록에 있는지 확인합니다.

연결에서 Kerberos를 사용 중인지 확인하려면 다음 쿼리를 실행합니다.

```
SELECT net_transport, auth_scheme
    FROM sys.dm_exec_connections
    WHERE session_id = @@SSPID;
```

# 도메인에서 DB 인스턴스 관리
<a name="custom-sqlserver-WinAuth.ManagingDBI"></a>

 콘솔, AWS CLI 또는 Amazon RDS API를 사용하여 DB 인스턴스 및 DB 인스턴스와 도메인과의 관계를 관리할 수 있습니다. 예를 들어, DB 인스턴스를 도메인 내로, 도메인 외부로 또는 도메인 간에 이동할 수 있습니다.

 예를 들어 Amazon RDS API를 사용하여 다음을 수행할 수 있습니다.
+  실패한 멤버십에 대한 도메인 조인을 다시 시도하려면 [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) API 작업을 사용하고 현재 멤버십의 디렉터리 ID를 지정합니다.
+  멤버십에 대한 IAM 역할 이름을 업데이트하려면 `ModifyDBInstance` API 작업을 사용하고 현재 멤버십의 디렉터리 ID 및 새 IAM 역할을 지정합니다.
+  도메인에서 DB 인스턴스를 제거하려면 `ModifyDBInstance` API 작업을 사용하고 `none`을 도메인 파라미터로 지정합니다.
+  한 도메인에서 다른 도메인으로 DB 인스턴스를 이동하려면 `ModifyDBInstance` API 작업을 사용하여 새 도메인의 도메인 식별자를 도메인 파라미터로 지정합니다.
+  각 DB 인스턴스에 대한 멤버십을 나열하려면 [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/DescribeDBInstances.html) API 작업을 사용합니다.

## RDS Custom for SQL Server DB 인스턴스 복원 및 Active Directory 도메인에 추가
<a name="custom-sqlserver-WinAuth.ManagingDBI.Restoring"></a>

DB 스냅샷을 복원하거나 SQL Server DB 인스턴스에 대한 특정 시점 복구(PITR)를 수행한 후 Active Directory 도메인에 추가할 수 있습니다. DB 인스턴스가 복원된 후 [5단계: RDS Custom for SQL Server DB 인스턴스 생성 또는 수정](custom-sqlserver-WinAuth.settingUp.md#custom-sqlserver-WinAuth.settingUp.CreateDBInstance)에 설명된 프로세스를 사용하여 DB 인스턴스를 AD 도메인에 추가하도록 인스턴스를 수정합니다.

# 도메인 멤버십 이해
<a name="custom-sqlserver-WinAuth.Understanding"></a>

 DB 인스턴스를 생성하거나 수정한 경우 해당 인스턴스는 도메인의 구성원이 됩니다. AWS 콘솔은 DB 인스턴스에 대한 도메인 멤버십의 상태를 나타냅니다. DB 인스턴스의 상태는 다음 중 한 가지가 될 수 있습니다.
+  **joined** – 인스턴스가 도메인의 구성원입니다.
+  **joining** – 인스턴스가 도메인 구성원이 되기 위한 과정을 진행하고 있습니다.
+  **pending-join** – 인스턴스 멤버십이 보류 중입니다.
+  **pending-maintenance-join** - AWS에서 다음 예약된 유지 관리 기간 동안 인스턴스를 도메인의 멤버로 만들려고 시도합니다.
+  **pending-removal** – 도메인에서 인스턴스 제거 작업이 보류 중입니다.
+  **pending-maintenance-removal** - AWS에서 다음 예약된 유지 관리 기간 동안 도메인에서 인스턴스를 제거하려고 시도합니다.
+  **failed** – 구성 문제가 발생하여 인스턴스가 도메인에 조인되지 않았습니다. 인스턴스 수정 명령을 다시 실행하기 전에 구성을 확인하고 수정합니다.
+  **removing** – 인스턴스를 도메인에서 제거하고 있습니다.

네트워크 연결 문제 또는 잘못된 IAM 역할로 인해 도메인 구성원 되기 요청이 실패할 수 있습니다. 예를 들어, DB 인스턴스를 생성하거나 기존 인스턴스를 수정하여 DB 인스턴스가 도메인의 멤버가 되려는 시도를 못하게 할 수 있습니다. 이 경우 명령을 다시 실행하여 DB 인스턴스를 생성 또는 수정하거나 새로 생성된 인스턴스를 수정하여 도메인에 조인할 수 있습니다.

# Active Directory 문제 해결
<a name="custom-sqlserver-WinAuth.Troubleshoot"></a>

다음은 AD를 설정하거나 수정할 때 발생할 수 있는 문제입니다.


| 오류 코드 | 설명 | 일반적인 원인 | 문제 해결 제안 | 
| --- | --- | --- | --- | 
| 오류 2/0x2 | 시스템이 지정된 파일을 찾을 수 없습니다. | `—domain-ou` 파라미터로 지정된 조직 단위(OU)의 형식 또는 위치가 잘못되었습니다. AWS Secrets Manager를 통해 지정된 도메인 서비스 계정에는 OU에 가입하는 데 필요한 권한이 없습니다. | `—domain-ou` 파라미터를 검토합니다. 도메인 서비스 계정에 OU에 대한 올바른 권한이 있는지 확인합니다. | 
| 오류 5/0x5 | 액세스가 거부되었습니다. | 도메인 서비스 계정에 대한 권한이 잘못 구성되었거나 컴퓨터 계정이 이미 도메인에 있습니다. | 도메인의 도메인 서비스 계정 권한을 검토하고 RDS 컴퓨터 계정이 도메인에 중복되지 않았는지 확인합니다. RDS Custom for SQL Server DB 인스턴스에서 `SELECT @@SERVERNAME`을 실행하여 RDS 컴퓨터 계정의 이름을 확인할 수 있습니다. 다중 AZ를 사용하는 경우 장애 조치를 사용하여 재부팅한 다음 RDS 컴퓨터 계정을 다시 확인합니다. 자세한 내용은 [ DB 인스턴스 재부팅](USER_RebootInstance.md) 단원을 참조하십시오. | 
| 오류 87/0x57 | 파라미터가 올바르지 않습니다. | AWS Secrets Manager를 통해 지정된 도메인 서비스 계정에 올바른 권한이 없습니다. 사용자 프로필도 손상되었을 수 있습니다. | 도메인 서비스 계정의 요구 사항을 검토합니다. | 
| 오류 234/0xEA | 지정된 조직 단위(OU)가 없습니다. | `—domain-ou` 파라미터로 지정된 OU가 AD에 존재하지 않습니다. | `—domain-ou` 파라미터를 검토하고 지정된 OU가 AD에 있는지 확인합니다. | 
| 오류 1326/0x52E | 사용자 이름 또는 암호가 잘못되었습니다. | AWS Secrets Manager에 제공된 도메인 서비스 계정 보안 인증 정보에 알 수 없는 사용자 이름이나 잘못된 암호가 있습니다. AD에서 도메인 계정을 사용하지 않도록 설정할 수도 있습니다. | AWS Secrets Manager에 제공된 보안 인증 정보가 올바르고 Active Directory에서 도메인 계정이 활성화되어 있는지 확인합니다. | 
| 오류 1355/0x54B | 지정된 도메인이 존재하지 않거나 해당 주소를 찾을 수 없습니다. | 도메인이 중지되었거나, 지정된 DNS IP 집합에 연결할 수 없거나, 지정된 FQDN에 연결할 수 없습니다. | `—domain-dns-ips` 및 `—domain-fqdn` 파라미터를 검토하여 올바른지 확인합니다. RDS Custom for SQL Server DB 인스턴스의 네트워킹 구성을 검토하고 AD에 연결할 수 있는지 확인합니다. | 
| 오류 1722/0x6BA | RPC 서버를 사용할 수 없습니다. | AD 도메인의 RPC 서비스에 연결하는 중 문제가 발생했습니다. 서비스 또는 네트워크 문제일 수 있습니다. | RPC 서비스가 도메인 컨트롤러에서 실행되고 있고 TCP 포트 `135` 및 `49152-65535`에서 RDS Custom for SQL Server DB 인스턴스의 도메인에 연결할 수 있는지 확인합니다. | 
| 오류 2224/0x8B0 | 계정이 이미 있습니다. | AD에 추가하려는 컴퓨터 계정이 이미 있습니다. | RDS Custom for SQL Server DB 인스턴스에서 `SELECT @@SERVERNAME`을 실행하여 컴퓨터 계정을 식별한 다음 AD에서 해당 계정을 신중히 제거합니다. | 
| 오류 2242/0x8c2 | 이 사용자의 암호가 만료되었습니다. | AWS Secrets Manager를 통해 지정한 도메인 서비스 계정의 암호가 만료되었습니다. | RDS Custom for SQL Server DB 인스턴스를 AD에 가입시키는 데 사용되는 도메인 서비스 계정의 암호를 업데이트합니다. | 

# RDS Custom for SQL Server에 대한 다중 AZ 배포 구성 및 관리
<a name="custom-sqlserver-multiaz"></a>

 RDS Custom for SQL Server에 대한 다중 AZ DB 인스턴스 배포에서 Amazon RDS는 자동으로 서로 다른 가용 영역에 동기식 대기 복제본을 프로비저닝하고 유지합니다. 기본 DB 인스턴스는 가용 영역 전체에서 대기 복제본으로 동기식으로 복제되어 데이터 중복성을 제공합니다.

**중요**  
RDS Custom for SQL Server에 대한 다중 AZ 배포는 RDS for SQL Server에 대한 다중 AZ 배포와 다릅니다. RDS for SQL Server에 대한 다중 AZ와 달리, RDS Custom은 사용자의 계정 내에서 실행되는데 이는 권한이 필요하므로 다중 AZ DB 인스턴스를 만들기 전에 RDS Custom for SQL Server의 사전 조건을 설정해야 합니다.  
사전 조건을 완료하지 않으면 다중 AZ DB 인스턴스가 실행되지 않거나, 단일 AZ DB 인스턴스로 자동으로 되돌아갈 수 있습니다. 사전 조건에 대한 자세한 내용은 [RDS Custom for SQL Server를 사용한 다중 AZ 배포의 사전 조건](custom-sqlserver-multiaz.prerequisites.md) 단원을 참조하세요.

DB 인스턴스를 고가용성으로 실행하면 계획된 시스템 유지 관리 중 가용성을 높일 수 있습니다. 계획된 데이터베이스 유지 관리 또는 예기치 않은 서비스 중단이 발생할 경우, Amazon RDS가 최신 보조 DB 인스턴스로 자동으로 장애 조치를 수행합니다. 이 기능을 통해 수동 개입 없이 데이터베이스 작업을 빠르게 재개할 수 있습니다. 기본 인스턴스 및 예비 인스턴스는 동일한 엔드포인트를 사용합니다. 이 엔드포인트의 물리적 네트워크 주소는 장애 조치 프로세스의 일환으로 보조 복제본으로 전환됩니다. 장애 조치가 발생하는 경우 애플리케이션을 다시 구성할 필요가 없습니다.

![\[RDS Custom for SQL Server는 다중 AZ를 지원합니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/custom-sqlserver-multiaz-architecture.png)


RDS Custom DB 인스턴스 생성 시 다중 AZ를 지정하여 RDS Custom for SQL Server 다중 AZ 배포를 생성할 수 있습니다. 콘솔을 사용하여 DB 인스턴스를 수정하고 다중 AZ 옵션을 지정함으로써 기존 RDS Custom for SQL Server DB 인스턴스를 다중 AZ 배포로 변환할 수 있습니다. 또한, AWS CLI 또는 Amazon RDS API를 사용하여 다중 AZ DB 인스턴스 배포를 지정할 수도 있습니다.

RDS 콘솔에 예비 복제본(보조 AZ)의 가용 영역이 표시됩니다. `describe-db-instances` CLI 명령 또는 `DescribeDBInstances` API 작업을 사용하여 보조 AZ를 찾을 수도 있습니다.

다중 AZ DB 인스턴스 배포를 사용하는 RDS Custom for SQL Server DB 인스턴스는 단일 AZ 배포에 비해 쓰기 및 커밋 대기 시간이 길어질 수 있습니다. 이러한 대기 시간 증가는 DB 인스턴스 간의 동기 데이터 복제로 인해 발생할 수 있습니다. AWS는 가용 영역 간 지연 시간이 짧은 네트워크 연결을 제공하도록 설계되었지만 배포가 예비 복제본으로 장애 조치될 경우 지연 시간이 변경될 수 있습니다.

**참고**  
프로덕션 워크로드의 경우 빠르고 일관된 성능을 제공할 수 있도록 프로비저닝된 IOPS(초당 입/출력 작업)와 함께 DB 인스턴스 클래스를 사용하는 것이 좋습니다. DB 인스턴스 클래스에 대한 자세한 내용은 [Amazon RDS Custom for SQL Server 요구 사항 및 제한](custom-reqs-limits-MS.md) 섹션을 참조하세요.

**Topics**
+ [리전 및 버전 사용 가능 여부](#custom-sqlserver-multiaz.regionversion)
+ [RDS Custom for SQL Server를 사용한 다중 AZ 배포의 제한 사항](#custom-sqlserver-multiaz.limitations)
+ [RDS Custom for SQL Server를 사용한 다중 AZ 배포의 사전 조건](custom-sqlserver-multiaz.prerequisites.md)
+ [RDS Custom for SQL Server에 대한 다중 AZ 배포 생성](#custom-sqlserver-multiaz.creating)
+ [RDS Custom for SQL Server 단일 AZ 배포를 다중 AZ 배포로 수정](custom-sqlserver-multiaz.modify-saztomaz.md)
+ [RDS Custom for SQL Server 다중 AZ 배포를 단일 AZ 배포로 수정하려면](custom-sqlserver-multiaz.modify-maztosaz.md)
+ [RDS Custom for SQL Server 다중 AZ 배포에 대한 장애 조치 프로세스](custom-sqlserver-multiaz.failover.md)

## 리전 및 버전 사용 가능 여부
<a name="custom-sqlserver-multiaz.regionversion"></a>

다음과 같은 SQL Server 에디션의 경우 RDS Custom for SQL Server에 대한 다중 AZ 배포가 지원됩니다.
+ SQL Server 2022 및 2019: Enterprise, Standard, Web, Developer Edition

**참고**  
RDS Custom for SQL Server의 다중 AZ 배포는 SQL Server 2019 CU8(15.00.4073.23) 이하 버전에서는 지원되지 않습니다.

RDS Custom for SQL Server에 대한 다중 AZ 배포는 RDS Custom for SQL Server를 사용하는 모든 리전에서 사용할 수 있습니다. RDS Custom for SQL Server에 대한 다중 AZ 배포를 리전에서 사용할 수 있는지에 대한 자세한 내용은 [RDS Custom for SQL Server를 지원하는 리전 및 DB 엔진](Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.md#Concepts.RDS_Fea_Regions_DB-eng.Feature.RDSCustom.sq)를 참조하세요.

## RDS Custom for SQL Server를 사용한 다중 AZ 배포의 제한 사항
<a name="custom-sqlserver-multiaz.limitations"></a>

RDS Custom for SQL Server를 사용한 다중 AZ 배포에는 다음과 같은 제한 사항이 있습니다.
+ 리전 간 다중 AZ 배포는 지원되지 않습니다.
+ 보조 DB 인스턴스가 데이터베이스 읽기 작업을 허용하도록 구성할 수 없습니다.
+ 다중 AZ 배포와 함께 사용자 지정 엔진 버전(CEV)을 사용할 경우 보조 DB 인스턴스도 동일한 CEV를 사용합니다. 보조 DB 인스턴스는 다른 CEV를 사용할 수 없습니다.

# RDS Custom for SQL Server를 사용한 다중 AZ 배포의 사전 조건
<a name="custom-sqlserver-multiaz.prerequisites"></a>

기존 RDS Custom for SQL Server 단일 AZ 배포가 있을 경우, 이 배포를 다중 AZ 배포로 수정하기 전에 다음과 같은 추가 사전 조건이 필요합니다. 사전 조건을 수동으로 완료하거나 제공된 CloudFormation 템플릿을 사용하여 완료하도록 선택할 수 있습니다. 최신 CloudFormation 템플릿에는 단일 AZ 배포와 다중 AZ 배포를 위한 사전 조건이 포함되어 있습니다.

**중요**  
설정을 간소화하려면 네트워크 설정 지침에 제공된 최신 CloudFormation 템플릿 파일을 사용하여 사전 조건을 생성하는 것이 좋습니다. 자세한 내용은 [CloudFormation을 사용한 구성](custom-setup-sqlserver.md#custom-setup-sqlserver.cf) 단원을 참조하십시오.

**참고**  
기존 RDS Custom for SQL Server 단일 AZ 배포를 다중 AZ 배포로 수정하는 경우 이러한 사전 조건을 완료해야 합니다. 사전 조건을 완료하지 않으면 다중 AZ 설정이 실패합니다. 사전 조건을 완료하려면 [RDS Custom for SQL Server 단일 AZ 배포를 다중 AZ 배포로 수정](custom-sqlserver-multiaz.modify-saztomaz.md)의 단계를 따릅니다.
+ 포트 1120을 허용하도록 RDS 보안 그룹 인바운드 및 아웃바운드 규칙을 업데이트합니다.
+ 프라이빗 네트워크 액세스 제어 목록(ACL)에 DB 인스턴스 VPC의 TCP 포트 `0-65535`를 허용하는 규칙을 추가합니다.
+ RDS Custom for SQL Server DB 인스턴스가 SQS와 통신할 수 있도록 새 Amazon SQS VPC 엔드포인트를 생성합니다.
+ 인스턴스 프로파일 역할에서 SQS 권한을 업데이트합니다.

## RDS Custom for SQL Server에 대한 다중 AZ 배포 생성
<a name="custom-sqlserver-multiaz.creating"></a>

RDS Custom for SQL Server 다중 AZ 배포를 생성하려면 [Amazon RDS Custom for SQL Server의 DB 인스턴스 생성 및 연결](custom-creating-sqlserver.md)의 단계를 따릅니다.

**중요**  
설정을 간소화하려면 네트워크 설정 지침에 제공된 최신 CloudFormation 템플릿 파일을 사용하는 것이 좋습니다. 자세한 내용은 [CloudFormation을 사용한 구성](custom-setup-sqlserver.md#custom-setup-sqlserver.cf) 단원을 참조하십시오.

다중 AZ 배포 생성을 완료하려면 몇 분 정도 걸립니다.

# RDS Custom for SQL Server 단일 AZ 배포를 다중 AZ 배포로 수정
<a name="custom-sqlserver-multiaz.modify-saztomaz"></a>

기존 RDS Custom for SQL Server DB 인스턴스를 단일 AZ 배포에서 다중 AZ 배포로 수정할 수 있습니다. DB 인스턴스를 수정할 경우 Amazon RDS는 여러 가지 작업을 수행합니다.
+ 기본 DB 인스턴스의 스냅샷을 생성합니다.
+ 스냅샷에서 스탠바이 복제본용 새 볼륨을 생성합니다. 이러한 볼륨은 백그라운드에서 초기화되며 데이터가 완전히 초기화된 후에 최대 볼륨 성능이 달성됩니다.
+ 기본 DB 인스턴스와 보조 DB 인스턴스 간의 동기 블록 수준 복제를 활성화합니다.

**중요**  
사용량이 가장 많은 기간에는 프로덕션 DB 인스턴스의 RDS Custom for SQL Server DB 인스턴스를 단일 AZ에서 다중 AZ 배포로 수정하지 않는 것이 좋습니다.

AWS는 스냅샷을 사용하여 대기 인스턴스를 생성하면 단일 AZ에서 다중 AZ로 변환할 때 가동 중지 시간을 피할 수 있지만, 다중 AZ로 변환하는 동안과 이후에 성능에 영향을 미칠 수 있습니다. 이는 쓰기 대기 시간에 민감한 워크로드에 상당한 영향을 미칠 수 있습니다. 이 기능을 사용하면 스냅샷에서 대용량 볼륨을 신속하게 복원할 수 있지만, 이 경우 동기식 복제로 인해 I/O 작업의 지연 시간이 증가할 수 있습니다. 이러한 지연 시간은 데이터베이스 성능에 영향을 줄 수 있습니다.

**참고**  
2024년 8월 29일 이전에 RDS Custom for SQL Server DB 인스턴스를 생성한 경우 수정하기 전에 최신 마이너 버전으로 패치합니다.  
SQL Server 2019 인스턴스의 경우 DB 엔진 버전을 `15.00.4410.1.v1` 이상으로 업그레이드합니다.
SQL Server 2022 인스턴스의 경우 DB 엔진 버전을 `16.00.4150.1.v1` 이상으로 업그레이드합니다.

**Topics**
+ [CloudFormation을 사용하여 단일 AZ를 다중 AZ 배포로 수정하기 위한 사전 조건 구성](#custom-sqlserver-multiaz.modify-saztomaz-prereqs.cf)
+ [단일 AZ를 다중 AZ 배포로 수동으로 수정하기 위한 사전 조건 구성](#custom-sqlserver-multiaz.modify-saztomaz-prereqs.manual)
+ [RDS 콘솔, AWS CLI 또는 RDS API를 사용하여 수정합니다.](#custom-sqlserver-multiaz.modify-saztomaz-afterprereqs)

## CloudFormation을 사용하여 단일 AZ를 다중 AZ 배포로 수정하기 위한 사전 조건 구성
<a name="custom-sqlserver-multiaz.modify-saztomaz-prereqs.cf"></a>

다중 AZ 배포를 사용하려면 사전 조건이 포함된 최신 CloudFormation 템플릿을 적용하거나, 최신 사전 조건을 수동으로 구성해야 합니다. 최신 CloudFormation 사전 조건 템플릿을 이미 적용한 경우에는 이 단계를 건너뛰어도 됩니다.

CloudForma를 사용하여 RDS Custom for SQL Server 다중 AZ 배포를 구성하려면

1. [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)에서 CloudFormation 콘솔을 엽니다.

1. 스택 생성 마법사를 시작하려면 단일 AZ 배포를 만드는 데 사용했던 기존 스택을 선택하고 **Update**(업데이트)를 선택합니다.

   **스택 업데이트** 페이지가 표시됩니다.

1. **사전 조건 - 템플릿 준비**에서 **현재 템플릿 교체**를 선택합니다.

1. **템플릿 지정(Specify template)**에서 다음 작업을 수행합니다.

   1. 최신 CloudFormation 템플릿 파일을 다운로드합니다. [custom-sqlserver-onboard.zip](samples/custom-sqlserver-onboard.zip) 링크의 컨텍스트 메뉴(마우스 오른쪽 버튼 클릭)를 열고 **Save Link As**(다른 이름으로 링크 저장)를 선택합니다.

   1. `custom-sqlserver-onboard.json` 파일을 컴퓨터에 저장하고 압축을 풉니다.

   1. **템플릿 소스**로 **템플릿 파일 업로드**를 선택합니다.

   1. **파일 선택(Choose file)**에서 `custom-sqlserver-onboard.json`을 찾아 선택합니다.

1. **다음**을 선택합니다.

   **스택 세부 정보 지정(Specify stack details)** 페이지가 나타납니다.

1. 기본 옵션을 유지하려면 **다음(Next)**을 선택합니다.

   **고급 옵션** 페이지가 나타납니다.

1. 기본 옵션을 유지하려면 **다음(Next)**을 선택합니다.

1. 기본 옵션을 유지하려면 **다음(Next)**을 선택합니다.

1. **변경 사항 검토** 페이지에서 다음을 수행합니다.

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

   1. **제출**을 선택합니다.

1. 업데이트가 성공했는지 확인합니다. 작업이 성공하면 `UPDATE_COMPLETE`가 표시됩니다.

업데이트가 실패하면 업데이트 프로세스에 지정된 새 구성이 모두 롤백됩니다. 기존 리소스는 계속 사용할 수 있습니다. 예를 들어 번호가 18과 19인 네트워크 ACL 규칙을 추가했는데 같은 번호로 된 기존 규칙이 있는 경우, 업데이트 시 `Resource handler returned message: "The network acl entry identified by 18 already exists.`라는 오류가 반환됩니다. 이러한 시나리오가 발생하면 18보다 작은 숫자를 사용하도록 기존 ACL 규칙을 수정한 후 업데이트를 다시 시도해볼 수 있습니다.

## 단일 AZ를 다중 AZ 배포로 수동으로 수정하기 위한 사전 조건 구성
<a name="custom-sqlserver-multiaz.modify-saztomaz-prereqs.manual"></a>

**중요**  
설정을 간소화하려면 네트워크 설정 지침에 제공된 최신 CloudFormation 템플릿 파일을 사용하는 것이 좋습니다. 자세한 내용은 [CloudFormation을 사용하여 단일 AZ를 다중 AZ 배포로 수정하기 위한 사전 조건 구성](#custom-sqlserver-multiaz.modify-saztomaz-prereqs.cf) 섹션을 참조하세요.

사전 조건을 수동으로 구성하도록 선택한 경우 다음 태스크를 수행합니다.

1. [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)에서 Amazon VPC 콘솔을 엽니다.

1. **Endpoint**(엔드포인트)를 선택합니다. **엔드포인트 생성**페이지가 나타납니다.

1. **서비스 범주**에서 **AWS 서비스**를 선택합니다.

1. **서비스**에서 *SQS를* 검색합니다.

1. **VPC**에서 RDS Custom for SQL Server DB 인스턴스가 배포된 VPC를 선택합니다.

1. **서브넷**에서 RDS Custom for SQL Server DB 인스턴스가 배포된 서브넷을 선택합니다.

1. **보안 그룹**에서 *-vpc-endpoint-sg* 그룹을 선택합니다.

1. **정책**에서 **사용자 지정**을 선택합니다.

1. 사용자 지정 정책에서 *AWS 파티션*, *리전*, *accountId*, *IAM-Instance-role*을 고유한 값으로 바꿉니다.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Condition": {
                   "StringLike": {
                       "aws:ResourceTag/AWSRDSCustom": "custom-sqlserver"
                   }
               },
               "Action": [
                   "SQS:SendMessage",
                   "SQS:ReceiveMessage",
                   "SQS:DeleteMessage",
                   "SQS:GetQueueUrl"
               ],
               "Resource": "arn:aws:sqs:us-east-1:111122223333:do-not-delete-rds-custom-*",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::111122223333:role/{IAM-Instance-role}"
               }
           }
       ]
   }
   ```

------

1.  Amazon SQS에 액세스할 수 있는 권한으로 **인스턴스 프로파일**을 업데이트합니다. *AWS 파티션*, *리전*, *accountId*를 고유한 값으로 바꿉니다.

   ```
                           {
       "Sid": "SendMessageToSQSQueue",
       "Effect": "Allow",
       "Action": [
         "SQS:SendMessage",
         "SQS:ReceiveMessage",
         "SQS:DeleteMessage",                                    
         "SQS:GetQueueUrl"
   
       ],
       "Resource": [
         {
           "Fn::Sub": "arn:${AWS::Partition}:sqs:${AWS::Region}:${AWS::AccountId}:do-not-delete-rds-custom-*"
         }
       ],
       "Condition": {
         "StringLike": {
           "aws:ResourceTag/AWSRDSCustom": "custom-sqlserver"
         }
       }
     } 
                           >
   ```

1. 포트 1120을 허용하도록 Amazon RDS 보안 그룹 인바운드 및 아웃바운드 규칙을 업데이트합니다.

   1. **보안 그룹**에서 *-rds-custom-instance-sg* 그룹을 선택합니다.

   1. **인바운드 규칙**의 경우 소스 *-rds-custom-instance-sg* 그룹의 포트 *1120*을 허용하는 **사용자 지정 TCP** 규칙을 만듭니다.

   1. **아웃바운드 규칙**의 경우 대상 *-rds-custom-instance-sg* 그룹의 포트 *1120*을 허용하는 **사용자 지정 TCP** 규칙을 만듭니다.

1. 프라이빗 네트워크 액세스 제어 목록(ACL)에 DB 인스턴스 소스 서브넷의 TCP 포트 `0-65535`를 허용하는 규칙을 추가합니다.
**참고**  
**인바운드 규칙** 및 **아웃바운드** 규칙을 생성할 때는 기존의 가장 높은 **규칙 번호**를 기록해 둡니다. 새로 생성하는 규칙의 **규칙 번호** 100보다 작아야 하며 기존 **규칙 번호**와 일치하지 않아야 합니다.

   1. **네트워크 ACL**에서 *-private-network-acl* 그룹을 선택합니다.

   1. **인바운드 규칙**의 경우 *privatesubnet1* 및 *privatesubnet2*에서 나오는 소스와 함께 TCP 포트 `0-65535`를 허용하는 **모든 TCP** 규칙을 생성합니다.

   1. **아웃바운드 규칙**의 경우 대상인 *privatesubnet1* 및 *privatesubnet2*로 향하는 TCP 포트 `0-65535`를 허용하는 **모든 TCP** 규칙을 생성합니다.

## RDS 콘솔, AWS CLI 또는 RDS API를 사용하여 수정합니다.
<a name="custom-sqlserver-multiaz.modify-saztomaz-afterprereqs"></a>

사전 조건을 완료한 후에는 RDS 콘솔, AWS CLI 또는 RDS API를 사용하여 RDS Custom for SQL Server DB 인스턴스를 단일 AZ에서 다중 AZ 배포로 수정할 수 있습니다.

### 콘솔
<a name="custom-sqlserver-multiaz.modify-saztomaz.Console"></a>

**RDS Custom for SQL Server 단일 AZ 배포를 다중 AZ 배포로 수정하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. Amazon RDS 콘솔에서 **데이터베이스**를 선택합니다.

   **데이터베이스** 창이 표시됩니다.

1. 수정하려는 RDS Custom for SQL Server DB 인스턴스를 선택합니다.

1. **작업**에서 **다중 AZ 배포로 변환**을 선택합니다.

1. **확인** 페이지에서 **즉시 적용**을 선택하여 변경 사항을 즉시 적용합니다. 이 옵션을 선택하면 다운타임이 발생하지 않지만 성능이 영향을 받을 수 있습니다. 다음 유지 관리 기간에 업데이트를 적용하도록 선택할 수도 있습니다. 자세한 내용은 [수정 예약 설정 사용](USER_ModifyInstance.ApplyImmediately.md) 섹션을 참조하세요.

1. **확인** 페이지에서 **다중 AZ로 변환**을 선택합니다.

### AWS CLI
<a name="custom-sqlserver-multiaz.modify-saztomaz.CLI"></a>

AWS CLI를 사용하여 다중 AZ DB 인스턴스 배포로 변환하려면 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 명령을 호출하고 `--multi-az` 옵션을 설정합니다. DB 인스턴스 식별자와 수정하려는 기타 옵션 값을 지정합니다. 각 옵션에 대한 자세한 내용은 [DB 인스턴스에 대한 설정](USER_ModifyInstance.Settings.md) 섹션을 참조하세요.

**Example**  
다음 코드는 `--multi-az` 옵션을 포함하여 `mycustomdbinstance`를 수정합니다. 변경 사항은 `--no-apply-immediately`를 사용하여 다음 유지 관리 기간에 적용됩니다. 변경 사항을 바로 적용하려면 `--apply-immediately`를 사용합니다. 자세한 내용은 [수정 예약 설정 사용](USER_ModifyInstance.ApplyImmediately.md) 섹션을 참조하세요.  
대상 LinuxmacOS, 또는Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier mycustomdbinstance \
    --multi-az \
    --no-apply-immediately
```
Windows의 경우:  

```
aws rds modify-db-instance ^
    --db-instance-identifier mycustomdbinstance ^
    --multi-az  \ ^
    --no-apply-immediately
```

### RDS API
<a name="custom-sqlserver-multiaz.modify-saztomaz.API"></a>

RDS API를 사용하여 다중 AZ DB 인스턴스 배포로 변환하려면 [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 작업을 호출하고 `MultiAZ` 파라미터를 true로 설정합니다.

# RDS Custom for SQL Server 다중 AZ 배포를 단일 AZ 배포로 수정하려면
<a name="custom-sqlserver-multiaz.modify-maztosaz"></a>

기존 RDS Custom for SQL Server DB 인스턴스를 다중 AZ 배포에서 단일 AZ 배포로 수정할 수 있습니다.

## 콘솔
<a name="custom-sqlserver-multiaz.modify-maztosaz.Console"></a>

**RDS Custom for SQL Server DB 인스턴스를 다중 AZ 배포에서 단일 AZ 배포로 수정할 수 있습니다.**

1. [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다.

1. Amazon RDS 콘솔에서 **데이터베이스**를 선택합니다.

   **데이터베이스** 창이 표시됩니다.

1. 수정하려는 RDS Custom for SQL Server DB 인스턴스를 선택합니다.

1. **다중 AZ 배포**의 경우 **No**(아니요)를 선택합니다.

1. **확인** 페이지에서 **즉시 적용**을 선택하여 변경 사항을 즉시 적용합니다. 이 옵션을 선택하면 다운타임이 발생하지 않지만 성능이 영향을 받을 수 있습니다. 다음 유지 관리 기간에 업데이트를 적용하도록 선택할 수도 있습니다. 자세한 내용은 [수정 예약 설정 사용](USER_ModifyInstance.ApplyImmediately.md) 단원을 참조하십시오.

1. **확인** 페이지에서 **DB 인스턴스 수정**을 선택합니다.

## AWS CLI
<a name="custom-sqlserver-multiaz.modify-maztosaz.CLI"></a>

AWS CLI를 사용하여 다중 AZ 배포를 단일 AZ 배포로 수정하려면 [modify-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) 명령을 호출하고 `--no-multi-az` 옵션을 포함합니다. DB 인스턴스 식별자와 수정하려는 기타 옵션 값을 지정합니다. 각 옵션에 대한 자세한 내용은 [DB 인스턴스에 대한 설정](USER_ModifyInstance.Settings.md) 단원을 참조하세요.

**Example**  
다음 코드는 `--no-multi-az` 옵션을 포함하여 `mycustomdbinstance`를 수정합니다. 변경 사항은 `--no-apply-immediately`를 사용하여 다음 유지 관리 기간에 적용됩니다. 변경 사항을 바로 적용하려면 `--apply-immediately`를 사용합니다. 자세한 내용은 [수정 예약 설정 사용](USER_ModifyInstance.ApplyImmediately.md) 단원을 참조하십시오.  
대상 LinuxmacOS, 또는Unix:  

```
aws rds modify-db-instance \
    --db-instance-identifier mycustomdbinstance \
    --no-multi-az  \
    --no-apply-immediately
```
Windows의 경우:  

```
aws rds modify-db-instance ^
    --db-instance-identifier mycustomdbinstance ^
    --no-multi-az \ ^
    --no-apply-immediately
```

## RDS API
<a name="custom-sqlserver-multiaz.modify-maztosaz.API"></a>

RDS API를 사용하여 다중 AZ 배포를 단일 AZ 배포로 수정하려면 [modify-db-instance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) 작업을 호출하고 `MultiAZ` 파라미터를 `false`로 설정합니다.

# RDS Custom for SQL Server 다중 AZ 배포에 대한 장애 조치 프로세스
<a name="custom-sqlserver-multiaz.failover"></a>

계획되거나 계획되지 않은 DB 인스턴스의 운영 중단으로 인해 인프라 장애가 발생한 경우, 다중 AZ를 설정하면 Amazon RDS는 자동으로 다른 가용 영역의 대기 복제본으로 전환됩니다. 장애 조치가 완료되는 데 소요되는 시간은 프라이머리 DB 인스턴스를 사용할 수 없게 된 시점의 데이터베이스 활동 및 기타 조건에 따라 달라집니다. 장애 조치에 소요되는 시간은 일반적으로 60\$1120초입니다. 그러나 트랜잭션의 규모가 크거나 복구 프로세스가 복잡한 경우 장애 조치에 소요되는 시간이 증가할 수 있습니다. 장애 조치가 완료되면 RDS 콘솔에 새 가용 영역이 표시되는 데 시간이 더 걸릴 수 있습니다.

**참고**  
장애 조치를 사용하면 DB 인스턴스를 재부팅할 때 장애 조치를 수동으로 강제 적용할 수 있습니다. DB 인스턴스 재부팅에 대한 자세한 내용은 [ DB 인스턴스 재부팅](USER_RebootInstance.md)을 참조하세요.

Amazon RDS는 자동으로 장애 조치를 취하여 관리자의 개입 없이 데이터베이스 작업을 신속하게 재개할 수 있도록 합니다. 다음 표에 설명된 조건 중 하나가 발생하면 기본 DB 인스턴스는 자동으로 예비 복제본으로 전환됩니다. 이 장애 조치 이유는 RDS 이벤트 로그에서 확인할 수 있습니다.


****  

| 장애 조치 이유 | 설명 | 
| --- | --- | 
| `The operating system for the RDS Custom for SQL Server Multi-AZ DB instance is being patched in an offline operation` | OS 패치 또는 보안 업데이트를 위한 유지 관리 기간 동안 장애 조치가 트리거되었습니다. 자세한 내용은 [DB 인스턴스 유지 관리](USER_UpgradeDBInstance.Maintenance.md) 단원을 참조하십시오. | 
| `The primary host of the RDS Custom for SQL Server Multi-AZ DB instance is unhealthy.` | 다중 AZ DB 인스턴스 배포에서 손상된 프라이머리 DB 인스턴스를 감지하여 장애 조치를 수행했습니다. | 
| `The primary host of the RDS Custom for SQL Server Multi-AZ DB instance is unreachable due to loss of network connectivity.` | RDS 모니터링이 기본 DB 인스턴스에 대한 네트워크 연결 실패를 감지하여 장애 조치를 트리거했습니다. | 
| `The RDS Custom for SQL Server Multi-AZ DB instance was modified by the customer.` | DB 인스턴스 수정 때문에 장애 조치가 트리거되었습니다. 자세한 내용은 [RDS Custom for SQL Server DB 인스턴스 수정](custom-managing.modify-sqlserver.md) 단원을 참조하십시오. | 
| `The storage volume of the primary host of the RDS Custom for SQL Server Multi-AZ DB instance experienced a failure.` | 다중 AZ DB 인스턴스 배포가 프라이머리 DB 인스턴스에서 스토리지 문제를 감지하여 장애 조치를 수행했습니다. | 
| `The user requested a failover of the RDS Custom for SQL Server Multi-AZ DB instance.` | RDS Custom for SQL Server 다중 AZ DB 인스턴스가 장애 조치로 인해 재부팅되었습니다. 자세한 내용은 [ DB 인스턴스 재부팅](USER_RebootInstance.md) 단원을 참조하십시오. | 
| `The RDS Custom for SQL Server Multi-AZ primary DB instance is busy or unresponsive.` | 기본 DB 인스턴스가 응답하지 않습니다. 다음 단계를 시도하는 것이 좋습니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/custom-sqlserver-multiaz.failover.html)  | 

다음 단계에 따라 다중 AZ DB 인스턴스가 장애 조치를 수행했는지 확인할 수 있습니다.
+ 장애 조치가 시작되었음을 이메일 또는 SMS로 사용자에게 알리도록 DB 이벤트 구독을 설정합니다. 이벤트에 대한 자세한 내용은 [Amazon RDS 이벤트 알림 작업](USER_Events.md) 단원을 참조하세요.
+ RDS 콘솔 또는 API 작업을 사용하여 DB 이벤트를 확인합니다.
+ RDS 콘솔, CLI 또는 API 작업을 사용하여 RDS Custom for SQL Server 다중 AZ DB 인스턴스 배포의 현재 상태를 확인합니다.

## RDS Custom for SQL Server 다중 AZ 배포를 사용하는 애플리케이션의 TTL(Time To Live) 설정
<a name="custom-sqlserver-multiaz.ttldns"></a>

장애 조치 메커니즘은 DB 인스턴스의 Domain Name System(DNS) 레코드가 예비 DB 인스턴스를 가리키도록 자동으로 변경합니다. 그 결과 DB 인스턴스의 기존 연결을 모두 재설정해야 합니다. DNS 캐시 TTL(Time-to-Live) 구성 값이 낮은지 확인하고, 애플리케이션이 오랜 시간 동안 DNS를 캐시하지 않는지 확인합니다. TTL 값이 높으면 장애 조치 후 애플리케이션이 DB 인스턴스에 빠르게 다시 연결되지 않을 수 있습니다.

# Amazon RDS Custom for SQL Server DB 인스턴스 백업 및 복원
<a name="custom-backup-sqlserver"></a>

Amazon RDS와 마찬가지로 RDS Custom은 백업 보존이 실행되면 RDS Custom for SQL Server DB 인스턴스의 자동 백업을 생성하고 저장합니다. 또한, 수동으로 DB 인스턴스를 백업할 수도 있습니다. 자동 백업은 스냅샷 백업과 트랜잭션 로그 백업으로 구성됩니다. 스냅샷 백업은 지정된 백업 기간 동안 DB 인스턴스의 전체 스토리지 볼륨에 대해 수행됩니다. PITR 대상 데이터베이스의 트랜잭션 로그 백업은 정기적으로 수행됩니다. RDS Custom은 지정한 백업 보존 기간에 따라 DB 인스턴스의 자동 백업을 저장합니다. 자동 백업을 사용하여 DB 인스턴스를 백업 보존 기간 내의 특정 시점으로 복구할 수 있습니다.

스냅샷을 수동으로 백업할 수도 있습니다. 언제든지 이러한 스냅샷 백업에서 새 DB 인스턴스를 생성할 수 있습니다. DB 스냅샷 수동 생성에 대한 자세한 내용은 [RDS Custom for SQL Server 스냅샷 생성](custom-backup-sqlserver.creating.md) 섹션을 참조하세요.

스냅샷 백업은 운영상 전체 백업으로 제공되지만, 증분 스토리지 사용에 대해서만 요금이 청구됩니다. RDS Custom DB 인스턴스의 첫 번째 스냅샷에는 전체 DB 인스턴스의 데이터가 포함되며, 동일한 데이터베이스의 후속 스냅샷은 증분식이며, 마지막 스냅샷 이후 변경된 데이터만 저장됩니다.

**Topics**
+ [RDS Custom for SQL Server 스냅샷 생성](custom-backup-sqlserver.creating.md)
+ [RDS Custom for SQL Server DB 스냅샷에서 복원](custom-backup-sqlserver.restoring.md)
+ [RDS Custom for SQL Server 인스턴스를 특정 시점으로 복원](custom-backup.pitr-sqs.md)
+ [RDS Custom for SQL Server 스냅샷 삭제](custom-backup-sqlserver.deleting.md)
+ [RDS Custom for SQL Server 자동 백업 삭제](custom-backup-sqlserver.deleting-backups.md)

# RDS Custom for SQL Server 스냅샷 생성
<a name="custom-backup-sqlserver.creating"></a>

RDS Custom for SQL Server는 DB 인스턴스의 스토리지 볼륨 스냅샷을 생성하여 개별 데이터베이스뿐만 아니라 전체 DB 인스턴스를 백업합니다. 스냅샷을 생성할 때 백업할 RDS Custom for SQL Server DB 인스턴스를 지정하고, 나중에 복원할 수 있도록 스냅샷에 이름을 지정합니다.

스냅샷을 생성할 때 RDS Custom for SQL Server는 `(D:)` 볼륨에 대한 Amazon EBS 스냅샷을 생성하며, 이는 DB 인스턴스에 연결된 데이터베이스 볼륨입니다. 스냅샷을 특정 DB 인스턴스에 쉽게 연결할 수 있도록 `DBSnapshotIdentifier`, `DbiResourceId` 및 `VolumeType`으로 태그가 지정됩니다.

DB 스냅샷을 생성하면 I/O가 잠시 중단됩니다. 이러한 일시 중단은 DB 인스턴스의 크기와 클래스에 따라 몇 초에서 몇 분까지 지속될 수 있습니다. 스냅샷 생성 시간은 데이터베이스의 총 수와 크기에 따라 달라집니다. 시점 복구(PITR) 작업에 사용할 수 있는 데이터베이스 수에 대한 자세한 내용은 [인스턴스 클래스 유형별 PITR 대상 데이터베이스 수](custom-backup.pitr-sqs.md#custom-backup.pitr.sqlserver.eligiblecountperinstance) 섹션을 참조하세요.

스냅샷에는 전체 스토리지 볼륨이 포함되므로 임시 파일과 같은 파일의 크기도 스냅샷 생성 시간에 영향을 미칩니다. 스냅샷을 생성하는 방법에 대한 자세한 내용은 [Amazon RDS의 단일 AZ DB 인스턴스에 대한 DB 스냅샷 생성](USER_CreateSnapshot.md) 섹션을 참조하세요.

콘솔 또는 AWS CLI를 사용하여 RDS Custom for SQL Server 스냅샷을 생성할 수 있습니다.

## 콘솔
<a name="USER_CreateSnapshot-sqlserver.CON"></a>

**RDS Custom 스냅샷을 생성하는 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

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

1. RDS Custom DB 인스턴스 목록에서 스냅샷을 생성할 인스턴스를 선택합니다.

1. **작업**에서 **스냅샷 만들기**를 선택합니다.

   [**DB 스냅샷 생성(Take DB Snapshot)**] 창이 나타납니다.

1. **스냅샷 이름(Snapshot name)**에 스냅샷 이름을 입력합니다.

1. [**스냅샷 생성(Take Snapshot)**]을 선택합니다.

## AWS CLI
<a name="USER_CreateSnapshot-sqlserver.CLI"></a>

[create-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-snapshot.html) AWS CLI 명령을 사용하여 RDS Custom DB 인스턴스의 스냅샷을 생성합니다.

다음과 같은 옵션을 지정할 수 있습니다.
+ `--db-instance-identifier` - 백업할 RDS Custom DB 인스턴스를 식별합니다.
+ `--db-snapshot-identifier` - 나중에 복원할 수 있도록 RDS Custom 스냅샷의 이름을 지정합니다.

이 예제에서는 `my-custom-instance`라는 RDS Custom DB 인스턴스에 대해 *`my-custom-snapshot`*이라는 DB 스냅샷을 생성합니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
1. aws rds create-db-snapshot \
2.     --db-instance-identifier my-custom-instance \
3.     --db-snapshot-identifier my-custom-snapshot
```
Windows의 경우:  

```
1. aws rds create-db-snapshot ^
2.     --db-instance-identifier my-custom-instance ^
3.     --db-snapshot-identifier my-custom-snapshot
```

# RDS Custom for SQL Server DB 스냅샷에서 복원
<a name="custom-backup-sqlserver.restoring"></a>

RDS Custom for SQL Server DB 인스턴스를 복원하는 경우 DB 스냅샷의 이름과 새로운 인스턴스의 이름을 입력합니다. 스냅샷에서 기존 RDS Custom DB 인스턴스로 복원할 수 없습니다. 복원 시 새로운 RDS Custom for SQL Server DB 인스턴스가 생성됩니다.

스냅샷에서 복원하면 스토리지 볼륨이 스냅샷을 생성한 시점으로 복원됩니다. 여기에는 `(D:)` 볼륨에 있던 모든 데이터베이스와 기타 파일이 포함됩니다.

## 콘솔
<a name="custom-backup-sqlserver.restoring.console"></a>

**DB 스냅샷에서 RDS Custom DB 인스턴스를 복원하는 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 [**Snapshots**]를 선택합니다.

1. 복원 원본으로 사용할 DB 스냅샷을 선택합니다.

1. **작업**에서 **스냅샷 복원**을 선택합니다.

1. **DB 인스턴스 복원(Restore DB instance)** 페이지의 **DB 인스턴스 식별자(DB instance identifier)**에 복원된 RDS Custom DB 인스턴스의 이름을 입력합니다.

1. **DB 인스턴스 복원**을 선택합니다.

## AWS CLI
<a name="custom-backup-sqlserver.restoring.CLI"></a>

[ restore-db-instance-from-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-from-db-snapshot.html) AWS CLI 명령을 사용하여 RDS Custom DB 스냅샷을 복원합니다.

복원하려는 스냅샷이 프라이빗 DB 인스턴스용인 경우 `db-subnet-group-name` 및 `no-publicly-accessible`을 모두 올바르게 지정해야 합니다. 그렇지 않으면 DB 인스턴스의 기본값에 공개적으로 액세스할 수 있게 됩니다. 다음 옵션이 필요합니다.
+ `db-snapshot-identifier` - 복구할 스냅샷을 식별합니다.
+ `db-instance-identifier` - DB 스냅샷에서 생성할 RDS Custom DB 인스턴스의 이름을 지정합니다.
+ `custom-iam-instance-profile` - RDS Custom for Oracle DB 인스턴스의 기본 Amazon EC2 인스턴스와 연결된 인스턴스 프로필을 지정합니다.

다음 코드는 `my-custom-instance`에 대한 `my-custom-snapshot`이라는 스냅샷을 복원합니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
aws rds restore-db-instance-from-db-snapshot \
  --db-snapshot-identifier my-custom-snapshot \
  --db-instance-identifier my-custom-instance \
  --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance \
  --no-publicly-accessible
```
Windows의 경우:  

```
aws rds restore-db-instance-from-db-snapshot ^
  --db-snapshot-identifier my-custom-snapshot ^
  --db-instance-identifier my-custom-instance ^
  --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance ^
  --no-publicly-accessible
```

# RDS Custom for SQL Server 인스턴스를 특정 시점으로 복원
<a name="custom-backup.pitr-sqs"></a>

DB 인스턴스를 특정 시점(PITR)으로 복원하여 새로운 DB 인스턴스를 생성할 수 있습니다. PITR을 지원하려면 DB 인스턴스에 백업 보존 기능이 활성화되어 있어야 합니다.

RDS Custom for SQL Server DB 인스턴스의 가장 빠른 복원 가능 시간은 여러 요소에 따라 달라지지만, 일반적으로 현재 시간에서 5분 이내입니다. DB 인스턴스의 최근 복원 가능 시간을 확인하려면 AWS CLI[describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) 명령을 사용한 후 DB 인스턴스의 `LatestRestorableTime` 필드에 반환되는 값을 살펴봅니다. Amazon RDS 콘솔에서 각 DB 인스턴스의 복원 가능한 최신 시간을 보려면 [ **자동 백업**을 선택합니다.

백업 보존 기간 중 어느 특정 시점으로든 복원할 수 있습니다. 각 DB 인스턴스의 복원 가능한 가장 빠른 시간을 보려면 Amazon RDS 콘솔에서 **자동 백업**을 선택합니다.

PITR에 대한 일반적인 정보는 [Amazon RDS에서 DB 인스턴스를 지정된 시간으로 복원](USER_PIT.md) 섹션을 참조하세요.

**Topics**
+ [RDS Custom for SQL Server에 대한 PITR 고려 사항](#custom-backup.pitr.sqlserver)
+ [인스턴스 클래스 유형별 PITR 대상 데이터베이스 수](#custom-backup.pitr.sqlserver.eligiblecountperinstance)
+ [데이터베이스를 PITR에 포함되지 않도록 설정](#custom-backup.pitr.sqlserver.ineligible)
+ [Amazon S3의 트랜잭션 로그](#custom-backup.pitr.sqlserver.tlogs)
+ [AWS Management Console, AWS CLI 또는 RDS API를 사용하여 PITR 복원합니다.](#custom-backup.pitr-sqs-concli)

## RDS Custom for SQL Server에 대한 PITR 고려 사항
<a name="custom-backup.pitr.sqlserver"></a>

RDS Custom for SQL Server에서 PITR은 다음과 같은 중요한 면에서 Amazon RDS의 PITR과 다릅니다.
+ PITR은 DB 인스턴스의 데이터베이스만 복원합니다. C: 드라이브의 운영 체제 또는 파일은 복원되지 않습니다.
+ RDS Custom for SQL Server DB 인스턴스의 경우 데이터베이스가 자동으로 백업되며 다음 조건에서만 PITR을 사용할 수 있습니다.
  + 데이터베이스가 온라인 상태입니다.
  + 복구 모델이 `FULL`로 설정되어 있습니다.
  + 쓰기가 가능합니다.
  + D: 드라이브에 실존 파일이 있습니다.
  + `rds_pitr_blocked_databases` 테이블에 등록되어 있지 않습니다. 자세한 내용은 [데이터베이스를 PITR에 포함되지 않도록 설정](#custom-backup.pitr.sqlserver.ineligible) 섹션을 참조하세요.
+ PITR 대상 데이터베이스는 데이터베이스 ID의 순서에 따라 결정됩니다. RDS Custom for SQL Server는 DB 인스턴스당 최대 5,000개의 데이터베이스를 허용합니다. 그러나 RDS Custom for SQL Server DB 인스턴스에 대해 PITR 작업을 통해 복원되는 최대 데이터베이스 수는 인스턴스 클래스 유형에 따라 달라집니다. 자세한 내용은 [인스턴스 클래스 유형별 PITR 대상 데이터베이스 수](#custom-backup.pitr.sqlserver.eligiblecountperinstance) 섹션을 참조하세요.

  PITR에 포함되지 않는 다른 데이터베이스는 PITR에 사용되는 자동 스냅샷 백업을 비롯하여 DB 스냅샷에서 복원할 수 있습니다.
+ 새로운 데이터베이스를 추가하거나, 데이터베이스 이름을 바꾸거나, PITR 대상 데이터베이스를 복원하면 DB 인스턴스의 스냅샷이 시작됩니다.
+ PITR 대상인 최대 데이터베이스 수는 데이터베이스 인스턴스가 규모 조정 컴퓨팅 작업을 거칠 때 대상 인스턴스 클래스 유형에 따라 달라집니다. 인스턴스의 더 많은 데이터베이스가 PITR에 적합하도록 인스턴스를 확장하면 새 스냅샷이 생성됩니다.
+ 복원된 데이터베이스의 이름은 소스 DB 인스턴스와 동일합니다. 다른 이름을 지정할 수 없습니다.
+ `AWSRDSCustomSQLServerIamRolePolicy`는 다른 AWS 서비스에 대한 액세스가 필요합니다. 자세한 내용은 [AWSRDSCustomSQLServerInstanceRole에 액세스 정책 추가](custom-setup-sqlserver.md#custom-setup-sqlserver.iam.add-policy) 섹션을 참조하세요.
+ RDS Custom for SQL Server에는 표준 시간대 변경이 지원되지 않습니다. 운영 체제 또는 DB 인스턴스 시간대를 변경하면 PITR(및 기타 자동화)이 작동하지 않습니다.

## 인스턴스 클래스 유형별 PITR 대상 데이터베이스 수
<a name="custom-backup.pitr.sqlserver.eligiblecountperinstance"></a>

다음 표에는 인스턴스 클래스 유형에 따라 PITR에 사용할 수 있는 최대 데이터베이스 수가 나와 있습니다.


| 인스턴스 클래스 유형 | PITR에 사용할 수 있는 최대 데이터베이스 수 | 
| --- | --- | 
| db.\$1.large | 100 | 
| db.\$1.xlarge to db.\$1.2xlarge | 150 | 
| db.\$1.4xlarge to db.\$1.8xlarge | 300 | 
| db.\$1.12xlarge to db.\$1.16xlarge | 600 | 
| db.\$1.24xlarge, db.\$132xlarge | 1000 | 

`*` *서로 다른 인스턴스 클래스 유형을 나타냅니다.*

DB 인스턴스에서 PITR에 사용할 수 있는 최대 데이터베이스 수는 인스턴스 클래스 유형에 따라 다릅니다. RDS Custom for SQL Server에서 지원하는 최대 인스턴스 클래스 유형의 경우 100개부터 1,000개까지 다양합니다. SQL 서버 시스템 데이터베이스`(master, model, msdb, tempdb)`는 이 제한에 포함되지 않습니다. 대상 인스턴스 클래스 유형에 따라 DB 인스턴스를 확장하거나 축소할 때 RDS Custom은 PITR에 사용할 수 있는 데이터베이스 수를 자동으로 업데이트합니다. RDS Custom for SQL Server는 DB 인스턴스에서 PITR에 사용할 수 있는 최대 데이터베이스 수가 변경될 때 `RDS-EVENT-0352`를 전송합니다. 자세한 내용은 [사용자 지정 엔진 버전 이벤트](USER_Events.Messages.md#USER_Events.Messages.CEV) 섹션을 참조하세요.

**참고**  
100개 이상의 데이터베이스에 대한 PITR 지원은 2023년 8월 26일 이후에 생성된 DB 인스턴스에서만 사용할 수 있습니다. 2023년 8월 26일 이전에 생성된 인스턴스의 경우 PITR에 사용할 수 있는 최대 데이터베이스 수는 인스턴스 클래스에 관계없이 100개입니다. 2023년 8월 26일 이전에 생성된 DB 인스턴스의 데이터베이스 100개 이상에 대해 PITR 지원을 활성화하려면 다음 작업을 수행할 수 있습니다.  
DB 엔진 버전을 15.00.4322.2.v1 이상으로 업그레이드

PITR 작업 중에 RDS Custom은 복원 시 소스 DB 인스턴스에서 PITR에 속했던 모든 데이터베이스를 복원합니다. 대상 DB 인스턴스가 복원 작업을 완료하고 백업 보존을 활성화하면 대상 DB 인스턴스에서 PITR에 사용할 수 있는 최대 데이터베이스 수를 기준으로 DB 인스턴스가 백업을 시작합니다.

예를 들어, DB 인스턴스가 200개의 데이터베이스가 있는 `db.*.xlarge`에서 실행되는 경우는 다음과 같습니다.

1. RDS Custom for SQL Server는 PITR 백업을 위해 데이터베이스 ID를 기준으로 정렬된 처음 150개의 데이터베이스를 선택합니다.

1. db.\$1.4xlarge까지 확장하도록 인스턴스를 수정합니다.

1. 컴퓨팅 확장 작업이 완료되면 RDS Custom for SQL Server는 데이터베이스 ID를 기준으로 정렬된 처음 300개의 데이터베이스를 PITR 백업용으로 선택합니다. 이제 PITR 요구 사항 조건을 충족하는 200개 데이터베이스 각각이 PITR을 사용할 수 있습니다.

1. 이제 다시 db.\$1.xlarge로 인스턴스 규모를 축소합니다.

1. 컴퓨팅 축소 작업이 완료되면 RDS Custom for SQL Server는 데이터베이스 ID를 기준으로 정렬된 처음 150개의 데이터베이스를 PITR 백업용으로 다시 선택합니다.

## 데이터베이스를 PITR에 포함되지 않도록 설정
<a name="custom-backup.pitr.sqlserver.ineligible"></a>

PITR에서 개별 데이터베이스를 제외하도록 선택할 수 있습니다. 이렇게 하려면 `database_id` 값을 `rds_pitr_blocked_databases` 테이블에 넣으면 됩니다. 다음 SQL 스크립트를 사용하여 테이블을 생성합니다.

**rds\$1pitr\$1blocked\$1databases 테이블을 생성하는 방법**
+ 다음 SQL 스크립트를 실행합니다.

  ```
  create table msdb..rds_pitr_blocked_databases
  (
  database_id INT NOT NULL,
  database_name SYSNAME NOT NULL,
  db_entry_updated_date datetime NOT NULL DEFAULT GETDATE(),
  db_entry_updated_by SYSNAME NOT NULL DEFAULT CURRENT_USER,
  PRIMARY KEY (database_id)
  );
  ```

대상 데이터베이스 및 대상이 아닌 데이터베이스 목록은 Amazon S3 버킷 `do-not-delete-rds-custom-$ACCOUNT_ID-$REGION-unique_identifier`의 `RDSCustomForSQLServer/Instances/DB_instance_resource_ID/TransactionLogMetadata` 디렉터리에 있는 `RI.End` 파일을 참조하세요. `RI.End` 파일에 대한 자세한 내용은 [Amazon S3의 트랜잭션 로그](#custom-backup.pitr.sqlserver.tlogs)를 참조하세요.

다음 SQL 스크립트를 사용하여 PITR 대상인 데이터베이스 목록을 확인할 수도 있습니다. `@limit` 변수를 인스턴스 클래스의 PITR에 사용할 수 있는 최대 데이터베이스 수로 설정합니다. 자세한 내용은 [인스턴스 클래스 유형별 PITR 대상 데이터베이스 수](#custom-backup.pitr.sqlserver.eligiblecountperinstance) 섹션을 참조하세요.

**DB 인스턴스 클래스의 PITR 대상인 데이터베이스 목록을 확인하려면**
+ 다음 SQL 스크립트를 실행합니다.

  ```
  DECLARE @Limit INT;
  SET @Limit = (insert-database-instance-limit-here);
  
  USE msdb;
  IF (EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'dbo' AND  TABLE_NAME = 'rds_pitr_blocked_databases'))
      WITH TABLE0 AS (
          SELECT hdrs.database_id as DatabaseId, sdb.name as DatabaseName, 'ALWAYS_ON_NOT_WRITABLE_REPLICA' as Reason, NULL as DatabaseNameOnPitrTable
          FROM sys.dm_hadr_database_replica_states hdrs
          INNER JOIN sys.databases sdb ON sdb.database_id = hdrs.database_id
          WHERE (hdrs.is_local = 1 AND hdrs.is_primary_replica = 0) 
          OR (sys.fn_hadr_is_primary_replica (sdb.name) = 1 AND DATABASEPROPERTYEX (sdb.name, 'Updateability') = 'READ_ONLY')
      ),
      TABLE1 as (
              SELECT dbs.database_id as DatabaseId, sysdbs.name as DatabaseName, 'OPTOUT' as Reason,
              CASE WHEN dbs.database_name = sysdbs.name THEN NULL ELSE dbs.database_name END AS DatabaseNameOnPitrTable
              FROM msdb.dbo.rds_pitr_blocked_databases dbs
              INNER JOIN sys.databases sysdbs ON dbs.database_id = sysdbs.database_id
              WHERE sysdbs.database_id > 4
              ),
      TABLE2 as (
              SELECT
              db.name AS DatabaseName,
              db.create_date AS CreateDate,
              db.state_desc AS DatabaseState,
              db.database_id AS DatabaseId,
              rs.database_guid AS DatabaseGuid,
              rs.last_log_backup_lsn AS LastLogBackupLSN,
              rs.recovery_fork_guid RecoveryForkGuid,
              rs.first_recovery_fork_guid AS FirstRecoveryForkGuid,
              db.recovery_model_desc AS RecoveryModel,
              db.is_auto_close_on AS IsAutoClose,
              db.is_read_only as IsReadOnly,
              NEWID() as FileName,
              CASE WHEN(db.state_desc = 'ONLINE'
                      AND db.recovery_model_desc != 'SIMPLE' 
                      AND((db.is_auto_close_on = 0 and db.collation_name IS NOT NULL) OR db.is_auto_close_on = 1)) 
                      AND db.is_read_only != 1
                      AND db.user_access = 0
                      AND db.source_database_id IS NULL
                      AND db.is_in_standby != 1
                      THEN 1 ELSE 0 END AS IsPartOfSnapshot,
              CASE WHEN db.source_database_id IS NULL THEN 0 ELSE 1 END AS IsDatabaseSnapshot
              FROM sys.databases db
              INNER JOIN sys.database_recovery_status rs
              ON db.database_id = rs.database_id
              WHERE DB_NAME(db.database_id) NOT IN('tempdb') AND
              db.database_id NOT IN (SELECT DISTINCT DatabaseId FROM TABLE1) AND
              db.database_id NOT IN (SELECT DISTINCT DatabaseId FROM TABLE0)
          ),
          TABLE3 as(
              Select @Limit+count(DatabaseName) as TotalNumberOfDatabases from TABLE2 where TABLE2.IsPartOfSnapshot=1 and DatabaseName in ('master','model','msdb')
          )
          SELECT TOP(SELECT TotalNumberOfDatabases from TABLE3)  DatabaseName,CreateDate,DatabaseState,DatabaseId from TABLE2 where TABLE2.IsPartOfSnapshot=1
          ORDER BY TABLE2.DatabaseID ASC
  ELSE
      WITH TABLE0 AS (
          SELECT hdrs.database_id as DatabaseId, sdb.name as DatabaseName, 'ALWAYS_ON_NOT_WRITABLE_REPLICA' as Reason, NULL as DatabaseNameOnPitrTable
          FROM sys.dm_hadr_database_replica_states hdrs
          INNER JOIN sys.databases sdb ON sdb.database_id = hdrs.database_id
          WHERE (hdrs.is_local = 1 AND hdrs.is_primary_replica = 0) 
          OR (sys.fn_hadr_is_primary_replica (sdb.name) = 1 AND DATABASEPROPERTYEX (sdb.name, 'Updateability') = 'READ_ONLY')
      ),
      TABLE1 as (
              SELECT
              db.name AS DatabaseName,
              db.create_date AS CreateDate,
              db.state_desc AS DatabaseState,
              db.database_id AS DatabaseId,
              rs.database_guid AS DatabaseGuid,
              rs.last_log_backup_lsn AS LastLogBackupLSN,
              rs.recovery_fork_guid RecoveryForkGuid,
              rs.first_recovery_fork_guid AS FirstRecoveryForkGuid,
              db.recovery_model_desc AS RecoveryModel,
              db.is_auto_close_on AS IsAutoClose,
              db.is_read_only as IsReadOnly,
              NEWID() as FileName,
              CASE WHEN(db.state_desc = 'ONLINE'
                      AND db.recovery_model_desc != 'SIMPLE' 
                      AND((db.is_auto_close_on = 0 and db.collation_name IS NOT NULL) OR db.is_auto_close_on = 1)) 
                      AND db.is_read_only != 1
                      AND db.user_access = 0
                      AND db.source_database_id IS NULL
                      AND db.is_in_standby != 1
                      THEN 1 ELSE 0 END AS IsPartOfSnapshot,
              CASE WHEN db.source_database_id IS NULL THEN 0 ELSE 1 END AS IsDatabaseSnapshot
              FROM sys.databases db
              INNER JOIN sys.database_recovery_status rs
              ON db.database_id = rs.database_id
              WHERE DB_NAME(db.database_id) NOT IN('tempdb') AND
              db.database_id NOT IN (SELECT DISTINCT DatabaseId FROM TABLE0)
          ),
          TABLE2 as(
              SELECT @Limit+count(DatabaseName) as TotalNumberOfDatabases from TABLE1 where TABLE1.IsPartOfSnapshot=1 and DatabaseName in ('master','model','msdb')
          )
          select top(select TotalNumberOfDatabases from TABLE2)  DatabaseName,CreateDate,DatabaseState,DatabaseId from TABLE1 where TABLE1.IsPartOfSnapshot=1
          ORDER BY TABLE1.DatabaseID ASC
  ```

**참고**  
심볼 링크만 있는 데이터베이스도 PITR 작업 대상인 데이터베이스에서 제외됩니다. 위 쿼리는 이 기준에 따라 필터링되지 않습니다.

## Amazon S3의 트랜잭션 로그
<a name="custom-backup.pitr.sqlserver.tlogs"></a>

백업 보존 기간에 따라 RDS Custom for SQL Server DB 인스턴스에 대한 트랜잭션 로그가 자동으로 추출되어 Amazon S3에 업로드되는지 여부가 결정됩니다. 0이 아닌 값은 자동 백업이 생성되고 RDS Custom 에이전트가 트랜잭션 로그를 5분마다 S3에 업로드함을 의미합니다.

S3의 트랜잭션 로그 파일은 DB 인스턴스를 생성할 때 입력한 AWS KMS key를 사용하여 유후 상태로 암호화됩니다. 자세한 내용은 *Amazon Simple Storage Service 사용 설명서*의 [서버 측 암호화를 사용하여 데이터 보호](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html)를 참조하세요.

각 데이터베이스의 트랜잭션 로그는 `do-not-delete-rds-custom-$ACCOUNT_ID-$REGION-unique_identifier`라는 이름이 지정된 S3 버킷에 업로드됩니다. S3 버킷의 `RDSCustomForSQLServer/Instances/DB_instance_resource_ID` 디렉터리에는 다음 두 개의 하위 디렉터리가 있습니다.
+ `TransactionLogs` - 각 데이터베이스 및 해당 메타데이터에 대한 트랜잭션 로그를 포함합니다.

  트랜잭션 로그 파일 이름은 `yyyyMMddHHmm.database_id.timestamp`와 같은 패턴을 따릅니다.

  ```
  202110202230.11.1634769287
  ```

  `_metadata`라는 접미사가 있는 동일한 파일 이름에는 로그 시퀀스 번호, 데이터베이스 이름 및 `RdsChunkCount`와 같은 트랜잭션 로그에 대한 정보가 포함되어 있습니다. `RdsChunkCount`는 단일 트랜잭션 로그 파일을 나타내는 실제 파일 수를 결정합니다. 트랜잭션 로그 파일의 물리적 청크를 의미하는 접미사 `_0001`, `_0002` 등이 있는 파일이 표시될 수 있습니다. 청크된 트랜잭션 로그 파일을 사용하려면 청크를 다운로드한 후 병합해야 합니다.

  다음과 같은 파일이 있는 경우를 생각해 봅니다.
  + `202110202230.11.1634769287`
  + ` 202110202230.11.1634769287_0001`
  + ` 202110202230.11.1634769287_0002 `
  + ` 202110202230.11.1634769287_metadata`

  `RdsChunkCount`은 `3`입니다. 파일 병합 순서는 `202110202230.11.1634769287`, ` 202110202230.11.1634769287_0001`, `202110202230.11.1634769287_0002`입니다.
+ `TransactionLogMetadata` - 트랜잭션 로그 추출의 각 반복에 대한 메타데이터 정보를 포함합니다.

  `RI.End` 파일에는 트랜잭션 로그가 추출된 모든 데이터베이스 및 존재하지만 트랜잭션 로그가 추출되지 않은 모든 데이터베이스에 대한 정보가 들어 있습니다. 예를 들어, `RI.End` 파일 이름은 `yyyyMMddHHmm.RI.End.timestamp` 패턴을 따릅니다.

  ```
  202110202230.RI.End.1634769281
  ```

## AWS Management Console, AWS CLI 또는 RDS API를 사용하여 PITR 복원합니다.
<a name="custom-backup.pitr-sqs-concli"></a>

AWS Management Console, AWS CLI 또는 RDS API를 사용하여 RDS Custom for SQL Server DB 인스턴스를 특정 시점으로 복원할 수 있습니다.

### 콘솔
<a name="custom-backup-sqs.pitr2.CON"></a>

**RDS Custom DB 인스턴스를 지정된 시간으로 복원하는 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **자동 백업(Automated backups)**을 선택합니다.

1. 복원하려는 RDS Custom DB 인스턴스를 선택합니다.

1. **작업**에서 **특정 시점으로 복구**를 선택합니다.

   **특정 시점으로 복구** 창이 나타납니다.

1. **최근 복원 가능 시간**을 선택하여 가능한 최근 시간으로 복원하거나, **사용자 지정**을 선택하여 시간을 선택합니다.

   **사용자 지정(Custom)**을 선택한 경우 인스턴스를 복원하려는 날짜와 시간을 입력합니다.

   시간은 현지 시간대로 표시됩니다. 즉, 협정 세계시(UTC)에서 오프셋으로 표시됩니다. 예를 들어 UTC-5는 동부 표준시/하절기 중부 표준시입니다.

1. **DB 인스턴스 식별자(DB instance identifier)**에는 복원된 대상 RDS Custom DB 인스턴스의 이름을 입력합니다. 이름은 고유해야 합니다.

1. 필요에 따라 DB 인스턴스 클래스와 같은 기타 옵션을 선택합니다.

1. **특정 시점으로 복구**를 선택합니다.

### AWS CLI
<a name="custom-backup-sqs.pitr2.CLI"></a>

새로운 RDS Custom DB 인스턴스를 생성하려면 [restore-db-instance-to-point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-instance-to-point-in-time.html) AWS CLI 명령을 사용하여 DB 인스턴스를 지정된 시간으로 복원합니다.

다음 옵션 중 하나를 사용하여 복원 원본으로 사용할 백업을 지정합니다.
+ `--source-db-instance-identifier mysourcedbinstance`
+ `--source-dbi-resource-id dbinstanceresourceID`
+ `--source-db-instance-automated-backups-arn backupARN`

옵션은 `custom-iam-instance-profile` 필수입니다.

다음 예제는 지정된 시간을 기준으로 `my-custom-db-instance`를 `my-restored-custom-db-instance`라는 새로운 DB 인스턴스로 복원합니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
1. aws rds restore-db-instance-to-point-in-time \
2.     --source-db-instance-identifier my-custom-db-instance\
3.     --target-db-instance-identifier my-restored-custom-db-instance \
4.     --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance \
5.     --restore-time 2022-10-14T23:45:00.000Z
```
Windows의 경우:  

```
1. aws rds restore-db-instance-to-point-in-time ^
2.     --source-db-instance-identifier my-custom-db-instance ^
3.     --target-db-instance-identifier my-restored-custom-db-instance ^
4.     --custom-iam-instance-profile AWSRDSCustomInstanceProfileForRdsCustomInstance ^
5.     --restore-time 2022-10-14T23:45:00.000Z
```

# RDS Custom for SQL Server 스냅샷 삭제
<a name="custom-backup-sqlserver.deleting"></a>

RDS Custom for SQL Server에서 관리하는 DB 스냅샷이 더 이상 필요하지 않으면 삭제할 수 있습니다. Amazon RDS와 RDS Custom DB 인스턴스의 삭제 절차는 동일합니다.

바이너리 및 루트 볼륨에 대한 Amazon EBS 스냅샷은 계정에서 실행 중인 일부 인스턴스 또는 다른 RDS Custom for SQL Server 스냅샷에 연결될 수 있어 계정에 더 오래 남아 있습니다. 이러한 EBS 스냅샷은 기존 RDS Custom for SQL Server 리소스(DB 인스턴스 또는 백업)와 더 이상 관련이 없는 경우 자동으로 삭제됩니다.

## 콘솔
<a name="USER_DeleteSnapshot-sqlserver.CON"></a>

**RDS Custom DB 인스턴스의 스냅샷을 삭제하는 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 [**Snapshots**]를 선택합니다.

1. 삭제하고 싶은 DB 스냅샷을 선택합니다.

1. **작업(Actions)**에서 **스냅샷 삭제(Delete snapshot)**를 선택합니다.

1. 확인 페이지에서 **삭제**를 선택합니다.

## AWS CLI
<a name="USER_DeleteSnapshot-sqlserver.CLI"></a>

RDS Custom 스냅샷을 삭제하려면 AWS CLI 명령 [delete-db-snapshot](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-snapshot.html)을 사용합니다.

다음 옵션이 필요합니다.
+ `--db-snapshot-identifier` - 삭제할 스냅샷입니다.

다음 예제에서는 `my-custom-snapshot` DB 스냅샷을 삭제합니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
1. aws rds delete-db-snapshot \  
2.   --db-snapshot-identifier my-custom-snapshot
```
Windows의 경우:  

```
1. aws rds delete-db-snapshot ^
2.   --db-snapshot-identifier my-custom-snapshot
```

# RDS Custom for SQL Server 자동 백업 삭제
<a name="custom-backup-sqlserver.deleting-backups"></a>

보관된 RDS Custom for SQL Server 자동 백업이 더 이상 필요하지 않으면 삭제할 수 있습니다. 절차는 Amazon RDS 백업을 삭제하는 절차와 동일합니다.

## 콘솔
<a name="USER_WorkingWithAutomatedBackups-sqlserver-Deleting.CON"></a>

**보관된 자동 백업을 삭제하려면**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 **자동 백업(Automated backups)**을 선택합니다.

1. **Retained(보관됨)**를 선택합니다.

1. 삭제하려는 보관된 자동 백업을 선택합니다.

1. [** Actions**]에 대해 [**Delete**]를 선택합니다.

1. 확인 페이지에서 **delete me**를 입력하고 **삭제**를 선택합니다.

## AWS CLI
<a name="USER_WorkingWithAutomatedBackups-sqlserver-Deleting.CLI"></a>

[delete-db-instance-automated-backup](https://docs.aws.amazon.com/cli/latest/reference/rds/delete-db-instance-automated-backup.html)이라는 AWS CLI 명령을 사용하여 보관된 자동 백업을 삭제할 수 있습니다.

다음 옵션을 사용하여 보관된 자동 백업을 삭제할 수 있습니다.
+ `--dbi-resource-id` - 소스 RDS Custom DB 인스턴스의 리소스 식별자입니다.

  보관된 자동 백업의 소스 DB 인스턴스에 대한 리소스 식별자는 AWS CLI 명령 [describe-db-instance-automated-backups](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instance-automated-backups.html)를 사용하여 찾을 수 있습니다.

다음 예시에서는 소스 DB 인스턴스 리소스 식별자가 `custom-db-123ABCEXAMPLE`인 보관된 자동 백업을 삭제합니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
1. aws rds delete-db-instance-automated-backup \
2.     --dbi-resource-id custom-db-123ABCEXAMPLE
```
Windows의 경우:  

```
1. aws rds delete-db-instance-automated-backup ^
2.     --dbi-resource-id custom-db-123ABCEXAMPLE
```

# Amazon RDS Custom for SQL Server DB 스냅샷 복사
<a name="custom-copying-snapshot-sqlserver"></a>

RDS Custom for SQL Server에서는 자동 백업 및 수동으로 DB 스냅샷을 복사할 수 있습니다. 스냅샷을 복사한 후 생성한 복사본은 수동 스냅샷입니다. 자동 백업 또는 수동 스냅샷의 복사본을 여러 개 만들 수 있지만, 각 복사본에는 고유한 식별자가 있어야 합니다.

RDS Custom for SQL Server를 사용하는 다른 AWS 리전에서 동일한 AWS 계정 내의 스냅샷만 복사할 수 있습니다. 다음 연산자는 현재 지원되지 않습니다.
+ 동일한 AWS 리전에서 DB 스냅샷을 복사합니다.
+ AWS 계정 간에 DB 스냅샷을 복사합니다.

RDS Custom for SQL Server는 증분 스냅샷 복사를 지원합니다. 자세한 내용은 [증분 스냅샷 복사 시 고려 사항](USER_CopySnapshot.md#USER_CopySnapshot.Incremental) 섹션을 참조하세요.

**Topics**
+ [제한 사항](#custom-copying-snapshot-sqlserver.Limitations)
+ [암호화 처리](#custom-copying-snapshot-sqlserver.Encryption)
+ [리전 간 복사](#custom-copying-snapshot-sqlserver.XRCopy)
+ [사용자 지정 엔진 버전(CEV)으로 만든 DB 인스턴스의 스냅샷](#custom-copying-snapshot-sqlserver.CEVSnap)
+ [IAM 보안 주체에 필요한 권한 부여](#custom-copying-snapshot-sqlserver.GrantPermIAM)
+ [DB 스냅샷 복사](#custom-copying-snapshot-sqlserver.CopyingDBSnapshot)

## 제한 사항
<a name="custom-copying-snapshot-sqlserver.Limitations"></a>

RDS Custom for SQL Server용 DB 스냅샷을 복사하는 데는 다음과 같은 제한이 적용됩니다.
+ 대상 스냅샷이 제공되기 전에 소스 스냅샷을 삭제하면 스냅샷 복사가 실패할 수 있습니다. 소스 스냅샷을 삭제하기 전에 대상 스냅샷의 상태가 `AVAILABLE`인지 확인하세요.
+ DB 스냅샷 복사 요청에서 옵션 그룹 이름을 지정하거나 옵션 그룹을 복사할 수 없습니다.
+ 복사 프로세스 이전 또는 복사 프로세스 중에 소스 DB 스냅샷의 종속 AWS 리소스를 삭제하면 스냅샷 복사 요청이 비동기적으로 실패할 수 있습니다.
  + 계정의 RDS Custom 관리형 S3 버킷에 저장된 소스 DB 인스턴스의 Service Master Key(SMK) 백업 파일을 삭제하면 DB 스냅샷 복사가 비동기적으로 성공합니다. 하지만 TDE 지원 데이터베이스와 같이 SMK에 의존하는 SQL Server 기능에는 문제가 있습니다. 자세한 내용은 [RDS Custom for SQL Server에서 TDE 지원 데이터베이스의 PENDING\$1RECOVERY 상태 문제 해결](custom-troubleshooting-sqlserver.md#custom-troubleshooting-sqlserver.pending_recovery) 섹션을 참조하세요.
+ 동일한 AWS 리전에서 DB 스냅샷을 복사하는 것은 현재 지원되지 않습니다.
+ AWS 계정 간 DB 스냅샷을 복사하는 것은 현재 지원되지 않습니다.

Amazon RDS의 DB 스냅샷 복사 제한은 RDS Custom for SQL Server에도 적용됩니다. 자세한 내용은 [제한 사항](USER_CopySnapshot.md#USER_CopySnapshot.Limitations) 섹션을 참조하세요.

## 암호화 처리
<a name="custom-copying-snapshot-sqlserver.Encryption"></a>

모든 RDS Custom for SQL Server DB 인스턴스 및 DB 스냅샷은 KMS 키로 암호화됩니다. 암호화된 스냅샷은 암호화된 스냅샷에만 복사할 수 있으므로, DB 스냅샷 복사 요청을 위해 대상 AWS 리전에서 유효한 KMS 키를 지정해야 합니다.

소스 스냅샷은 복사 프로세스 전체에서 암호화를 유지합니다. Amazon RDS는 봉투 암호화를 사용하여 지정된 대상 AWS 리전 KMS 키를 통해 복사 작업 중에 데이터를 보호합니다. 자세한 내용은 *AWS Key Management Service 개발자 안내서*의 [봉투 암호화](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#enveloping)를 참조하세요.

## 리전 간 복사
<a name="custom-copying-snapshot-sqlserver.XRCopy"></a>

AWS 리전 간에 DB 스냅샷을 복사할 수 있습니다. 하지만 리전 간 스냅샷 복사와 관련한 특정 제약 및 고려 사항이 있습니다.

### 스냅샷 복사를 위해 AWS 리전 간에 통신할 수 있도록 RDS 권한 부여
<a name="custom-copying-snapshot-sqlserver.XRCopy.Authorize"></a>

리전 간 DB 스냅샷 복사 요청이 성공적으로 처리되면 RDS가 복사를 시작합니다. RDS가 소스 스냅샷에 액세스할 수 있도록 권한 부여 요청이 생성됩니다. 이 권한 부여 요청은 소스 DB 스냅샷을 대상 DB 스냅샷에 연결합니다. 이렇게 하면 RDS가 지정된 대상 스냅샷에만 복사할 수 있습니다.

RDS는 서비스 연결 IAM 역할의 `rds:CrossRegionCommunication` 권한을 사용하여 권한 부여를 확인합니다. 복사가 승인되면 RDS는 소스 리전과 통신하여 복사 작업을 완료할 수 있습니다.

RDS는 이전에 CopyDBSnapshot 요청에 의해 승인되지 않은 DB 스냅샷에 액세스할 권한이 없습니다. 복사가 완료되면 권한 부여가 취소됩니다.

RDS는 서비스 연결 역할을 사용하여 소스 리전에서 승인을 확인합니다. 복사 프로세스 중에 서비스 연결 역할을 삭제하면 복사가 실패합니다.

자세한 내용은 **AWS Identity and Access Management 사용 설명서의 [서비스 연결 역할 사용](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)을 참조하세요.

### AWS Security Token Service 보안 인증 사용
<a name="custom-copying-snapshot-sqlserver.XRCopy.STS"></a>

전역 AWS Security Token Service(AWS STS) 엔드포인트의 세션 토큰은 기본적으로 활성화된 AWS 리전(상용 리전)에서만 유효합니다. `assumeRole`에서 AWS STS API 작업을 통해 얻은 자격 증명을 사용하는 경우 소스 리전이 옵트인 리전이면 리전별 엔드포인트를 사용합니다. 그렇지 않으면 요청이 실패합니다. 자격 증명은 두 리전 모두에서 유효해야 하며, 이는 리전 AWS STS 엔드포인트를 사용할 때만 옵트인 리전에 적용됩니다.

전역 엔드포인트를 사용하려면 작업의 두 리전 모두에 대해 전역 엔드포인트를 사용하도록 설정되어 있어야 합니다. 글로벌 엔드포인트를 AWS STS 계정 설정의 모든 AWS 리전에서 `Valid`로 설정합니다.

자세한 내용은 **AWS Identity and Access Management 사용 설명서의 [AWS 리전에서 AWS STS 관리](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_enable-regions.html)를 참조하세요.

## 사용자 지정 엔진 버전(CEV)으로 만든 DB 인스턴스의 스냅샷
<a name="custom-copying-snapshot-sqlserver.CEVSnap"></a>

[사용자 지정 엔진 버전(CEV)](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-cev-sqlserver.html)을 사용하는 DB 인스턴스의 DB 스냅샷의 경우 RDS는 CEV를 DB 스냅샷과 연결합니다. AWS 리전에서 CEV와 연결된 소스 DB 스냅샷을 복사하려면 RDS가 소스 DB 스냅샷과 함께 CEV를 대상 리전으로 복사합니다.

동일한 CEV와 연결된 여러 DB 스냅샷을 동일한 대상 리전에 복사하는 경우 첫 번째 복사 요청은 연결된 CEV를 복사합니다. 다음 요청의 복사 프로세스는 처음에 복사한 CEV를 찾아 다음 DB 스냅샷 사본과 연결합니다. 기존 CEV 사본은 DB 스냅샷 복사본과 연결할 수 있는 `AVAILABLE` 상태여야 합니다.

CEV와 연결된 DB 스냅샷을 복사하려면 요청자의 IAM 정책에 DB 스냅샷 복사와 연결된 CEV 복사를 모두 승인할 권한이 있어야 합니다. 연결된 CEV 복사를 허용하려면 요청자의 IAM 정책에 다음과 같은 권한이 필요합니다.
+ `rds:CopyCustomDBEngineVersion` ‐ 요청자 IAM 보안 주체는 소스 CEV를 소스 DB 스냅샷과 함께 대상 리전에 복사할 수 있는 권한이 있어야 합니다. 요청자 IAM 보안 주체가 소스 CEV를 복사할 권한이 없는 경우 권한 부여 오류로 인해 스냅샷 복사 요청이 실패합니다.
+ `ec2:CreateTags` ‐ 소스 CEV의 기본 EC2 AMI가 CEV 사본의 일부로 대상 리전에 복사됩니다. RDS Custom은 AMI를 복사하기 전에 AMI에 `AWSRDSCustom` 태그를 지정하려고 합니다. 요청자 IAM 보안 주체가 소스 리전의 소스 CEV를 기반으로 하는 AMI에 대해 태그를 생성할 권한이 있는지 확인하세요.

CEV 복사 권한에 대한 자세한 내용은 [IAM 보안 주체에 필요한 권한 부여](#custom-copying-snapshot-sqlserver.GrantPermIAM) 섹션을 참조하세요.

## IAM 보안 주체에 필요한 권한 부여
<a name="custom-copying-snapshot-sqlserver.GrantPermIAM"></a>

RDS Custom for SQL Server DB 스냅샷을 복사할 수 있는 충분한 액세스 권한을 가지고 있는지 확인하세요. 콘솔 또는 CLI를 사용하여 DB 스냅샷을 복사하는 IAM 역할 또는 사용자(IAM 보안 주체라고 함)는 DB 인스턴스를 성공적으로 생성하기 위해 다음 중 하나의 정책을 가지고 있어야 합니다.
+ `AdministratorAccess` 정책
+ 다음과 같은 추가 권한이 있는 `AmazonRDSFullAccess` 정책:

  ```
  s3:CreateBucket
  s3:GetBucketPolicy
  s3:PutBucketPolicy
  kms:CreateGrant
  kms:DescribeKey
  ec2:CreateTags
  ```

RDS Custom은 AWS 리전에서 스냅샷을 복사할 때 이러한 권한을 사용합니다. 이러한 권한은 RDS Custom 작업에 필요한 리소스를 계정에 구성합니다. `kms:CreateGrant` 권한에 대한 자세한 내용은 [AWS KMS key 관리](Overview.Encryption.Keys.md) 섹션을 참조하세요.

다음 샘플 JSON 정책은 `AmazonRDSFullAccess` 정책 외에 필요한 권한을 부여합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CreateS3BucketAndReadWriteBucketPolicy",
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:PutBucketPolicy",
                "s3:GetBucketPolicy"
            ],
            "Resource": "arn:aws:s3:::do-not-delete-rds-custom-*"
        },
        {
            "Sid": "CreateKmsGrant",
            "Effect": "Allow",
            "Action": [
                "kms:CreateGrant",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        },
        {
            "Sid": "CreateEc2Tags",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": "*"
        }
    ]
}
```

------

**참고**  
서비스 제어 정책(SCP), 권한 경계 또는 IAM 보안 주체와 연결된 세션 정책에서 나열된 권한을 제한하지 않는지 확인합니다.

요청자의 IAM 정책에 컨텍스트 키가 있는 조건을 사용하는 경우 특정 조건으로 인해 요청이 실패할 수 있습니다. IAM 정책 조건으로 인한 일반적인 위험에 대한 자세한 내용은 [리전 간 DB 스냅샷 복사 요청](USER_CopySnapshot.md#USER_CopySnapshot.AcrossRegions.Policy) 섹션을 참조하세요.

## DB 스냅샷 복사
<a name="custom-copying-snapshot-sqlserver.CopyingDBSnapshot"></a>

다음 절차에 따라 DB 스냅샷을 복사합니다. 각 AWS 계정에 대해 AWS 리전 간에 DB 스냅샷을 한 번에 20개까지 복사할 수 있습니다. DB 스냅샷을 다른 AWS 리전으로 복사하면 그 AWS 리전에 유지되는 수동 DB 스냅샷이 생성됩니다. 소스 AWS 리전 외부로 DB 스냅샷을 복사하면 Amazon RDS 데이터 전송 요금이 발생합니다. 데이터 전송 요금에 대한 자세한 정보는 [Amazon RDS 요금](https://aws.amazon.com/rds/pricing/)을 참조하십시오.

새 AWS 리전에 DB 스냅샷 사본이 생성된 후 DB 스냅샷 사본은 해당 AWS 리전의 다른 모든 DB 스냅샷과 똑같이 동작합니다.

AWS Management Console, AWS CLI 또는 Amazon RDS API를 사용하여 DB 스냅샷을 복사할 수 있습니다.

------
#### [ Console ]

다음 프로시저는 AWS Management Console을 사용하여 RDS Custom for SQL Server DB 스냅샷을 복사합니다.

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. 탐색 창에서 [**Snapshots**]를 선택합니다.

1. 복사하려는 RDS Custom for SQL Server DB 스냅샷을 선택합니다.

1. **작업** 드롭다운에서 **스냅샷 복사**를 선택합니다.  
![\[Amazon RDS 콘솔의 스냅샷 복사 페이지. 설정이 페이지에 로드됩니다.\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/XRSC-Snapshot-Copy.png)

1. DB 스냅샷을 다른 AWS 리전에 복사하려면 **대상 리전**을 필요한 값으로 설정합니다.
**참고**  
대상 AWS 리전에는 소스 AWS 리전과 동일한 가용 데이터베이스 엔진 버전이 있어야 합니다.

1. **새 DB 스냅샷 식별자**에 DB 스냅샷의 고유 이름을 입력합니다. 자동 백업 또는 수동 스냅샷의 복사본을 여러 개 만들 수 있지만, 각 복사본에는 고유한 식별자가 있어야 합니다.

1. (선택 사항) [**Copy Tags**]를 선택하여 스냅샷의 태그와 값을 스냅샷 사본에 복사합니다.

1. **암호화**에 대해 DB 스냅샷 복사본을 암호화하는 데 사용할 KMS 키 식별자를 지정합니다.
**참고**  
RDS Custom for SQL Server는 모든 DB 스냅샷을 암호화합니다. 암호화되지 않은 DB 스냅샷을 생성할 수 없습니다.

1. **스냅샷 복사**를 선택합니다.

RDS Custom for SQL Server는 선택한 AWS 리전에 DB 인스턴스의 DB 스냅샷 복사본을 생성합니다.

------
#### [ AWS CLI ]

AWS CLI 명령 [https://docs.aws.amazon.com/cli/latest/reference/rds/copy-db-snapshot.html](https://docs.aws.amazon.com/cli/latest/reference/rds/copy-db-snapshot.html)을 사용하여 RDS Custom for SQL Server DB 스냅샷을 복사할 수 있습니다. 스냅샷을 새 AWS 리전으로 복사하는 경우 새 AWS 리전에서 명령을 실행합니다. 다음 옵션을 사용하여 DB 스냅샷을 복사할 수 있습니다. 시나리오에 따라 필요하지 않은 옵션도 있습니다.
+ `--source-db-snapshot-identifier` - 소스 DB 스냅샷의 식별자입니다.
  + 소스 스냅샷이 사본과 다른 AWS 리전에 있는 경우 유효한 DB 스냅샷 ARN을 지정합니다. 예를 들어 `arn:aws:rds:us-west-2:123456789012:snapshot:instance1-snapshot-12345678`입니다.
+ `--target-db-snapshot-identifier` – DB 스냅샷의 새 사본의 식별자입니다.
+ `--kms-key-id` – 암호화된 DB 스냅샷의 KMS 키 식별자입니다. KMS 키 식별자는 KMS 키의 Amazon 리소스 이름(ARN), 키 식별자 또는 키 별칭입니다.
  + 암호화된 스냅샷을 다른 AWS 리전에 복사하는 경우 대상 AWS 리전에 대해 KMS 키를 지정해야 합니다. KMS 키는 생성된 AWS 리전에만 적용되며, 다중 리전 키를 사용하지 않는 한 다른 AWS 리전의 한 AWS 리전에서 암호화 키를 사용할 수 없습니다. 다중 리전 KMS 키에 대한 자세한 내용은 [AWS KMS에서 다중 리전 키 사용](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html)을 참조하세요.
+ `--copy-tags` - 소스 스냅샷의 태그와 값을 스냅샷 복사본에 포함합니다.

RDS Custom for SQL Server DB 스냅샷의 복사에는 다음 옵션이 지원되지 않습니다.
+ `--copy-option-group `
+ `--option-group-name`
+ `--pre-signed-url`
+ `--target-custom-availability-zone`

다음 코드 예제에서는 암호화된 DB 스냅샷을 미국 서부(오리건) 리전에서 미국 동부(버지니아 북부) 리전으로 복사합니다. 대상(us-east-1) 리전에서 명령을 실행합니다.

Linux, macOS 또는 Unix의 경우는 다음과 같습니다.

```
aws rds copy-db-snapshot \
     --region us-east-1 \
    --source-db-snapshot-identifier arn:aws:rds:us-west-2:123456789012:snapshot:instance1-snapshot-12345678 \
    --target-db-snapshot-identifier mydbsnapshotcopy \
    --kms-key-id a1b2c3d4-1234-5678-wxyz-a1b2c3d4d5e6
```

Windows의 경우:

```
aws rds copy-db-snapshot ^
     --region us-east-1 ^
    --source-db-snapshot-identifier arn:aws:rds:us-west-2:123456789012:snapshot:instance1-snapshot-12345678 ^
    --target-db-snapshot-identifier mydbsnapshotcopy ^
    --kms-key-id a1b2c3d4-1234-5678-wxyz-a1b2c3d4d5e6
```

------
#### [ RDS API ]

Amazon RDS API 작업 [CopyDBSnapshot](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CopyDBSnapshot.html)을 사용하여 RDS Custom for SQL Server DB 스냅샷을 복사할 수 있습니다. 스냅샷을 새 AWS 리전으로 복사하는 경우 새 AWS 리전에서 작업을 수행합니다. 다음 파라미터를 사용하여 DB 스냅샷을 복사할 수 있습니다. 모든 파라미터가 필요한 것은 아닙니다.
+ `SourceDBSnapshotIdentifier` - 소스 DB 스냅샷의 식별자입니다.
  + 소스 스냅샷이 사본과 다른 AWS 리전에 있는 경우 유효한 DB 스냅샷 ARN을 지정합니다. 예를 들어 `arn:aws:rds:us-west-2:123456789012:snapshot:instance1-snapshot-12345678`입니다.
+ `TargetDBSnapshotIdentifier` – DB 스냅샷의 새 사본의 식별자입니다.
+ `KmsKeyId` – 암호화된 DB 스냅샷의 KMS 키 식별자입니다. KMS 키 식별자는 KMS 키의 Amazon 리소스 이름(ARN), 키 식별자 또는 키 별칭입니다.
  + 암호화된 스냅샷을 다른 AWS 리전에 복사하는 경우 대상 AWS 리전에 대해 KMS 키를 지정해야 합니다. KMS 키는 생성된 AWS 리전에만 적용되며, 다중 리전 키를 사용하지 않는 한 다른 AWS 리전의 한 AWS 리전에서 암호화 키를 사용할 수 없습니다. 다중 리전 KMS 키에 대한 자세한 내용은 [AWS KMS에서 다중 리전 키 사용](https://docs.aws.amazon.com/kms/latest/developerguide/multi-region-keys-overview.html)을 참조하세요.
+ `CopyTags` - 소스 스냅샷의 태그와 값을 스냅샷 사본에 복사하려면 이 파라미터를 `true`로 설정합니다. 기본값은 `false`입니다.

다음 옵션에는 RDS Custom for SQL Server DB 스냅샷 복사가 지원되지 않습니다.
+ `CopyOptionGroup`
+ `OptionGroupName`
+ `PreSignedUrl`
+ `TargetCustomAvailabilityZone`

다음 코드는 US East (N. Virginia) 리전에 `mydbsnapshotcopy`라는 새 이름으로 스냅샷 복사본을 생성합니다.

```
https://rds.us-east-1.amazonaws.com/
    ?Action=CopyDBSnapshot
    &KmsKeyId=a1b2c3d4-1234-5678-wxyz-a1b2c3d4d5e6
    &SourceDBSnapshotIdentifier=arn%3Aaws%3Ards%3Aus-west-2%3A123456789012%3Asnapshot%3Ainstance1-snapshot-12345678
    &TargetDBSnapshotIdentifier=mydbsnapshotcopy
    &Version=2014-10-31
    &X-Amz-Algorithm=AWS4-HMAC-SHA256
    &X-Amz-Credential=AKIADQKE4SARGYLE/20161117/us-east-1/rds/aws4_request
    &X-Amz-Date=20161117T221704Z
    &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date
    &X-Amz-Signature=da4f2da66739d2e722c85fcfd225dc27bba7e2b8dbea8d8612434378e52adccf
```

------

# 온프레미스 데이터베이스를 SQL Server용 Amazon RDS Custom으로 마이그레이션
<a name="custom-migrating"></a>

다음 프로세스를 따라 기본 백업 및 복원을 사용하여 온프레미스 Microsoft SQL Server 데이터베이스를 SQL Server용 Amazon RDS Custom으로 마이그레이션할 수 있습니다.

1. 온프레미스 DB 인스턴스에서 데이터베이스의 전체 백업을 수행합니다.

1. Amazon S3로 백업 파일을 업로드합니다.

1. S3의 백업 파일을 SQL Server DB 인스턴스용 RDS Custom으로 다운로드합니다.

1. SQL Server DB 인스턴스용 RDS Custom에서 다운로드한 백업 파일을 사용하여 데이터베이스를 복원합니다.

이 프로세스에서는 기본 전체 백업 및 복원을 사용하여 온프레미스에서 SQL Server용 RDS Custom으로 데이터베이스를 마이그레이션하는 방법을 설명합니다. 마이그레이션 프로세스 중에 전환 시간을 줄이기 위해 디퍼렌셜 또는 로그 백업을 사용하는 것도 고려할 수 있습니다.

RDS for SQL Server의 기본 백업 및 복원에 대한 일반적인 정보는 [기본 백업 및 복원 기능을 사용하여 SQL Server 데이터베이스 가져오기 및 내보내기](SQLServer.Procedural.Importing.md) 섹션을 참조하세요.

**Topics**
+ [사전 조건](#custom-migrating.prereqs)
+ [온프레미스 데이터베이스 백업](#custom-migrating.backup)
+ [Amazon S3로 백업 파일 업로드](#custom-migrating.upload)
+ [Amazon S3에서 백업 파일 다운로드](#custom-migrating.upload)
+ [SQL Server DB 인스턴스용 RDS Custom으로 백업 파일 복원](#custom-migrating.restore)

## 사전 조건
<a name="custom-migrating.prereqs"></a>

데이터베이스를 마이그레이션하기 전에 다음 작업을 수행합니다.

1. SQL Server DB 인스턴스용 RDS Custom에 대해 원격 데스크톱 연결(RDP)을 구성합니다. 자세한 내용은 [RDP를 사용하여 RDS Custom DB 인스턴스에 연결](custom-creating-sqlserver.rdp.md) 섹션을 참조하세요.

1. 데이터베이스 백업 파일을 업로드 및 다운로드할 수 있도록 Amazon S3에 액세스할 권한을 구성합니다.

## 온프레미스 데이터베이스 백업
<a name="custom-migrating.backup"></a>

SQL Server 기본 백업을 사용하여 온프레미스 DB 인스턴스의 데이터베이스 전체 백업을 수행할 수 있습니다.

다음 예제에서는 백업 파일 크기를 줄이는 `COMPRESSION` 옵션이 지정된 `mydatabase`라는 이름의 데이터베이스 백업을 보여줍니다.

**온프레미스 데이터베이스를 백업하는 방법**

1. SQL Server Management Studio(SSMS)를 사용하여 온프레미스 SQL Server 인스턴스에 연결합니다.

1. T-SQL 명령을 실행합니다.

   ```
   backup database mydatabase to
   disk ='C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\mydb-full-compressed.bak'
   with compression;
   ```

## Amazon S3로 백업 파일 업로드
<a name="custom-migrating.upload"></a>

AWS Management Console을 사용하여 `mydb-full-compressed.bak` 백업 파일을 Amazon S3로 업로드합니다.

**S3로 백업 파일을 업로드하는 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)에서 S3 콘솔을 엽니다.

1. **버킷(Buckets)**에서 백업 파일을 업로드할 버킷의 이름을 선택합니다.

1. **업로드**를 선택합니다.

1. **업로드** 창에서 다음 중 하나를 수행합니다.
   + `mydb-full-compressed.bak`를 **업로드(Upload)** 창으로 끌어다 놓습니다.
   + **파일 추가(Add file)**와 `mydb-full-compressed.bak`를 차례로 선택한 다음 **열기(Open)**를 선택합니다.

   Amazon S3는 백업 파일을 S3 객체로 업로드합니다. 업로드가 완료되면 **업로드: 상태** 페이지에서 성공 메시지를 볼 수 있습니다.

## Amazon S3에서 백업 파일 다운로드
<a name="custom-migrating.upload"></a>

콘솔을 사용하여 S3의 백업 파일을 SQL Server DB 인스턴스용 RDS Custom으로 다운로드할 수 있습니다.

**S3에서 백업 파일을 다운로드하는 방법**

1. RDP를 사용하여 SQL Server DB 인스턴스용 RDS Custom에 연결합니다.

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)에서 S3 콘솔을 엽니다.

1. **버킷(Buckets)** 목록에서 백업 파일이 들어 있는 버킷의 이름을 선택합니다.

1. `mydb-full-compressed.bak` 백업 파일을 선택합니다.

1. **작업(Actions)**에서 **다음으로 다운로드(Download as)**를 선택합니다.

1. 제공된 링크에 대한 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열고 나서 **다른 이름으로 저장(Save As)**을 선택합니다.

1. `mydb-full-compressed.bak`를 `D:\rdsdbdata\BACKUP` 디렉터리에 저장합니다.

## SQL Server DB 인스턴스용 RDS Custom으로 백업 파일 복원
<a name="custom-migrating.restore"></a>

SQL Server 기본 복원을 사용하여 백업 파일을 SQL Server DB 인스턴스용 RDS Custom으로 복원할 수 있습니다.

이 예제에서는 데이터 및 로그 파일 디렉터리가 온프레미스 DB 인스턴스와 다르기 때문에 `MOVE` 옵션이 지정됩니다.

**백업 파일을 복원하는 방법**

1. SSMS를 사용하여 SQL Server DB 인스턴스용 RDS Custom에 연결합니다.

1. T-SQL 명령을 실행합니다.

   ```
   restore database mydatabase from disk='D:\rdsdbdata\BACKUP\mydb-full-compressed.bak'
   with move 'mydatabase' to 'D:\rdsdbdata\DATA\mydatabase.mdf',
   move 'mydatabase_log' to 'D:\rdsdbdata\DATA\mydatabase_log.ldf';
   ```

# RDS Custom for SQL Server 운영 체제 업데이트
<a name="custom-os-upgrade"></a>

RDS Custom for SQL Server는 RDS 제공 엔진 버전(RPEV) 인스턴스에 운영 체제 업데이트 적용과 관련하여 다음과 같은 방법을 제공합니다.
+ *시스템 업데이트 유지 관리 작업*
+ *데이터베이스 마이너 버전 업그레이드*
  + RPEV를 사용한 DB 마이너 엔진 버전 업그레이드에는 최신 운영 체제 업데이트가 포함됩니다. 이 접근 방식은 OS 업데이트를 SQL Server 마이너 버전 업그레이드와 결합하려는 경우에 특히 유용합니다. 자세한 내용은 [Amazon RDS Custom for SQL Server DB 인스턴스 업그레이드](custom-upgrading-sqlserver.md) 섹션을 참조하세요.

## 운영 체제 업데이트 시나리오
<a name="custom-os-upgrade.Scenarios"></a>

다음의 두 가지 방법으로 RDS Custom for SQL Server 인스턴스의 운영 체제 업데이트를 관리할 수 있습니다.
+ 단일 AZ 인스턴스의 경우 운영 체제 업데이트 중에 인스턴스를 사용할 수 없습니다.
+ 다중 AZ 배포의 경우 RDS는 다음과 같은 방식으로 운영 체제 업데이트를 적용합니다.
  + 먼저 RDS는 대기 인스턴스에서 운영 체제 업데이트를 수행합니다.
  + 업그레이드된 대기 DB 인스턴스로 RDS 장애 조치하여 이를 새 기본 DB 인스턴스로 만듭니다.
  + 마지막으로 RDS는 새 대기 DB 인스턴스에서 운영 체제 업데이트를 수행합니다.

다중 AZ 배포의 가동 중지 시간은 장애 조치에 걸리는 시간입니다.

## 시스템 업데이트 유지 관리 작업을 사용하여 운영 체제 업데이트 적용
<a name="custom-os-upgrade.SystemUpdates"></a>

Amazon RDS RPEV 인스턴스에 운영 체제 업데이트를 적용하기 위해 AWS Management Console, AWS CLI 또는 RDS API를 사용할 수 있습니다. 자세한 내용은 [RDS DB 인스턴스의 운영 체제 업데이트](USER_UpgradeDBInstance.Maintenance.md#OS_Updates) 섹션을 참조하세요.

**Example**  
대상 LinuxmacOS, 또는Unix:  
**1단계: 사용 가능한 업데이트 확인**  
`describe-pending-maintenance-actions` 명령을 사용하여 인스턴스에 OS 업데이트를 사용할 수 있는지 확인합니다.  

```
aws rds describe-pending-maintenance-actions
```
응답 예제:  

```
{
    "PendingMaintenanceActions": [
        {
            "ResourceIdentifier": "arn:aws:rds:us-east-1:111122223333:db:my-sqlserver-instance",
            "PendingMaintenanceActionDetails": [
                {
                    "Action": "system-update",
                    "Description": "New Operating System update is available"
                }
            ]
        }
    ]
}
```
작업 유형이 `system-update`이면 인스턴스에 OS 업데이트를 사용할 수 있다는 의미입니다.  
**2단계: OS 업데이트 적용**  
`apply-pending-maintenance-action` 명령을 사용하여 일정을 업데이트합니다.  

```
aws rds apply-pending-maintenance-action \ 
                --resource-identifier arn:aws:rds:us-east-1:111122223333:db:my-sqlserver-instance \ 
                --apply-action system-update \ 
                --opt-in-type immediate
```
`opt-in-type` 입력에는 다음과 같은 옵션이 있습니다.  
+ `immediate`: 업데이트 즉시 적용
+ `next-maintenance`: 예약된 다음 유지 관리 기간에 업데이트 적용
+ `undo-opt-in`: 이전에 예약된 업데이트 취소
응답 예제:  

```
{
    "ResourcePendingMaintenanceActions": {
        "ResourceIdentifier": "arn:aws:rds:us-east-1:111122223333:db:my-sqlserver-instance",
        "PendingMaintenanceActionDetails": [
            {
                "Action": "system-update",
                "AutoAppliedAfterDate": "2024-04-10T20:41:01.695000+00:00",
                "ForcedApplyDate": "2024-04-10T20:41:01.694000+00:00",
                "CurrentApplyDate": "2024-04-10T20:41:01.695000+00:00",
                "Description": "New Operating System update is available"
            }
        ]
    }
}
```

## OS 업데이트 알림
<a name="custom-os-upgrade.OSNotifications"></a>

새로운 선택적 운영 체제 시스템 패치가 제공될 때 알림을 받으려면 보안 패치 이벤트 범주에서 [RDS-EVENT-0230](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.Messages.html#RDS-EVENT-0230) 구독을 신청하면 됩니다. RDS 이벤트 구독에 대한 자세한 내용은 [Amazon RDS 이벤트 알림 구독](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Events.Subscribing.html)을 참조하세요.

## 고려 사항
<a name="custom-os-upgrade.Considerations"></a>

OS 업데이트에는 다음과 같은 고려 사항 및 제한 사항이 적용됩니다.
+ C:\$1 드라이브에 대한 운영 체제 사용자 지정은 운영 체제 업데이트 중에 보존되지 않습니다.
+ 업데이트를 적용하기 전에 수동 스냅샷을 생성하는 것이 좋습니다.

# Amazon RDS Custom for SQL Server DB 인스턴스 업그레이드
<a name="custom-upgrading-sqlserver"></a>

새 DB 엔진 버전을 사용하도록 수정하여 Amazon RDS Custom for SQL Server DB 인스턴스를 업그레이드할 수 있습니다. DB 인스턴스 업그레이드에 대한 일반적인 정보는 [DB 인스턴스 엔진 버전 업그레이드](USER_UpgradeDBInstance.Upgrading.md) 섹션을 참조하세요.

**Topics**
+ [RDS Custom for SQL Server 업그레이드 개요](#custom-upgrading-sqlserver.Overview)
+ [메이저 및 마이너 엔진 버전 업그레이드](#custom-upgrading-sqlserver.Upgrade)
+ [데이터베이스 호환성 수준](#custom-upgrading-sqlserver.Major.Compatibility)

## RDS Custom for SQL Server 업그레이드 개요
<a name="custom-upgrading-sqlserver.Overview"></a>

Amazon RDS Custom for SQL Server는 메이저 및 마이너 버전 업그레이드를 지원합니다. 마이너 버전 업그레이드에는 보안 패치, 버그 수정 및 엔진 개선 기능이 포함될 수 있습니다. Microsoft는 이러한 업데이트를 누적 업데이트(CU)로 릴리스합니다. 메이저 버전 업그레이드는 SQL Server 2019에서 2022로 업그레이드하는 것처럼 버전 간에 새로운 기능과 엔진 변경 사항을 도입합니다. 두 업그레이드를 즉시 적용하거나 예약된 유지 관리 기간 동안 적용할 수 있습니다. 잠재적인 이전 버전과의 호환성 문제를 방지하기 위해 업그레이드하기 전에 비프로덕션 환경에서 애플리케이션을 테스트하는 것이 좋습니다.

RDS Custom for SQL Server에서는 RDS 제공 엔진 버전(RPEV) 또는 사용자 지정 엔진 버전(CEV)을 업그레이드할 수 있습니다.
+ RDS 제공 엔진 버전(RPEV)에는 최신 운영 체제(OS) 패치와 SQL Server 누적 업데이트(CU)가 포함되어 있습니다.
+ 사용자 지정 엔진 버전(CEV)의 경우 2단계 프로세스를 따라야 합니다. 먼저 대상 SQL Server 버전으로 새 CEV를 생성합니다. [RDS Custom for SQL Server용 CEV 생성 준비](custom-cev-sqlserver.preparing.md) 섹션을 참조하세요. 이 대상 버전은 현재 버전과 같거나 더 최신 버전이어야 합니다. 새 CEV가 생성되면 이 새 버전을 사용하도록 데이터베이스 인스턴스를 수정합니다. 자세한 내용은 [다중 AZ를 사용하여 Amazon RDS Custom for SQL Server CEV에 대한 마이너 버전 업그레이드 수행](https://aws.amazon.com/blogs/database/performing-a-minor-version-upgrade-for-amazon-rds-custom-for-sql-server-cev-with-multi-az/)을 참조하세요.

  실행 중인 RDS Custom 인스턴스에 SQL Server 누적 인플레이스 업데이트를 적용하지 마세요. 특정 SQL Server 버전(예: SQL Server 2022 CU16)으로 CEV를 생성한 경우 인스턴스에 직접 최신 누적 업데이트를 적용하면 지원 경계에서 벗어나 `SP-S3006` 오류를 보고합니다. CEV를 사용하여 기존 SQL Server 인스턴스를 패치하려면 원하는 누적 업데이트가 포함된 새 CEV를 생성한 다음 기존 인스턴스를 수정하여 새 CEV로 전환합니다.

다중 AZ 배포에서 RDS Custom for SQL Server DB 인스턴스를 업그레이드하는 경우 RDS Custom for SQL Server가 인스턴스에 대한 롤링 업그레이드를 수행합니다. 이 접근 방식은 한 번에 하나의 인스턴스를 업그레이드하여 가동 중지 시간을 최소화합니다. RDS는 롤링 업그레이드를 위해 다음 작업을 수행합니다.

1. 대기 DB 인스턴스를 업그레이드합니다.

1. 업그레이드된 대기 DB 인스턴스로 장애 조치하여 이를 새 기본 DB 인스턴스로 만듭니다.

1. 새 대기 DB 인스턴스를 업그레이드합니다.

다중 AZ 배포의 DB 인스턴스 가동 중지 시간은 장애 조치에 걸리는 시간입니다.

RDS Custom for SQL Server DB 인스턴스를 업그레이드할 때는 다음과 같은 제한 사항이 적용됩니다.
+ Custom DB 옵션 및 파라미터 그룹은 지원되지 않습니다.
+ RDS Custom for SQL Server DB 인스턴스에 연결하는 추가 스토리지 볼륨은 업그레이드 후에 연결되지 않습니다.
+ CEV의 경우 SQL Server 누적 업데이트의 인플레이스 적용은 지원되지 않으므로 인스턴스가 지원 경계에서 제거됩니다.

## 메이저 및 마이너 엔진 버전 업그레이드
<a name="custom-upgrading-sqlserver.Upgrade"></a>

메이저 및 마이너 엔진 버전 업그레이드는 모두 되돌릴 수 없으며 항상 더 최신 버전으로 업그레이드를 수행해야 합니다. 사용 가능한 대상 버전을 식별하려면 AWS Management Console을 사용하고 DB 인스턴스를 수정할 때 사용 가능한 버전 중에서 선택합니다. 또는 [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) CLI 명령 또는 [DescribeDBEngineVersions](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBEngineVersions.html) RDS API 명령을 사용합니다.

대상 LinuxmacOS, 또는Unix:

```
aws rds describe-db-engine-versions \
    --engine custom-sqlserver-se \
    --engine-version 15.00.4322.2.v1 \
    --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" \
    --output table
```

Windows의 경우:

```
aws rds describe-db-engine-versions ^
    --engine custom-sqlserver-se ^
    --engine-version 15.00.4322.2.v1 ^
    --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" ^
    --output table
```

출력에는 사용 가능한 대상 엔진 버전이 표시됩니다.

```
--------------------------
|DescribeDBEngineVersions|
+------------------------+
|      EngineVersion     |
+------------------------+
|  15.00.4410.1.v1       |
|  15.00.4415.2.v1       |
|  15.00.4430.1.v1       |
|  16.00.4165.4.v1       |
|  16.00.4175.1.v1       |
|  16.00.4185.3.v1       |
+------------------------+
```

대상 버전을 식별한 후 AWS Management Console을 사용하고 [RDS Custom for SQL Server DB 인스턴스 수정](custom-managing.modify-sqlserver.md)의 지침을 따릅니다. 또는 [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html) CLI 명령 또는 [ModifyDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBInstance.html) RDS API 명령을 사용합니다.

대상 LinuxmacOS, 또는Unix:

```
aws rds modify-db-instance \
    --db-instance-identifier DB_INSTANCE_IDENTIFIER \
    --engine-version ENGINE_VERSION \
    --allow-major-version-upgrade \
    --region Region \
    --no-apply-immediately
```

Windows의 경우:

```
aws rds modify-db-instance ^
    --db-instance-identifier DB_INSTANCE_IDENTIFIER ^
    --engine-version ENGINE_VERSION ^
    --allow-major-version-upgrade ^
    --region Region ^
    --no-apply-immediately
```

**참고**  
메이저 버전 업그레이드를 수행하려면 `--allow-major-version-upgrade` 파라미터를 포함해야 합니다.

## 데이터베이스 호환성 수준
<a name="custom-upgrading-sqlserver.Major.Compatibility"></a>

Microsoft SQL Server 데이터베이스 호환성 수준을 이용해 일부 데이터베이스 동작이 이전 버전의 SQL Server를 모방하도록 조정할 수 있습니다. 자세한 내용은 Microsoft 설명서의 [호환성 수준](https://msdn.microsoft.com/en-us/library/bb510680.aspx)을 참조하십시오.

DB 인스턴스를 업그레이드할 때 기존의 모든 데이터베이스는 원래 호환성 수준으로 유지됩니다. 예를 들어, SQL Server 2019에서 SQL Server 2022로 업그레이드할 경우 모든 기존 데이터베이스의 호환성 수준은 150입니다. 업그레이드 이후에 생성된 새 데이터베이스의 호환성 수준은 160입니다.

ALTER DATABASE 명령을 사용하여 데이터베이스의 호환성 수준을 변경할 수 있습니다. 예를 들어, `customeracct`라는 이름의 데이터베이스를 SQL Server 2022와 호환되도록 변경하려면 다음 명령을 실행합니다.

```
1. ALTER DATABASE customeracct SET COMPATIBILITY_LEVEL = 160
```

# Amazon RDS Custom for SQL Server의 DB 문제 해결
<a name="custom-troubleshooting-sqlserver"></a>

RDS Custom의 공동 책임 모델은 OS 셸 수준 액세스 권한과 데이터베이스 관리자 액세스 권한을 제공합니다. RDS Custom은 시스템 계정에서 리소스를 실행하는 Amazon RDS와 달리 계정에서 리소스를 실행합니다. 접근 권한이 높을수록 책임도 커집니다. 다음 섹션에서는 Amazon RDS Custom for SQL Server DB 인스턴스의 문제를 해결하는 방법을 알아볼 수 있습니다.

**참고**  
이 섹션에서는 RDS Custom for SQL Server의 문제를 해결하는 방법을 설명합니다. RDS Custom for Oracle 관련 문제 해결을 보려면 [Amazon RDS Custom for Oracle의 DB 문제 해결](custom-troubleshooting.md) 섹션을 참조하세요.

**Topics**
+ [RDS Custom 이벤트 보기](#custom-troubleshooting-sqlserver.support-perimeter.viewing-events)
+ [RDS Custom 이벤트 구독](#custom-troubleshooting-sqlserver.support-perimeter.subscribing)
+ [RDS Custom for SQL Server의 CEV 오류 문제 해결](#custom-troubleshooting-sqlserver.cev)
+ [RDS Custom for SQL Server에서 지원되지 않는 구성 문제 해결](#custom-troubleshooting-sqlserver.fix-unsupported)
+ [RDS Custom for SQL Server에서 `Storage-Full` 문제 해결](#custom-troubleshooting-storage-full)
+ [RDS Custom for SQL Server에서 TDE 지원 데이터베이스의 PENDING\$1RECOVERY 상태 문제 해결](#custom-troubleshooting-sqlserver.pending_recovery)

## RDS Custom 이벤트 보기
<a name="custom-troubleshooting-sqlserver.support-perimeter.viewing-events"></a>

RDS Custom 및 Amazon RDS DB 인스턴스의 이벤트 보기 절차는 동일합니다. 자세한 내용은 [Amazon RDS 이벤트 보기](USER_ListEvents.md) 섹션을 참조하세요.

`describe-events` 명령을 사용하여 AWS CLI를 통해 RDS Custom 이벤트 알림을 볼 수 있습니다. RDS Custom에서는 몇 가지 새로운 이벤트가 도입되었습니다. 이벤트 카테고리는 Amazon RDS와 동일합니다. 이벤트 목록은 [Amazon RDS 이벤트 카테고리 및 이벤트 메시지](USER_Events.Messages.md) 섹션을 참조하세요.

다음 예제에서는 지정된 RDS Custom DB 인스턴스에 대해 발생한 이벤트의 세부 정보를 검색합니다.

```
1. aws rds describe-events \
2.     --source-identifier my-custom-instance \
3.     --source-type db-instance
```

## RDS Custom 이벤트 구독
<a name="custom-troubleshooting-sqlserver.support-perimeter.subscribing"></a>

RDS Custom 및 Amazon RDS DB 인스턴스의 이벤트 구독 절차는 동일합니다. 자세한 내용은 [Amazon RDS 이벤트 알림 구독](USER_Events.Subscribing.md) 섹션을 참조하세요.

CLI를 사용하여 RDS Custom 이벤트 알림을 구독하려면 `create-event-subscription` 명령을 사용하면 되며, 다음 필수 파라미터를 포함합니다.
+ `--subscription-name`
+ `--sns-topic-arn`

다음 예제에서는 현재 AWS 계정에서 RDS Custom DB 인스턴스의 백업 및 복구 이벤트에 대한 구독을 생성합니다. 알림은 `--sns-topic-arn`에서 지정한 Amazon Simple Notification Service(Amazon SNS) 주제로 전송됩니다.

```
1. aws rds create-event-subscription \
2.     --subscription-name my-instance-events \
3.     --source-type db-instance \
4.     --event-categories '["backup","recovery"]' \
5.     --sns-topic-arn arn:aws:sns:us-east-1:123456789012:interesting-events
```

## RDS Custom for SQL Server의 CEV 오류 문제 해결
<a name="custom-troubleshooting-sqlserver.cev"></a>

CEV 생성이 실패할 수 있습니다. 이 경우 RDS Custom이 `RDS-EVENT-0198` 이벤트 메시지를 표시합니다. RDS 이벤트 보기에 대한 자세한 내용은 [Amazon RDS 이벤트 카테고리 및 이벤트 메시지](USER_Events.Messages.md) 단원을 참조하세요.

다음 정보를 사용하면 가능한 원인을 해결하는 데 도움이 됩니다.


****  

| 메시지 | 문제 해결 제안 | 
| --- | --- | 
| `Custom Engine Version creation expected a Sysprep’d AMI. Retry creation using a Sysprep’d AMI.` | AMI에서 생성한 EC2 인스턴스에서 Sysprep을 실행합니다. Sysprep을 사용한 AMI 준비에 대한 자세한 내용은 [Sysprep을 사용하여 표준화된 Amazon Machine Image(AMI) 생성](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/Creating_EBSbacked_WinAMI.html#sysprep-using-ec2launchv2)을 참조하세요. | 
| `EC2 Image permissions for image (AMI_ID) weren't found for customer (Customer_ID). Verify customer (Customer_ID) has valid permissions on the EC2 Image.` | 생성에 사용한 계정 및 프로필에 선택한 AMI의 `create EC2 Instance` 및 `Describe Images`에 대한 필수 권한이 있는지 확인합니다. | 
| `Failed to rebuild databases with server collation (collation name) due to missing setup.exe file for SQL Server.` | `C:\Program Files\Microsoft SQL Server\nnn\Setup Bootstrap\SQLnnnn\setup.exe`에서 `setup` 파일을 사용할 수 있는지 확인합니다. | 
| `Image (AMI_ID) doesn't exist in your account (ACCOUNT_ID). Verify (ACCOUNT_ID) is the owner of the EC2 image.` | AMI가 동일한 고객 계정에 있는지 확인합니다. | 
| `Image id (AMI_ID) isn't valid. Specify a valid image id, and try again.` | AMI 이름이 잘못되었습니다. 올바른 AMI ID가 제공되었는지 확인합니다. | 
| `Image (AMI_ID) operating system platform isn't supported. Specify a valid image, and try again.` |  SQL Server Enterprise, Standard 또는 Web Edition을 포함하는 Windows Server가 있는 지원되는 AMI를 선택하세요. EC2 Marketplace에서 다음 사용 작업 코드 중 하나를 사용하여 AMI를 선택합니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/custom-troubleshooting-sqlserver.html)  | 
| `SQL Server Web Edition isn't supported for creating a Custom Engine Version using Bring Your Own Media. Specify a valid image, and try again.` | 지원되는 에디션의 SQL Server가 포함된 AMI를 사용하세요. 자세한 내용은 [RDS Custom for SQL Server CEV에 대한 버전 지원](custom-cev-sqlserver.preparing.md#custom-cev-sqlserver.preparing.VersionSupport) 섹션을 참조하세요. | 
| `The custom engine version can't be the same as the OEV engine version. Specify a valid CEV, and try again.` | 클래식 RDS Custom for SQL Server 엔진 버전은 지원되지 않습니다. 예를 들어 **15.00.4073.23.v1** 버전은 지원되지 않습니다. 지원되는 버전 번호를 사용하세요. | 
| `The custom engine version isn't in an active state. Specify a valid CEV, and try again.` | 작업을 완료하려면 CEV가 `AVAILABLE` 상태여야 합니다. CEV를 `INACTIVE`에서 `AVAILABLE`로 수정합니다. | 
| `The custom engine version isn't valid for an upgrade. Specify a valid CEV with an engine version greater or equal to (X), and try again.` | 대상 CEV가 유효하지 않습니다. 유효한 업그레이드 경로에 대한 요구 사항을 확인하세요. | 
| `The custom engine version isn't valid. Names can include only lowercase letters (a-z), dashes (-), underscores (_), and periods (.). Specify a valid CEV, and try again.` | 필수 CEV 명명 규칙에 따르세요. 자세한 내용은 [RDS Custom for SQL Server CEV 요구 사항](custom-cev-sqlserver.preparing.md#custom-cev-sqlserver.preparing.Requirements) 섹션을 참조하세요. | 
| `The custom engine version isn't valid. Specify valid database engine version, and try again. Example: 15.00.4073.23-cev123.` | 지원되지 않는 DB 엔진 버전이 제공되었습니다. 지원되는 DB 엔진 버전을 사용하세요. | 
| `The expected architecture is (X) for image (AMI_ID), but architecture (Y) was found.` | **x86\$164** 아키텍처를 기반으로 구축된 AMI를 사용하세요. | 
| `The expected owner of image (AMI_ID) is customer account ID (ACCOUNT_ID), but owner (ACCOUNT_ID) was found.` | 권한이 있는 AMI에서 EC2 인스턴스를 생성하세요. EC2 인스턴스에서 Sysprep을 실행하여 기본 이미지를 생성하고 저장하세요. | 
| `The expected platform is (X) for image (AMI_ID), but platform (Y) was found.` | Windows 플랫폼으로 구축된 AMI를 사용하세요. | 
| `The expected root device type is (X) for image %s, but root device type (Y) was found.` | EBS 디바이스 유형을 사용하여 AMI를 생성하세요. | 
| `The expected SQL Server edition is (X), but (Y) was found.` |  SQL Server Enterprise, Standard 또는 Web Edition을 포함하는 Windows Server가 있는 지원되는 AMI를 선택하세요. EC2 Marketplace에서 다음 사용 작업 코드 중 하나를 사용하여 AMI를 선택합니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/custom-troubleshooting-sqlserver.html)  | 
| `The expected state is (X) for image (AMI_ID), but the following state was found: (Y).` | AMI가 `AVAILABLE` 상태인지 확인하세요. | 
| `The provided Windows OS name (X) isn’t valid. Make sure the OS is one of the following: (Y).` | 지원되는 Windows OS를 사용하세요. | 
| `Unable to find bootstrap log file in path.` | `C:\Program Files\Microsoft SQL Server\nnn\Setup Bootstrap\Log\Summary.txt`에서 로그 파일을 사용할 수 있는지 확인합니다. | 
| `RDS expected a Windows build version greater than or equal to (X), but found version (Y).`. | 최소 OS 빌드 버전이 **14393**인 AMI를 사용하세요. | 
| `RDS expected a Windows major version greater than or equal to (X), but found version (Y).`. | 최소 OS 메이저 버전이 **10.0** 이상인 AMI를 사용하세요. | 

## RDS Custom for SQL Server에서 지원되지 않는 구성 문제 해결
<a name="custom-troubleshooting-sqlserver.fix-unsupported"></a>

공유 책임 모델이므로 RDS Custom for SQL Server DB 인스턴스를 `unsupported-configuration` 상태로 전환시키는 구성 문제는 사용자가 해결해야 합니다. AWS 인프라와 관련된 문제인 경우 콘솔 또는 AWS CLI를 사용하여 해결할 수 있습니다. 운영 체제 또는 데이터베이스 구성에 문제가 있는 경우 호스트에 로그인하여 해결하면 됩니다.

**참고**  
이 섹션에서는 RDS Custom for SQL Server에서 지원되지 않는 구성 문제를 해결하는 방법을 알아봅니다. RDS Custom for Oracle에 대한 자세한 내용은 [RDS Custom for Oracle에서 지원되지 않는 구성 문제 해결](custom-troubleshooting.md#custom-troubleshooting.fix-unsupported) 섹션을 참조하세요.

다음 표에는 지원 경계에서 보내는 알림 이벤트와 이를 해결하는 방법에 대한 설명이 나와 있습니다. 이러한 알림과 지원 경계는 변경될 수 있습니다. 지원 경계의 배경은 [RDS Custom 지원 범위](custom-concept.md#custom-troubleshooting.support-perimeter) 섹션을 참조하세요. 이벤트 설명은 [Amazon RDS 이벤트 카테고리 및 이벤트 메시지](USER_Events.Messages.md) 섹션을 참조하세요.


| 이벤트 코드 | 구성 영역 | RDS 이벤트 메시지 | 검증 프로세스 | 
| --- | --- | --- | --- | 
|  `SP-S0000`  |  지원되지 않는 수동 구성  |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성]으로 설정된 이유는 다음과 같습니다. `X`   |  이 문제를 해결하려면 지원 사례를 생성하세요.  | 

**AWS 리소스(인프라)**


| 이벤트 코드 | 구성 영역 | RDS 이벤트 메시지 | 검증 프로세스 | 
| --- | --- | --- | --- | 
|  `SP-S1001`  |  EC2 인스턴스 상태  |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성](으)로 설정된 이유는 다음과 같습니다. 기본 EC2 인스턴스 %s이(가) RDS 인스턴스를 중단하지 않고 중지되었습니다. 기본 EC2 인스턴스를 시작하고 이진 볼륨 및 데이터 볼륨이 연결되어 있는지 확인하여 문제를 해결할 수 있습니다. RDS 인스턴스를 중지하려는 경우 먼저 기본 EC2 인스턴스가 AVAILABLE 상태인지 확인한 다음 RDS 콘솔 또는 CLI를 사용하여 RDS 인스턴스를 중지해야 합니다.  |  DB 인스턴스의 상태를 확인하려면 콘솔을 사용하거나 다음 AWS CLI 명령을 실행합니다. <pre>aws rds describe-db-instances \<br />    --db-instance-identifier db-instance-name |grep DBInstanceStatus<br />                            </pre>  | 
|  `SP-S1002`  |  EC2 인스턴스 상태  |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성](으)로 설정된 이유는 다음과 같습니다. RDS DB 인스턴스 상태는 `STOPPED`로 설정되었지만, 기본 EC2 인스턴스 %s이(가) 시작되었습니다. 기본 EC2 인스턴스를 중지하여 문제를 해결할 수 있습니다. RDS 인스턴스를 시작하려는 경우 콘솔 또는 CLI를 사용하세요.  |   다음 AWS CLI 명령을 사용하여 DB 인스턴스의 상태를 확인합니다. <pre>aws rds describe-db-instances \<br />    --db-instance-identifier db-instance-name |grep DBInstanceStatus</pre> EC2 콘솔을 사용하여 EC2 인스턴스의 상태를 확인할 수도 있습니다. DB 인스턴스를 시작하려면 콘솔을 사용하거나 다음 AWS CLI 명령을 실행합니다. <pre>aws rds start-db-instance \<br />    --db-instance-identifier db-instance-name</pre>  | 
|  `SP-S1003`   |  EC2 인스턴스 클래스  |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성](으)로 설정된 이유는 다음과 같습니다. EC2 호스트의 예상 DB 인스턴스 클래스와 구성된 DB 인스턴스 클래스 간에 불일치가 있습니다. DB 인스턴스 클래스를 원래 클래스 유형으로 수정하여 문제를 해결할 수 있습니다.  |   다음 CLI 명령을 사용하여 예상 DB 인스턴스 클래스를 확인합니다. <pre>aws rds describe-db-instances \<br />    --db-instance-identifier db-instance-name |grep DBInstanceClass</pre>  | 
|  `SP-S1004`  |  EBS 스토리지 볼륨에 액세스할 수 없음  |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성](으)로 설정된 이유는 다음과 같습니다. EC2 인스턴스에 연결된 원래 EBS 스토리지 볼륨 %s에 현재 액세스할 수 없습니다.    |    | 
|  `SP-S1005`  |  EBS 스토리지 볼륨이 분리됨  |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성](으)로 설정된 이유는 다음과 같습니다. 원본 EBS 스토리지 볼륨 'volume-id'가 연결되지 않았습니다. EC2 인스턴스에 연결된 EBS 볼륨을 연결하여 문제를 해결할 수 있습니다.    |   EBS 볼륨을 다시 연결한 후 다음 CLI 명령을 사용하여 EBS 볼륨 'volume-id'가 RDS 인스턴스에 제대로 연결되어 있는지 확인합니다. <pre>aws ec2 describe-volumes \<br />    --volume-ids volume-id |grep InstanceId</pre>  | 
|  `SP-S1006`  |  EBS 스토리지 볼륨 크기  |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성](으)로 설정된 이유는 다음과 같습니다. EBS 스토리지 볼륨 'volume-id'의 예상 설정과 구성된 설정이 일치하지 않습니다. EC2 수준에서 볼륨 크기가 원래 값인 [%s]에서 수동으로 변경되었습니다. 이 문제를 해결하려면 지원 사례를 생성하세요.    |   다음 CLI 명령을 사용하여 EBS 볼륨 'volume-id' 세부 정보와 RDS 인스턴스 세부 정보의 볼륨 크기를 비교합니다. <pre>aws rds describe-db-instances \<br />    --db-instance-identifier db-instance-name |grep AllocatedStorage</pre>  다음 CLI 명령을 사용하여 실제 할당된 볼륨 크기를 확인합니다. <pre>aws ec2 describe-volumes \<br />    --volume-ids |grep Size</pre>  | 
|  `SP-S1007`  |  EBS 스토리지 볼륨 구성  |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성](으)로 설정된 이유는 다음과 같습니다. EBS 스토리지 볼륨 'volume-id'의 예상 설정과 구성된 설정이 일치하지 않습니다. EBS 스토리지 볼륨 구성 [IOPS, 처리량, 볼륨 유형]을 EC2 수준에서 원래 값인 [IOPS: %s, 처리량: %s, 볼륨 유형: %s]로 수정하여 문제를 해결할 수 있습니다. 향후 스토리지 수정에는 RDS 콘솔 또는 CLI를 사용하세요. EC2 수준에서 볼륨 크기도 원래 값인 [%s]에서 수동으로 변경되었습니다. 이 문제를 해결하려면 지원 사례를 생성하세요.    |   다음 CLI 명령을 사용하여 EBS 볼륨 'volume-id' 세부 정보의 볼륨 유형과 RDS 인스턴스 세부 정보를 비교합니다. EBS 수준의 값이 RDS 수준의 값과 일치하는지 확인하세요. <pre>aws rds describe-db-instances \<br />    --db-instance-identifier db-instance-name |grep StorageType</pre> RDS 수준에서 스토리지 처리량의 예상 값을 구하는 방법: <pre>aws rds describe-db-instances \<br />    --db-instance-identifier db-instance-name |grep StorageThroughput</pre>  RDS 수준에서 볼륨 IOPS의 예상 값을 구하는 방법: <pre>aws rds describe-db-instances \<br />    --db-instance-identifier db-instance-name |grep Iops</pre> EC2 수준에서 현재 스토리지 유형을 가져오는 방법: <pre>aws ec2 describe-volumes \<br />    --volume-ids |grep VolumeType</pre>  EC2 수준에서 스토리지 처리량의 현재 값을 구하는 방법: <pre>aws ec2 describe-volumes \<br />    --volume-ids |grep Throughput</pre> EC2 수준에서 볼륨 IOPS의 현재 값을 구하는 방법: <pre>aws ec2 describe-volumes \<br />    --volume-ids |grep Iops</pre>  | 
|  `SP-S1008`  |  EBS 스토리지 볼륨 크기 및 구성  |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성](으)로 설정된 이유는 다음과 같습니다. EBS 스토리지 볼륨 'volume-id'의 예상 설정과 구성된 설정이 일치하지 않습니다. EBS 스토리지 볼륨 구성 [IOPS, 처리량, 볼륨 유형]을 EC2 수준에서 원래 값인 [IOPS: %s, 처리량: %s, 볼륨 유형: %s]로 수정하여 문제를 해결할 수 있습니다. 향후 스토리지 수정에는 RDS 콘솔 또는 CLI를 사용하세요. EC2 수준에서 볼륨 크기도 원래 값인 [%s]에서 수동으로 변경되었습니다. 이 문제를 해결하려면 지원 사례를 생성하세요.    |   다음 CLI 명령을 사용하여 EBS 볼륨 'volume-id' 세부 정보의 볼륨 유형과 RDS 인스턴스 세부 정보를 비교합니다. EBS 수준의 값이 RDS 수준의 값과 일치하는지 확인하세요. <pre>aws rds describe-db-instances \<br />    --db-instance-identifier db-instance-name |grep StorageType</pre> RDS 수준에서 스토리지 처리량의 예상 값을 구하는 방법: <pre>aws rds describe-db-instances \<br />    --db-instance-identifier db-instance-name |grep StorageThroughput</pre>  RDS 수준에서 볼륨 IOPS의 예상 값을 구하는 방법: <pre>aws rds describe-db-instances \<br />    --db-instance-identifier db-instance-name |grep Iops</pre> EC2 수준에서 현재 스토리지 유형을 가져오는 방법: <pre>aws ec2 describe-volumes \<br />    --volume-ids |grep VolumeType</pre>  EC2 수준에서 스토리지 처리량의 현재 값을 구하는 방법: <pre>aws ec2 describe-volumes \<br />    --volume-ids |grep Throughput</pre> EC2 수준에서 볼륨 IOPS의 현재 값을 구하는 방법: <pre>aws ec2 describe-volumes \<br />    --volume-ids |grep Iops</pre> 예상 할당된 볼륨 크기를 구하는 방법: <pre>aws rds describe-db-instances \<br />    --db-instance-identifier db-instance-name |grep AllocatedStorage</pre> 실제 할당된 볼륨 크기를 구하는 방법: <pre>aws ec2 describe-volumes \<br />    --volume-ids |grep Size</pre>  | 
|  `SP-S1009`  |  SQS 권한  |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성](으)로 설정된 이유는 다음과 같습니다. IAM 인스턴스 프로파일에 대한 Amazon Simple Queue Service(Amazon SQS) 권한이 누락되었습니다. 호스트와 연결된 IAM 프로파일에 ["SQS:SendMessage","SQS:ReceiveMessage","SQS:DeleteMessage","SQS:GetQueueUrl"] 권한이 있는지 확인하여 문제를 해결할 수 있습니다.    |    | 
|  `SP-S1010`  |  SQS VPC 엔드포인트  |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성](으)로 설정된 이유는 다음과 같습니다. VPC 엔드포인트 정책이 Amazon Simple Queue Service(Amazon SQS) 작업을 차단하고 있습니다. 필요한 SQS 작업을 허용하도록 VPC 엔드포인트 정책을 수정하여 문제를 해결할 수 있습니다.    |    | 
|  `SP-S1011`  |  이벤트 버스 정책  |  RDS Custom DB 인스턴스 상태가 다음과 같은 이유로 [지원되지 않는 구성]으로 설정되었습니다. 이벤트 버스 arn:aws:events:region-1:123456789012:event-bus/default에 대한 리소스 기반 정책이 Amazon CloudWatch events:PutEvents 작업을 거부함. EventBus %s에 대한 events:PutEvents 작업을 허용하도록 리소스 기반 정책을 수정하여 이 문제를 해결하세요.  |    | 
|  `SP-S1012`  |  CloudWatch VPC 권한  |  RDS Custom DB 인스턴스 상태가 다음과 같은 이유로 [지원되지 않는 구성]으로 설정되었습니다. VPC 엔드포인트 정책에 Amazon CloudWatch 이벤트에 액세스할 수 있는 권한이 누락됨. EventBus arn:aws:events:region-1:123456789012:event-bus/default에 대해 events:PutEvents를 허용하도록 VPC 엔드포인트 정책을 수정하여 이 문제를 해결하세요.  |    | 
|  `SP-S1013`  |  서비스 제어 정책  |  RDS Custom DB 인스턴스 상태가 다음과 같은 이유로 [지원되지 않는 구성]으로 설정되었습니다. AWS Organizations의 서비스 제어 정책에 Amazon CloudWatch 이벤트에 액세스할 수 있는 권한이 누락됨. EventBus arn:aws:events:region-1:123456789012:event-bus/default에 대해 events:PutEvents를 허용하도록 서비스 제어 정책을 수정하여 이 문제를 해결하세요.  |    | 
|  `SP-S1014`  |  IAM 인스턴스 프로파일  |  RDS Custom DB 인스턴스 상태가 다음과 같은 이유로 [지원되지 않는 구성]으로 설정되었습니다. IAM 인스턴스 프로파일 %s 권한이 Amazon CloudWatch 이벤트를 거부함. 인스턴스와 연결된 IAM 프로파일에서 ["events:PutEvents"]를 'Allow'로 설정하고 EventBus arn:aws:events:region-1:123456789012:event-bus/default에 대해 events:PutEvents를 허용하여 이 문제를 해결하세요.  |    | 
|  `SP-S1015`  |  IAM 인스턴스 프로파일  |  RDS Custom DB 인스턴스 상태가 다음과 같은 이유로 [지원되지 않는 구성]으로 설정되었습니다. IAM 인스턴스 프로파일 %s에 Amazon CloudWatch 권한이 누락됨. 인스턴스와 연결된 IAM 프로파일에서 ["events:PutEvents"] 권한을 포함하고 EventBus arn:aws:events:region-1:123456789012:event-bus/default에 대해 events:PutEvents를 허용하여 이 문제를 해결하세요.  |    | 
|  `SP-S1016`  |  IAM 권한 경계  |  RDS Custom DB 인스턴스 상태가 다음과 같은 이유로 [지원되지 않는 구성]으로 설정되었습니다. IAM 인스턴스 프로파일 %s 권한에 Amazon CloudWatch 이벤트를 거부하는 권한 경계가 있음. IAM 인스턴스 프로파일 권한 경계에서 EventBus arn:aws:events:region-1:123456789012:event-bus/default에 대해 ["events:PutEvents"]를 'Allow'로 설정하여 이 문제를 해결하세요.  |    | 

**운영 체제**


| 이벤트 코드 | 구성 영역 | RDS 이벤트 메시지 | 검증 프로세스 | 
| --- | --- | --- | --- | 
|  `SP-S2001`  |  SQL 서비스 상태  |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성](으)로 설정된 이유는 다음과 같습니다. SQL Server 서비스가 시작되지 않았습니다. 호스트에서 SQL Server 서비스를 다시 시작하여 문제를 해결할 수 있습니다. 이 DB 인스턴스가 다중 AZ DB 인스턴스이고 재시작이 실패할 경우 호스트를 중지하고 시작하여 장애 조치를 시작합니다.    |  | 
|  `SP-S2002`  |  RDS Custom 에이전트 상태  |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성](으)로 설정된 이유는 다음과 같습니다. RDS Custom 에이전트 서비스가 설치되지 않았거나 시작할 수 없습니다. Windows 이벤트 로그를 검토하여 서비스가 시작되지 않는 이유를 확인하고 적절한 조치를 취하여 문제를 수정하면 해결할 수 있습니다. 추가 지원이 필요한 경우 지원 사례를 생성하세요.    |  호스트에 로그인하고 RDS Custom 에이전트가 실행 중인지 확인합니다. 다음 명령을 사용하여 에이전트 상태를 볼 수 있습니다. <pre>$name = "RDSCustomAgent"<br />$service = Get-Service $name<br />Write-Host $service.Status</pre> 상태가 `Running`이 아니면 다음 명령을 사용하여 서비스를 시작할 수 있습니다. <pre>Start-Service $name</pre> 에이전트를 시작할 수 없는 경우 Windows 이벤트를 확인하여 에이전트를 시작할 수 없는 이유를 확인합니다. 에이전트를 사용하려면 Windows 사용자가 서비스를 시작해야 합니다. Windows 사용자가 존재하고 서비스를 실행할 권한이 있는지 확인하세요.  | 
|  `SP-S2003`  |  SSM 에이전트 상태  |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성](으)로 설정된 이유는 다음과 같습니다. Amazon SSM 에이전트 서비스에 연결할 수 없습니다. `Get-Service AmazonSSMAgent` PowerShell 명령으로 서비스 상태를 확인하거나 `Start-Service AmazonSSMAgent`로 서비스를 시작하여 문제를 해결할 수 있습니다. **ssm**, **ssmmessages**, **ec2messages** 리전 엔드포인트에 대한 HTTPS(포트 443) 아웃바운드 트래픽이 허용되는지 확인하세요.  |  자세한 내용은 [SSM Agent 문제 해결](https://docs.aws.amazon.com/systems-manager/latest/userguide/troubleshooting-ssm-agent.html)을 참조하세요. SSM 엔드포인트 문제를 해결하려면 [SSM 엔드포인트에 연결할 수 없음](https://docs.aws.amazon.com/systems-manager/latest/userguide/troubleshooting-ssm-agent.html#systems-manager-ssm-agent-troubleshooting-endpoint-access) 및 [ssm-cli를 사용하여 관리형 노드 가용성 문제 해결](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-cli.html#agent-ts-ssm-cli)을 참조하세요.  | 
|  `SP-S2004`  |  RDS Custom 에이전트 로그인  |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성](으)로 설정된 이유는 다음과 같습니다. SQL 로그인 `"$HOSTNAME/RDSAgent”`에서 예상치 못한 문제가 발생했습니다. 이 문제를 해결하려면 지원 사례를 생성하세요.  |  | 
|  `SP-S2005`  |  Timezone  |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성](으)로 설정된 이유는 다음과 같습니다. Amazon EC2 인스턴스 [%s]의 시간대가 변경되었습니다. 인스턴스 생성 시 지정된 설정으로 시간대를 다시 수정하여 문제를 해결할 수 있습니다. 특정 시간대의 인스턴스를 만들려면 RDS Custom 설명서를 참조하세요.   |  `Get-Timezone` PowerShell 명령을 실행하여 시간대를 확인합니다. 자세한 내용은 [RDS Custom for SQL Server DB 인스턴스의 현지 시간대](custom-reqs-limits-MS.TimeZone.md) 섹션을 참조하세요.  | 
|  `SP-S2006`  |  고가용성 소프트웨어 솔루션 버전  |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성](으)로 설정된 이유는 다음과 같습니다. 현재 인스턴스의 고가용성 소프트웨어 솔루션이 예상 버전과 다릅니다. 이 문제를 해결하려면 지원 사례를 생성하세요.   |  | 
|  `SP-S2007`  |  고가용성 소프트웨어 솔루션 구성  |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성](으)로 설정된 이유는 다음과 같습니다. 고가용성 소프트웨어 솔루션의 구성 설정이 %s 인스턴스에서 예상치 못한 값으로 수정되었습니다. 이 문제를 해결하려면 EC2 인스턴스를 재부팅합니다. EC2 인스턴스를 재부팅하면 설정이 고가용성 소프트웨어 솔루션에 필요한 구성으로 자동 업데이트됩니다.  |    | 
| SP-S2008 |  SQL Server 서비스   |  RDS Custom DB 인스턴스가 [지원되지 않는 구성](으)로 설정되었습니다. SQLServer(MSSQLServer) 서비스가 호스트에 없습니다. 이 문제를 해결하려면 지원 사례를 만드세요.  |  다음 명령을 사용하여 에이전트 상태를 볼 수 있습니다. <pre>$name = "MSSQLServer"<br />$service = Get-Service $name<br />Write-Host $service.Status</pre>  | 
| SP-S2009 | SSL 인증서 |  RDS 사용자 지정 DB 인스턴스는 RDS 중단을 유발하는 자체 서명되지 않은 SSL 인증서로 인해 [지원되지 않는 구성]으로 설정됩니다. 이 문제를 해결하려면 신뢰할 수 있는 루트 인증서 스토어에서 자체 서명되지 않은 인증서를 제거합니다.  |  다음 PowerShell 명령을 실행하여 자체 서명되지 않은 인증서를 검토합니다. <pre>Get-ChildItem cert:\LocalMachine\root -Recurse | Where-Object {$_.Issuer -ne $_.Subject -and $_.Issuer -notlike "*RDSCustomAgentCA*"}</pre> 자세한 내용은 [HTTP Error 403.16 when you try to access a website that's hosted on IIS](https://learn.microsoft.com/en-us/troubleshoot/developer/webapps/iis/site-behavior-performance/http-403-forbidden-access-website)를 참조하시기 바랍니다.  | 
| SP-S2010 | 루트 볼륨 스토리지 상태 |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성]으로 설정된 이유는 루트 볼륨 스토리지가 가득 찼기 때문입니다. 이 문제를 해결하려면 루트 EBS 볼륨 ‘volume-id’에서 최소 500MiB의 스토리지 공간을 확보하거나 볼륨 크기를 늘리고 EC2 인스턴스 ‘instance-id’에서 C 드라이브 크기를 조정합니다. EC2 인스턴스를 교체하면 루트 볼륨 크기 변경 사항이 유지되지 않습니다.  |  루트(C:) 볼륨에서 사용 가능한 스토리지를 보려면 다음 명령을 사용합니다. <pre>(Get-PSDrive -Name C).Free / 1MB</pre> EBS 루트 볼륨 수정에 대한 자세한 내용은 [방법](https://forums.aws.amazon.com/knowledge-center/expand-ebs-root-volume-windows) 섹션을 참조하세요.  | 

**데이터베이스**: 


| 이벤트 코드 | 구성 영역 | RDS 이벤트 메시지 | 검증 프로세스 | 
| --- | --- | --- | --- | 
|  `SP-S3001`  |  SQL Server 공유 메모리 프로토콜  |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성](으)로 설정된 이유는 다음과 같습니다. SQL Server 공유 메모리 프로토콜이 비활성화되었습니다. SQL Server Configuration Manager에서 공유 메모리 프로토콜을 활성화하여 문제를 해결할 수 있습니다.  |  **SQL Server Configuration Manager > SQL Server 네트워크 구성 > MSSQLSERVER용 프로토콜 > 공유 메모리**에서 활성화됨 상태를 확인하면 됩니다. 프로토콜을 활성화한 후 SQL Server 프로세스를 다시 시작합니다.  | 
|  `SP-S3002`  |  Service Master Key  |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성](으)로 설정된 이유는 다음과 같습니다. RDS 자동화에서 새로운 Service Master Key(SMK) 생성의 일부로 SMK 백업을 수행할 수 없습니다. 이 문제를 해결하려면 지원 사례를 생성하세요.  |    | 
|  `SP-S3003`  |  Service Master Key  |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성](으)로 설정된 이유는 다음과 같습니다. Service Master Key(SMK)와 관련된 메타데이터가 누락되었거나 불완전합니다. 이 문제를 해결하려면 지원 사례를 생성하세요.   |    | 
|  `SP-S3004`  |  DB 엔진 버전 및 에디션  |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성](으)로 설정된 이유는 다음과 같습니다. SQL Server의 필요한 버전 및 에디션과 설치된 버전 및 에디션 간에 불일치가 있습니다. RDS Custom for SQL Server에서 SQL Server 에디션 수정은 지원되지 않습니다. 또한 RDS Custom EC2 인스턴스에서 SQL Server 버전을 수동으로 변경하는 것도 지원되지 않습니다. 이 문제를 해결하려면 지원 사례를 생성하세요.   |   다음 쿼리를 실행하여 SQL 버전을 가져옵니다. <pre>select @@version</pre>  다음 AWS CLI 명령을 실행하여 RDS SQL 엔진 버전 및 에디션을 가져옵니다. <pre>aws rds describe-db-instances \<br />--db-instance-identifier db-instance-name |grep EngineVersion<br />aws rds describe-db-instances \<br />--db-instance-identifier db-instance-name |grep Engine</pre> 자세한 내용은 [RDS Custom for SQL Server DB 인스턴스 수정](custom-managing.modify-sqlserver.md) 및 [DB 인스턴스 엔진 버전 업그레이드](USER_UpgradeDBInstance.Upgrading.md)(을)를 참조하세요.  | 
|  `SP-S3005`   |  DB 엔진 에디션  |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성](으)로 설정된 이유는 다음과 같습니다. 현재 SQL Server 에디션이 필요한 SQL Server 에디션인 [%s]과(와) 일치하지 않습니다. RDS Custom for SQL Server에서 SQL Server 에디션 수정은 지원되지 않습니다. 이 문제를 해결하려면 지원 사례를 생성하세요.   |   다음 쿼리를 실행하여 SQL 에디션을 가져옵니다. 

**Example**  

```
select @@version
```  다음 AWS CLI 명령을 실행하여 RDS SQL 엔진 에디션을 가져옵니다. <pre>aws rds describe-db-instances \<br />--db-instance-identifier db-instance-name |grep Engine</pre>  | 
|  `SP-S3006`   |  DB 엔진 버전  |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성](으)로 설정된 이유는 다음과 같습니다. 현재 SQL Server 에디션이 필요한 SQL Server 에디션인 [%s]과(와) 일치하지 않습니다. RDS Custom EC2 인스턴스에서는 SQL Server 버전을 수동으로 변경할 수 없습니다. 이 문제를 해결하려면 지원 사례를 생성하세요. 향후 SQL Server 버전을 수정할 경우 AWS RDS 콘솔에서 또는 modify-db-instance CLI 명령을 통해 인스턴스를 수정할 수 있습니다.  |   다음 쿼리를 실행하여 SQL 버전을 가져옵니다. 

**Example**  

```
select @@version
```  다음 AWS CLI 명령을 실행하여 RDS SQL 엔진 버전을 가져옵니다. <pre>aws rds describe-db-instances \<br />--db-instance-identifier db-instance-name |grep EngineVersion</pre> 자세한 내용은 [RDS Custom for SQL Server DB 인스턴스 수정](custom-managing.modify-sqlserver.md) 및 [DB 인스턴스 엔진 버전 업그레이드](USER_UpgradeDBInstance.Upgrading.md)(을)를 참조하세요.  | 
|  `SP-S3007`  |  데이터베이스 파일 위치  |  RDS Custom DB 인스턴스 상태가 [지원되지 않는 구성](으)로 설정된 이유는 다음과 같습니다. 데이터베이스 파일이 D:\$1 드라이브 외부에 구성되어 있습니다. ROW, LOG, FILESTREAM 등을 비롯한 모든 데이터베이스 파일이 D:\$1 드라이브에 저장되어 있는지 확인하여 문제를 해결할 수 있습니다.  |  다음 쿼리를 실행하여 기본 경로에 없는 데이터베이스 파일의 위치를 나열합니다. <pre>USE master;<br />SELECT physical_name as  files_not_in_default_path<br />FROM sys.master_files<br />WHERE SUBSTRING(physical_name,1,3)!='D:\';<br /></pre>  | 
|  `SP-S3008`  |  데이터베이스 수 한도를 초과함  |  RDS Custom DB 인스턴스 상태가 다음과 같은 이유로 [지원되지 않는 구성]으로 설정되었습니다. DB 인스턴스의 총 데이터베이스 수가 최대 한도인 5,000개를 초과함. 이 문제를 해결하려면 데이터베이스 수를 지원되는 최대 한도 미만으로 줄이세요.  |  다음 명령을 사용하여 총 데이터베이스 수를 확인하세요. <pre>SELECT COUNT(name) as databaseCount<br />FROM sys.databases<br />WHERE name not in ('tempdb','master','model','msdb','DWDiagnostics','DWConfiguration','DWQueue');</pre>  | 

## RDS Custom for SQL Server에서 `Storage-Full` 문제 해결
<a name="custom-troubleshooting-storage-full"></a>

RDS Custom은 루트(C:) 볼륨도 모니터링합니다. RDS Custom for SQL Server DB 인스턴스는 루트 볼륨에 사용 가능한 디스크 공간이 500MiB 미만일 때 `unsupported-configuration` 상태로 전환됩니다. ([RDS Custom for SQL Server에서 지원되지 않는 구성 문제 해결](#custom-troubleshooting-sqlserver.fix-unsupported)의 `Event SP-S2010` 섹션 참조)

## RDS Custom for SQL Server에서 TDE 지원 데이터베이스의 PENDING\$1RECOVERY 상태 문제 해결
<a name="custom-troubleshooting-sqlserver.pending_recovery"></a>

자동 암호 해독에 문제가 발생해도 투명한 데이터 암호화(TDE)가 활성화된 SQL Server 데이터베이스는 `PENDING_RECOVERY` 상태를 유지할 수 있습니다. 이는 일반적으로 계정의 RDS Custom 관리형 S3 버킷에 저장된 소스 DB 인스턴스 Service Master Key(SMK) 백업 파일이 복원 완료 전에 삭제된 경우 DB 인스턴스 복원 후에 발생합니다.

자동 암호 해독을 활성화하고 TDE 지원 데이터베이스를 온라인으로 가져오려면 Database Master Key(DMK)를 암호로 열고 SMK를 사용하여 DMK를 암호화해야 합니다.

다음 SQL Server 명령을 참조용으로 사용하세요.

```
-- Identify PENDING_RECOVERY TDE databases
USE MASTER;
GO
SELECT name, is_encrypted, state_desc FROM sys.databases;
GO

-- Open DMK using password
OPEN MASTER KEY DECRYPTION BY PASSWORD = '<password>';
GO

-- Encrypt DMK using SMK
ALTER MASTER KEY ADD ENCRYPTION BY SERVICE MASTER KEY;
GO

-- Close SMK
CLOSE MASTER KEY;
GO

-- Bring the TDE databases online
ALTER DATABASE <database_name> SET ONLINE;
GO

-- Verify TDE databases are now in ONLINE state
SELECT name, is_encrypted, state_desc FROM sys.databases;
GO
```