

# 현재 위치 업그레이드 수행 방법
<a name="AuroraMySQL.Upgrading.Procedure"></a>

[Aurora MySQL 현재 위치 주 버전 업그레이드 작동 방식](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Upgrading.Sequence)의 배경 자료를 검토하는 것이 좋습니다.

[Aurora MySQL 클러스터에 대한 주 버전 업그레이드 계획](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Upgrading.Planning)에 설명된 대로 사전 업그레이드 계획 및 테스트를 수행합니다.

## 콘솔
<a name="AuroraMySQL.Upgrading.ModifyingDBCluster.CON"></a>

다음 예제에서는 `mydbcluster-cluster` DB 클러스터를 Aurora MySQL 버전 3.04.1로 업그레이드합니다.

**Aurora MySQL DB 클러스터의 주 버전을 업그레이드하는 방법**

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

1. 원래 DB 클러스터에 사용자 지정 파라미터 그룹을 사용한 경우 새 메이저 버전과 호환되는 해당 파라미터 그룹을 생성합니다. 새 파라미터 그룹의 구성 파라미터를 필요에 따라 조정합니다. 자세한 내용은 [현재 위치 업그레이드가 클러스터의 파라미터 그룹에 미치는 영향](#AuroraMySQL.Upgrading.ParamGroups) 섹션을 참조하세요.

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

1.  목록에서 수정할 DB 클러스터를 선택합니다.

1.  **수정**을 선택합니다.

1.  **버전**에 새 Aurora MySQL 메이저 버전을 선택합니다.

   일반적으로 메이저 버전의 최신 마이너 버전을 사용하는 것이 좋습니다. 여기에서는 현재의 기본 버전을 선택합니다.  
![Aurora MySQL DB 클러스터 버전 2에서 버전 3으로의 현재 위치 업그레이드](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/ams-upgrade-v2-v3.png)

1.  [**Continue**]를 선택합니다.

1.  다음 페이지에서 업그레이드 수행 시기를 지정합니다. **다음 예약된 유지 관리 기간 중** 또는 **즉시**를 선택합니다.

1.  (선택 사항) 업그레이드하는 동안 RDS 콘솔에서 **이벤트** 페이지를 주기적으로 검사합니다. 이렇게 하면 업그레이드 진행 상황을 모니터링하고 모든 문제를 식별할 수 있습니다. 업그레이드에 문제가 발생하면 수행할 단계에 대한 [Aurora MySQL 현재 위치 업그레이드를 위한 문제 해결](AuroraMySQL.Upgrading.Troubleshooting.md)를 참조하십시오.

1. 이 절차를 시작할 때 새 파라미터 그룹을 생성한 경우 사용자 지정 파라미터 그룹을 업그레이드된 클러스터와 연결합니다. 자세한 내용은 [현재 위치 업그레이드가 클러스터의 파라미터 그룹에 미치는 영향](#AuroraMySQL.Upgrading.ParamGroups) 섹션을 참조하세요.
**참고**  
 이 단계를 수행하려면 클러스터를 다시 시작하여 새 파라미터 그룹을 적용해야 합니다.

1.  (선택 사항) 업그레이드 후 테스트를 완료한 후 Aurora이 업그레이드 시작 시 생성한 수동 스냅샷을 삭제합니다.

## AWS CLI
<a name="AuroraMySQL.Upgrading.ModifyingDBCluster.CLI"></a>

Aurora MySQL DB 클러스터의 메이저 버전을 업그레이드하려면 다음 필수 파라미터와 함께 AWS CLI [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) 명령을 사용합니다.
+ `--db-cluster-identifier`
+ `--engine-version`
+ `--allow-major-version-upgrade`
+  `--apply-immediately` 또는 `--no-apply-immediately`

클러스터에서 사용자 지정 파라미터 그룹을 사용하는 경우 다음 옵션 중 하나 또는 모두를 포함합니다.
+ `--db-cluster-parameter-group-name`클러스터가 사용자 지정 클러스터 파라미터 그룹을 사용하는 경우 
+ `--db-instance-parameter-group-name`클러스터의 인스턴스가 사용자 지정 DB 파라미터 그룹을 사용하는 경우 

다음 예제에서는 `sample-cluster` DB 클러스터를 Aurora MySQL 버전 3.04.1로 업그레이드합니다. 업그레이드는 다음 유지 관리 기간을 기다리는 대신 즉시 수행됩니다.

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

```
aws rds modify-db-cluster \
          --db-cluster-identifier sample-cluster \
          --engine-version 8.0.mysql_aurora.3.04.1 \
          --allow-major-version-upgrade \
          --apply-immediately
```
Windows의 경우:  

```
aws rds modify-db-cluster ^
          --db-cluster-identifier sample-cluster ^
          --engine-version 8.0.mysql_aurora.3.04.1 ^
          --allow-major-version-upgrade ^
          --apply-immediately
```
다른 CLI 명령을 `modify-db-cluster`와 결합하여 업그레이드 수행 및 확인을 위한 자동화된 종단 간 프로세스를 생성할 수 있습니다. 자세한 정보와 지침은 [Aurora MySQL 현재 위치 업그레이드 자습서](AuroraMySQL.Upgrading.Tutorial.md) 단원을 참조하십시오.

**참고**  
클러스터가 Aurora Global Database의 일부라면 현재 위치 업그레이드 절차가 약간 다릅니다. [modify-global-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-global-cluster.html) 명령 작업을 `modify-db-cluster` 대신 호출합니다. 자세한 내용은 [글로벌 데이터베이스에 대한 현재 위치 메이저 업그레이드](#AuroraMySQL.Upgrading.GlobalDB) 섹션을 참조하세요.

## RDS API
<a name="AuroraMySQL.Upgrading.ModifyingDBCluster.API"></a>

Aurora MySQL DB 클러스터의 메이저 버전을 업그레이드하려면 다음 필수 파라미터와 함께 RDS API 작업 [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html)를 사용합니다.
+ `DBClusterIdentifier`
+ `Engine`
+ `EngineVersion`
+ `AllowMajorVersionUpgrade`
+ `ApplyImmediately` (`true` 또는 `false`로 설정)

**참고**  
클러스터가 Aurora Global Database의 일부라면 현재 위치 업그레이드 절차가 약간 다릅니다. [ModifyGlobalCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyGlobalClusterParameterGroup.html) 작업을 `ModifyDBCluster` 대신 호출합니다. 자세한 내용은 [글로벌 데이터베이스에 대한 현재 위치 메이저 업그레이드](#AuroraMySQL.Upgrading.GlobalDB) 섹션을 참조하세요.

## 현재 위치 업그레이드가 클러스터의 파라미터 그룹에 미치는 영향
<a name="AuroraMySQL.Upgrading.ParamGroups"></a>

Aurora 파라미터 그룹은 서로 다른 MySQL 버전과 호환되는 클러스터에 대해 서로 다른 구성 설정 세트를 가지고 있습니다. 현재 위치 업그레이드를 수행할 경우, 업그레이드된 클러스터와 모든 인스턴스는 새 주요 버전과 호환되는 해당 클러스터 및 인스턴스 파라미터 그룹을 사용해야 합니다.

클러스터와 인스턴스가 소스 버전의 기본 파라미터 그룹을 사용하는 경우 업그레이드된 클러스터와 인스턴스는 대상 버전의 기본 파라미터 그룹으로 자동으로 시작됩니다. 클러스터 및 인스턴스에서 사용자 지정 파라미터 그룹을 사용하는 경우 대상 버전과 호환되는 해당 파라미터 그룹을 생성해야 합니다. 또한 업그레이드 프로세스 중에 이를 지정해야 합니다.

다음 표에는 각 업그레이드 경로의 기본 파라미터 그룹 매핑이 나와 있습니다.


| 업그레이드 경로 | 소스 기본 파라미터 그룹 | 대상 기본 파라미터 그룹 | 
| --- | --- | --- | 
| Aurora MySQL 버전 2에서 3까지 | default.aurora-mysql5.7 | default.aurora-mysql8.0 | 
| Aurora MySQL 버전 3에서 8.4까지 | default.aurora-mysql8.0 | default.aurora-mysql8.4 | 

**참고**  
대부분의 파라미터 설정에서는 두 지점에서 사용자 정의 파라미터 그룹을 선택할 수 있습니다. 클러스터를 만들 때와 나중에 파라미터 그룹을 클러스터와 연결할 때입니다.  
그러나 `lower_case_table_names` 파라미터에 대해 기본값이 아닌 설정을 사용하는 경우 미리 이 설정으로 사용자 정의 파라미터 그룹을 설정해야 합니다. 그런 다음, 클러스터를 생성하기 위해 스냅샷 복원을 수행하는 경우 파라미터 그룹을 지정합니다. `lower_case_table_names` 파라미터에 대한 모든 변경은 클러스터를 생성한 후에는 효력이 없습니다.  
메이저 버전 업그레이드를 수행할 때 `lower_case_table_names`에 동일한 설정을 사용하는 것이 좋습니다.  
Aurora MySQL 기반의 Aurora 글로벌 데이터베이스를 사용하는 경우, `lower_case_table_names` 파라미터를 기본값으로 설정하고 글로벌 데이터베이스를 재부팅해야만 현재 위치에서 주요 버전 업그레이드를 수행할 수 있습니다. 사용할 수 있는 메서드에 대한 자세한 내용은 [메이저 버전 업그레이드](aurora-global-database-upgrade.md#aurora-global-database-upgrade.major) 섹션을 참조하세요.

## Aurora MySQL 버전 간의 클러스터 속성 변경
<a name="AuroraMySQL.Upgrading.Attrs"></a>

주요 버전 업그레이드를 수행할 때는 Aurora MySQL 클러스터 및 DB 인스턴스를 설정하거나 관리하는 데 사용하는 모든 애플리케이션 또는 스크립트를 확인해야 합니다.

또한, 파라미터 그룹을 조작하는 코드를 수정하여 각 주요 버전마다 기본 파라미터 그룹 이름이 다르다는 점을 고려해야 합니다.

**Aurora MySQL 버전 2에서 3까지**

예를 들어 업그레이드 전에 클러스터에 적용되는 다음과 같은 코드가 있을 수 있습니다.

```
# Check the default parameter values for MySQL 5.7–compatible clusters.
aws rds describe-db-parameters {{--db-parameter-group-name default.aurora-mysql5.7}} --region us-east-1
```

클러스터의 주 버전을 업그레이드한 후 다음과 같이 해당 코드를 수정합니다.

```
# Check the default parameter values for MySQL 8.0–compatible clusters.
aws rds describe-db-parameters {{--db-parameter-group-name default.aurora-mysql8.0}} --region us-east-1
```

**Aurora MySQL 버전 3에서 8.4까지**

마찬가지로 버전 3 기본 파라미터 그룹을 참조하는 코드가 있는 경우 업그레이드 후 업데이트합니다.

```
# Before upgrade: Check the default parameter values for MySQL 8.0–compatible clusters.
aws rds describe-db-parameters {{--db-parameter-group-name default.aurora-mysql8.0}} --region us-east-1
```

```
# After upgrade: Check the default parameter values for MySQL 8.4–compatible clusters.
aws rds describe-db-parameters {{--db-parameter-group-name default.aurora-mysql8.4}} --region us-east-1
```

## 글로벌 데이터베이스에 대한 현재 위치 메이저 업그레이드
<a name="AuroraMySQL.Upgrading.GlobalDB"></a>

 Aurora Global Database의 경우 글로벌 데이터베이스 클러스터를 업그레이드합니다. Aurora는 자동으로 모든 클러스터를 동시에 업그레이드하고 모든 클러스터가 동일한 엔진 버전을 실행하도록 합니다. 이 요구 사항은 시스템 테이블, 데이터 파일 형식 등에 대한 변경 내용이 모든 보조 클러스터에 자동으로 복제되기 때문입니다.

[Aurora MySQL 현재 위치 주 버전 업그레이드 작동 방식](AuroraMySQL.Updates.MajorVersionUpgrade.md#AuroraMySQL.Upgrading.Sequence)의 지침을 따르세요. 업그레이드할 대상을 지정할 때 포함된 클러스터 중에서 대신 글로벌 데이터베이스 클러스터를 선택해야 합니다.

AWS Management Console을 사용하는 경우 **글로벌 데이터베이스(Global database)** 역할이 있는 항목을 선택합니다.

![글로벌 데이터베이스 클러스터 업그레이드](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/aurora-global-databases-major-upgrade-global-cluster.png)


 AWS CLI 또는 RDS API를 사용하는 경우에는 [modify-global-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-global-cluster.html) 명령 또는 [ModifyGlobalCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyGlobalCluster.html) 작업을 호출하여 업그레이드 프로세스를 시작합니다. `modify-db-cluster` 또는 `ModifyDBCluster` 대신 이중 하나를 사용합니다.

**참고**  
해당 Aurora Global Database의 메이저 버전 업그레이드를 수행하는 동안에는 글로벌 데이터베이스 클러스터에 대한 사용자 지정 파라미터 그룹을 지정할 수 없습니다. 전역 클러스터의 각 리전에 사용자 지정 파라미터 그룹을 생성합니다. 그런 다음 업그레이드 후 리전 클러스터에 수동으로 적용합니다.

 AWS CLI를 사용하여 Aurora MySQL 글로벌 데이터베이스 클러스터의 메이저 버전을 업그레이드하려면 다음 필수 파라미터와 함께 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-global-cluster.html) 명령을 사용합니다.
+  `--global-cluster-identifier` 
+  `--engine aurora-mysql` 
+  `--engine-version` 
+  `--allow-major-version-upgrade` 

다음 예에서는 글로벌 데이터베이스 클러스터를 Aurora MySQL 버전 3.04.2로 업그레이드합니다.

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

```
aws rds modify-global-cluster \
          --global-cluster-identifier {{global_cluster_identifier}} \
          --engine aurora-mysql \
          --engine-version 8.0.mysql_aurora.3.04.2 \
          --allow-major-version-upgrade
```
Windows의 경우:  

```
aws rds modify-global-cluster ^
          --global-cluster-identifier {{global_cluster_identifier}} ^
          --engine aurora-mysql ^
          --engine-version 8.0.mysql_aurora.3.04.2 ^
          --allow-major-version-upgrade
```

## 교차 리전 읽기 전용 복제본이 있는 DB 클러스터의 현재 위치 업그레이드
<a name="AuroraMySQL.Upgrading.XRRR"></a>

현재 위치 업그레이드 프로시저를 사용하여 교차 리전 읽기 전용 복제본이 있는 Aurora DB 클러스터를 업그레이드할 수 있지만, 다음과 같은 몇 가지 고려 사항이 있습니다.
+ 먼저 읽기 전용 복제본 DB 클러스터를 업그레이드해야 합니다. 기본 클러스터를 먼저 업그레이드하려고 하면 다음과 같은 오류 메시지가 표시됩니다.

  연결된 Aurora 교차 리전 복제본 test-xr-replica-cluster가 아직 패치가 적용되지 않았으므로 DB 클러스터 test-xr-primary-cluster를 업그레이드할 수 없습니다. Aurora 교차 리전 복제본을 업그레이드하고 다시 시도합니다.

  즉, 기본 DB 클러스터는 복제본 클러스터보다 DB 엔진 버전이 더 높을 수 없습니다.
+ 기본 DB 클러스터를 업그레이드하기 전에 쓰기 워크로드를 중지하고 기본 클러스터의 라이터 DB 인스턴스에 대한 새 연결 요청을 비활성화합니다.
+ 기본 클러스터를 업그레이드할 때 `binlog_format` 파라미터가 이진 로깅 복제를 지원하는 값으로 설정된 사용자 지정 DB 클러스터 파라미터 그룹(예: `MIXED`)을 선택합니다.

  Aurora MySQL을 통한 이진 로깅 사용에 대한 자세한 내용은 [Aurora과 MySQL 간의 복제 또는 Aurora와 다른 Aurora DB 클러스터(이진 로그 복제본) 간의 복제](AuroraMySQL.Replication.MySQL.md)을(를) 참조하세요. Aurora MySQL 구성 파라미터 수정에 대한 자세한 내용은 [Aurora MySQL 구성 파라미터](AuroraMySQL.Reference.ParameterGroups.md) 및 [Amazon Aurora의 파라미터 그룹](USER_WorkingWithParamGroups.md)을(를) 참조하세요.
+ 복제본 클러스터를 업그레이드한 후 기본 DB 클러스터를 업그레이드하기까지 오래 기다리지 마세요. 다음 유지 관리 기간보다 오래 기다리지 않는 것이 좋습니다.
+ 기본 DB 클러스터를 업그레이드한 후 라이터 DB 인스턴스를 재부팅합니다. Binlog 복제를 활성화하는 사용자 지정 DB 클러스터 파라미터 그룹은 라이터 DB 인스턴스가 재부팅될 때까지 적용되지 않습니다.
+ 교차 리전 복제가 다시 시작되었고 보조 AWS 리전의 복제 지연이 0임을 확인할 때까지 쓰기 워크로드를 다시 시작하거나 라이터 DB 인스턴스에 대한 연결을 활성화하지 마세요.