

# RDS for MySQL DB 엔진 업그레이드
<a name="USER_UpgradeDBInstance.MySQL"></a>

Amazon RDS에서 새 데이터베이스 엔진 버전을 지원하는 경우, DB 인스턴스를 새 버전으로 업그레이드할 수 있습니다. MySQL 데이터베이스의 업그레이드에는 메이저 버전 업그레이드와 마이너 버전 업그레이드라는 2가지 종류가 있습니다.

**메이저 버전 업그레이드**  
*메이저 버전 업그레이드*에는 기존 애플리케이션과 호환되지 않는 데이터베이스 변경 사항이 포함될 수 있습니다. 따라서 DB 인스턴스의 메이저 버전 업그레이드를 수동으로 수행해야 합니다. DB 인스턴스를 수정하여 메이저 버전 업그레이드를 시작할 수 있습니다. 메이저 버전 업그레이드를 수행하기 전에 [RDS for MySQL 메이저 버전 업그레이드](USER_UpgradeDBInstance.MySQL.Major.md)의 지침을 따르는 것이 좋습니다.  
다중 AZ DB 인스턴스 배포의 메이저 버전 업그레이드인 경우 Amazon RDS는 기본 복제본과 대기 복제본을 동시에 업그레이드합니다. 업그레이드가 완료될 때까지 DB 인스턴스를 사용할 수 없습니다. 다중 AZ DB 클러스터 배포의 메이저 버전 업그레이드인 경우 Amazon RDS는 클러스터 멤버 인스턴스를 한 번에 하나씩 업그레이드합니다.  
블루/그린 배포를 사용하면 메이저 버전 업그레이드에 필요한 다운타임을 최소화할 수 있습니다. 자세한 내용은 [데이터베이스 업데이트에 Amazon RDS 블루/그린 배포 사용](blue-green-deployments.md) 섹션을 참조하세요.

