

# RDS for SQL Server용 사용자 지정 엔진 버전 생성
<a name="sqlserver-dev-edition.creating-cev"></a>

RDS for SQL Server용 사용자 지정 엔진 버전(CEV)은 Amazon RDS로 가져온 SQL Server Developer Edition 설치 미디어로 구성됩니다. 기본 ISO 설치 관리자 및 누적 업데이트 파일(.exe)을 Amazon S3 버킷에 업로드해야 합니다. 업로드 후에는 RDS에서 CEV를 다운로드, 검증 및 생성할 수 있도록 Amazon S3 위치를 제공해야 합니다.

## 이름 지정 제한 사항
<a name="sqlserver-dev-edition.create-cev.naming-limitations"></a>

CEV를 생성할 때 특정 명명 규칙을 따라야 합니다.
+ CEV 이름은 `major-version.minor-version.customized-string` 패턴을 따라야 합니다.
+ `customized-string`에는 1\$150개의 영숫자, 밑줄, 대시 및 마침표를 포함할 수 있습니다. 예를 들어 SQL Server 2022의 경우 `16.00.4215.2.my-dev-cev`를 지정할 수 있습니다.

지원되는 모든 엔진 버전을 나열하려면 다음 명령을 사용합니다.

```
aws rds describe-db-engine-versions --engine sqlserver-dev-ee --output json --query "{DBEngineVersions: DBEngineVersions[?Status=='requires-custom-engine-version'].{Engine: Engine, EngineVersion: EngineVersion, Status: Status, DBEngineVersionDescription: DBEngineVersionDescription}}" 

{
    "DBEngineVersions": [
        {
            "Engine": "sqlserver-dev-ee",
            "EngineVersion": "16.00.4215.2.v1",
            "Status": "requires-custom-engine-version",
            "DBEngineDescription": "Microsoft SQL Server Enterprise Developer Edition",
            "DBEngineVersionDescription": "SQL Server 2022 16.00.4215.2.v1"
        }
    ]
}
```

## AWS CLI
<a name="sqlserver-dev-edition.create-cev.CLI"></a>

**사용자 지정 엔진 버전 생성**
+ [create-custom-db-engine-version](https://docs.aws.amazon.com/cli/latest/reference/rds/create-custom-db-engine-version.html) 명령을 사용합니다.

  다음 옵션이 필요합니다.
  + `--engine`
  + `--engine-version`
  + `--database-installation-files-s3-bucket-name`
  + `--database-installation-files`
  + `--region`

  다음 옵션도 지정할 수 있습니다.
  + `--database-installation-files-s3-prefix`
  + `--description`
  + `--tags`

  ```
  aws rds create-custom-db-engine-version \
  --engine sqlserver-dev-ee \
  --engine-version 16.00.4215.2.cev-dev-ss2022-cu21 \
  --region us-west-2 \
  --database-installation-files-s3-bucket-name my-s3-installation-media-bucket \
  --database-installation-files-s3-prefix sqlserver-dev-media \
  --database-installation-files "SQLServer2022-x64-ENU-Dev.iso" "SQLServer2022-KB5065865-x64.exe"
  ```

CEV 생성에는 일반적으로 15\$130분이 소요됩니다. CEV 생성 진행 상황을 모니터링하려면 다음 명령을 사용합니다.

```
# Check CEV status
aws rds describe-db-engine-versions \
--engine sqlserver-dev-ee \
--engine-version 16.00.4215.2.my-dev-cev \
--region us-west-2
```

## RDS for SQL Server CEV의 수명 주기
<a name="sqlserver-dev-cev-lifecycle"></a>

RDS for SQL Server에서 SQL Server Developer Edition을 사용하는 경우 사용자 지정 엔진 버전은 다양한 수명 주기 상태로 전환됩니다.


| 수명 주기 상태 | 설명 | 발생하는 경우 | 사용 가능한 작업 | 
| --- | --- | --- | --- | 
|  pending-validation  |  CEV 생성 시 초기 상태  |  `create-custom-db-engine-version` 명령을 사용하여 생성한 후의 초기 상태입니다.  |  `describe-db-engine-version`을 통해 상태를 모니터링합니다.  | 
|  검증  |  CEV 검증 상태  |  Amazon RDS가 사용자 지정 엔진 버전(CEV)을 검증하고 있습니다. 이 비동기 프로세스를 완료하는 데 다소 시간이 걸릴 수 있습니다.  |  검증이 완료될 때까지 상태를 모니터링합니다.  | 
|  사용 가능  |  사용자 지정 엔진 버전(CEV) 검증이 성공적으로 완료되었습니다.  |  이제 사용자 지정 엔진 버전(CEV)을 사용할 수 있습니다. Amazon RDS가 SQL Server ISO 및 누적 업데이트 파일을 성공적으로 검증했습니다. 이제 이 CEV를 사용하여 DB 인스턴스를 생성할 수 있습니다.  |  이 CEV를 사용하여 DB 인스턴스 생성  | 
|  실패  |  검증 검사가 실패하여 RDS for SQL Server에서 사용자 지정 엔진 버전(CEV)을 생성할 수 없습니다.  |  ISO 및 누적 미디어 검증이 실패했습니다.   |  ISO 검증이 실패했습니다. `describe-db-engine-version`에서 실패 이유를 확인하고 해시 불일치 또는 손상된 콘텐츠와 같은 파일 문제를 해결한 다음 사용자 지정 엔진 버전(CEV)을 다시 생성합니다.  | 
|  삭제 중  |  사용자 지정 엔진 버전(CEV)이 삭제 중입니다.  |  고객이 `delete-custom-db-engine-version`을 직접적으로 호출한 후 삭제 워크플로가 완료될 때까지.  |  `describe-db-engine-version`을 통해 상태를 모니터링합니다.  | 
|  incompatible-installation-media  |  Amazon RDS가 사용자 지정 엔진 버전(CEV)에 제공된 설치 미디어를 검증할 수 없습니다.  |  사용자 지정 엔진 버전(CEV) 검증이 실패했습니다. 이것은 종료 상태입니다.  |  `describe-db-engine-versions`를 통해 failureReason에서 검증이 실패한 이유에 대한 정보를 확인하고 CEV를 삭제합니다.  | 

### CEV 상태 설명
<a name="sqlserver-dev-cev-status-check"></a>

다음과 같이 AWS CLI를 사용하여 CEV 상태를 확인할 수 있습니다.

```
1. aws rds describe-db-engine-versions \
2. --engine sqlserver-dev-ee \
3. --engine-version 16.00.4215.2.my-dev-cev \
4. --region us-west-2 \
5. --query 'DBEngineVersions[0].{Version:EngineVersion,Status:Status}'
```

샘플 출력

```
| DescribeDBEngineVersions                     |
+------------+---------------------------------+
| Status | Version                             |
+------------+---------------------------------+
| available | 16.00.4215.2.cev-dev-ss2022-cu21    |
+------------+---------------------------------+
```

CEV에 `failed` 상태가 표시되면 다음 명령을 사용하여 이유를 확인할 수 있습니다.

```
1. aws rds describe-db-engine-versions \
2. --engine sqlserver-dev-ee \
3. --engine-version 16.00.4215.2.my-dev-cev \
4. --region us-west-2 \
5. --query 'DBEngineVersions[0].{Version:EngineVersion,Status:Status,FailureReason:FailureReason}'
```