

# 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
```