**마이너 버전 업그레이드**  
마이너 버전 업그레이드에는 기존 애플리케이션과 호환되는 변경 사항만 포함됩니다.** DB 인스턴스를 수정하여 마이너 버전 업그레이드를 수동으로 시작할 수 있습니다. 또는 DB 인스턴스를 생성하거나 수정할 때 **마이너 버전 자동 업그레이드** 옵션을 활성화할 수 있습니다. 이렇게 하면 Amazon RDS에서 새 버전을 테스트 및 승인한 후 DB 인스턴스가 자동으로 업그레이드됩니다. 업그레이드 수행에 대한 자세한 내용은 [DB 인스턴스 엔진 버전 업그레이드](USER_UpgradeDBInstance.Upgrading.md) 섹션을 참조하세요.  
다중 AZ DB 클러스터의 마이너 버전 업그레이드를 수행하면 Amazon RDS는 리더 DB 인스턴스를 한 번에 하나씩 업그레이드합니다. 그러면 리더 DB 인스턴스가 새 라이터 DB 인스턴스로 전환됩니다. 그러면 Amazon RDS가 이전 라이터 인스턴스(현재는 리더 인스턴스)를 업그레이드합니다.  
다중 AZ DB 인스턴스 배포의 마이너 버전 업그레이드로 인한 다운타임은 몇 분 동안 지속될 수 있습니다.** 다중 AZ DB 클러스터는 일반적으로 마이너 버전 업그레이드의 가동 중지 시간을 약 35초로 줄입니다. RDS 프록시와 함께 사용하면 다운타임을 1초 이하로 더 줄일 수 있습니다. 자세한 내용은 [ Amazon RDS Proxy](rds-proxy.md) 섹션을 참조하세요. 또는 [ProxySQL](https://aws.amazon.com/blogs/database/achieve-one-second-or-less-of-downtime-with-proxysql-when-upgrading-amazon-rds-multi-az-deployments-with-two-readable-standbys/), [PgBouncer](https://aws.amazon.com/blogs/database/fast-switchovers-with-pgbouncer-on-amazon-rds-multi-az-deployments-with-two-readable-standbys-for-postgresql/) 또는 [AWS 고급 JDBC 래퍼 드라이버](https://aws.amazon.com/blogs/database/achieve-one-second-or-less-downtime-with-the-advanced-jdbc-wrapper-driver-when-upgrading-amazon-rds-multi-az-db-clusters/)와 같은 오픈 소스 데이터베이스 프록시를 사용할 수 있습니다.

또한 Amazon RDS는 업그레이드 롤아웃 정책을 지원하여 여러 데이터베이스 리소스 및 AWS 계정에서 자동 마이너 버전 업그레이드를 관리합니다. 자세한 내용은 [자동 마이너 버전 AWS Organizations 업그레이드에 업그레이드 롤아웃 정책 사용](RDS.Maintenance.AMVU.UpgradeRollout.md) 섹션을 참조하세요.

MySQL DB 인스턴스가 읽기 복제본을 사용하는 경우 소스 인스턴스를 업그레이드하기 전에 읽기 복제본을 모두 업그레이드해야 합니다.

**Topics**
+ [MySQL 업그레이드 고려 사항](#USER_UpgradeDBInstance.MySQL.Considerations)
+ [유효한 업그레이드 대상 찾기](#USER_UpgradeDBInstance.MySQL.FindingTargets)
+ [MySQL 버전 번호](USER_UpgradeDBInstance.MySQL.VersionID.md)
+ [RDS for MySQL의 RDS 버전 번호](USER_UpgradeDBInstance.MySQL.rds.version.md)
+ [RDS for MySQL 메이저 버전 업그레이드](USER_UpgradeDBInstance.MySQL.Major.md)
+ [RDS for MySQL 업그레이드 테스트](USER_UpgradeDBInstance.MySQL.UpgradeTesting.md)
+ [MySQL DB 인스턴스 업그레이드](#USER_UpgradeDBInstance.MySQL.Upgrading)
+ [RDS for MySQL 마이너 버전 자동 업그레이드](USER_UpgradeDBInstance.MySQL.Minor.md)
+ [RDS for MySQL 데이터베이스 업그레이드 시 읽기 전용 복제본을 사용하여 가동 중지 시간 단축](USER_UpgradeDBInstance.MySQL.ReducedDowntime.md)
+ [이벤트를 사용하여 RDS for MySQL 엔진 업그레이드 모니터링](USER_UpgradeDBInstance.MySQL.Monitoring.md)

## MySQL 업그레이드 고려 사항
<a name="USER_UpgradeDBInstance.MySQL.Considerations"></a>

Amazon RDS는 업그레이드 프로세스 중에 DB 스냅샷을 2개 이상 캡처합니다. Amazon RDS는 업그레이드를 변경하기 *전에* DB 인스턴스의 스냅샷을 최대 2개까지 캡처합니다. 업그레이드가 데이터베이스에 맞지 않는 경우에는 이 스냅샷을 복구하여 이전 버전을 실행하는 DB 인스턴스를 생성할 수 있습니다. Amazon RDS는 업그레이드가 완료되면 DB 인스턴스의 또 다른 스냅샷을 캡처합니다. Amazon RDS는 AWS Backup에서 DB 인스턴스의 백업을 관리하는지 여부에 관계없이 이러한 스냅샷을 생성합니다.

**참고**  
DB 인스턴스에 대한 백업 보존 기간을 0보다 큰 수로 설정하면 Amazon RDS는 DB 스냅샷만 캡처합니다. 백업 보존 기간을 변경하려면 [Amazon RDS DB 인스턴스 수정](Overview.DBInstance.Modifying.md) 섹션을 참조하세요.

업그레이드가 완료되면 이전 버전의 데이터베이스 엔진으로 되돌릴 수 없습니다. 이때 이전 버전으로 되돌리려면 첫 번째로 캡처한 DB 스냅샷을 복구하여 새로운 DB 인스턴스를 생성해야 합니다.

DB 인스턴스를 Amazon RDS가 지원하는 새 버전으로 업그레이드하는 시기는 사용자가 직접 관리합니다. 이러한 관리 수준은 특정 데이터베이스 버전과 호환성을 유지하거나 프로덕션 환경에 배포하기 전에 애플리케이션을 이용해 새 버전을 테스트하는 데 효과적입니다. 모든 준비를 마치면 일정에 가장 적합한 시기에 버전 업그레이드를 실행할 수 있습니다.

DB 인스턴스가 읽기 복제본을 사용하는 경우 소스 인스턴스를 업그레이드하기 전에 읽기 복제본부터 모두 업그레이드해야 합니다.

## 유효한 업그레이드 대상 찾기
<a name="USER_UpgradeDBInstance.MySQL.FindingTargets"></a>

AWS Management Console을 사용하여 DB 인스턴스를 업그레이드하면 DB 인스턴스의 유효한 업그레이드 대상이 표시됩니다. 다음 AWS CLI 명령을 실행하여 DB 인스턴스의 유효한 업그레이드 대상을 식별할 수도 있습니다.

대상 LinuxmacOS, 또는Unix:

```
aws rds describe-db-engine-versions \
  --engine mysql \
  --engine-version {{version_number}} \
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
```

Windows의 경우:

```
aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version {{version_number}} ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
```

예를 들어 MySQL 버전 8.0.28 DB 인스턴스의 유효한 업그레이드 대상을 식별하려면 다음 AWS CLI 명령을 실행합니다.

대상 LinuxmacOS, 또는Unix:

```
aws rds describe-db-engine-versions \
  --engine mysql \
  --engine-version 8.0.28 \
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
```

Windows의 경우:

```
aws rds describe-db-engine-versions ^
  --engine mysql ^
  --engine-version 8.0.28 ^
  --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
```

## MySQL DB 인스턴스 업그레이드
<a name="USER_UpgradeDBInstance.MySQL.Upgrading"></a>

MySQL DB 인스턴스의 수동 또는 자동 업그레이드에 대한 자세한 내용은 [DB 인스턴스 엔진 버전 업그레이드](USER_UpgradeDBInstance.Upgrading.md) 섹션을 참조하세요.