

# 마이너 버전 업그레이드 수행
<a name="USER_UpgradeDBInstance.PostgreSQL.MinorUpgrade"></a>

다음 방법을 사용하여 DB 클러스터의 마이너 버전을 업그레이드하거나 DB 클러스터에 패치를 적용할 수 있습니다.

**Topics**
+ [마이너 버전 업그레이드를 수행하기 전](#USER_UpgradeDBInstance.PostgreSQL.BeforeMinor)
+ [마이너 버전 업그레이드 수행 및 패치 적용 방법](#USER_UpgradeDBInstance.PostgreSQL.Minor)
+ [마이너 릴리스 업그레이드 및 제로 가동 중지 패치 적용](#USER_UpgradeDBInstance.PostgreSQL.Minor.zdp)
+ [제로 가동 중지 패치 적용의 제한 사항](#USER_UpgradeDBInstance.PostgreSQL.Minor.zdp.limitations)
+ [Aurora PostgreSQL 엔진을 새로운 마이너 버전으로 업그레이드](#USER_UpgradeDBInstance.MinorUpgrade)

## 마이너 버전 업그레이드를 수행하기 전
<a name="USER_UpgradeDBInstance.PostgreSQL.BeforeMinor"></a>

마이너 버전 업그레이드 중에 가동 중지 시간을 줄이려면 다음 작업을 수행하는 것이 좋습니다.
+ Aurora DB 클러스터 유지 관리는 트래픽이 적은 기간에 수행해야 합니다. 성능 개선 도우미를 사용하여 이러한 기간을 식별하여 유지 관리 기간을 올바르게 구성하세요. 성능 개선 도우미에 대한 자세한 내용은 [Amazon RDS에서 성능 개선 도우미를 통한 DB 로드 모니터링](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PerfInsights.html)을 참조하세요. DB 클러스터 유지 관리 기간에 대한 자세한 내용은 [기본 DB 클러스터 유지 관리 기간 조정](USER_UpgradeDBInstance.Maintenance.md#AdjustingTheMaintenanceWindow.Aurora) 섹션을 참조하세요.
+ 지수 백오프와 지터를 지원하는 AWS SDK를 모범 사례로 사용하세요. 자세한 내용은 [지수 백오프 및 지터](https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/)를 참조하세요.

## 마이너 버전 업그레이드 수행 및 패치 적용 방법
<a name="USER_UpgradeDBInstance.PostgreSQL.Minor"></a>

마이너 버전 업그레이드 및 패치는 엄격한 테스트를 거친 후에만 AWS 리전에 공개됩니다. Aurora PostgreSQL은 업그레이드 및 패치를 출시하기 전에 마이너 커뮤니티 버전 출시 이후에 발생하는 알려진 보안 문제, 버그 및 기타 문제가 Aurora PostgreSQL 플릿 안정성을 저해하지 않도록 테스트합니다.

Aurora PostgreSQL에 **마이너 버전 자동 업그레이드 사용**이 켜져 있으면 지정된 유지 관리 기간 동안 DB 클러스터가 주기적으로 업그레이드됩니다. **마이너 버전 자동 업그레이드 사용** 옵션이 Aurora PostgreSQL DB 클러스터의 모든 인스턴스에서 설정되어 있는지 확인합니다. **자동 마이너 버전 업그레이드**를 설정하는 방법과 클러스터 및 인스턴스 수준에서 설정을 적용한 경우 작동 방식에 대한 자세한 내용은 [Aurora DB 클러스터 마이너 버전 자동 업그레이드](USER_UpgradeDBInstance.Maintenance.md#Aurora.Maintenance.AMVU) 섹션을 참조하세요.

다음과 같이 [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) AWS CLI 명령을 사용하여 모든 Aurora PostgreSQL DB 클러스터에 대한 **마이너 버전 자동 업그레이드 사용** 옵션 값을 확인합니다.

```
aws rds describe-db-instances \
  --query '*[].{DBClusterIdentifier:DBClusterIdentifier,DBInstanceIdentifier:DBInstanceIdentifier,AutoMinorVersionUpgrade:AutoMinorVersionUpgrade}'
```

이 쿼리는 `AutoMinorVersionUpgrade` 설정 상태에 대한 `true` 또는 `false` 값과 함께 모든 Aurora DB 클러스터 및 해당 인스턴스 목록을 반환합니다. 명령에서는 기본 AWS 리전을 대상으로 삼도록 AWS CLI가 구성되어 있다고 가정합니다.

AmVU 옵션과 AmVU를 사용하도록 Aurora DB 클러스터를 수정하는 방법에 대한 자세한 내용은 [Aurora DB 클러스터 마이너 버전 자동 업그레이드](USER_UpgradeDBInstance.Maintenance.md#Aurora.Maintenance.AMVU) 섹션을 참조하세요.

유지 관리 태스크에 응답하거나 새 버전을 사용하도록 클러스터를 수정하여 Aurora PostgreSQL DB 클러스터를 새 마이너 버전으로 업그레이드할 수 있습니다.

RDS 콘솔을 사용하고 **권장 사항(Recommendations)** 메뉴를 열어 Aurora PostgreSQL DB 클러스터에 사용 가능한 업그레이드 또는 패치를 식별할 수 있습니다. 여기에는 **이전 마이너 버전(Old minor versions)**과 같은 다양한 유지 관리 문제 목록이 나와 있습니다. 프로덕션 환경에 따라 다음과 같이 업그레이드를 **예약**하거나 **지금 적용(Apply now)**을 선택하여 즉각적인 조치를 취할 수 있습니다.

![\[최신 마이너 버전으로 업그레이드하기 위한 권장 사항이 표시된 콘솔 이미지\]](http://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/AuroraUserGuide/images/apg-maintenance-upgrade-minor.png)


패치 및 마이너 버전 업그레이드를 수동으로 적용하는 방법을 포함하여 Aurora DB 클러스터를 유지 관리하는 방법을 자세히 알아보려면 [Amazon Aurora DB 클러스터 유지 관리](USER_UpgradeDBInstance.Maintenance.md) 섹션을 참조하세요.

## 마이너 릴리스 업그레이드 및 제로 가동 중지 패치 적용
<a name="USER_UpgradeDBInstance.PostgreSQL.Minor.zdp"></a>

Aurora PostgreSQL DB 클러스터를 업그레이드하면 중단이 발생할 수 있습니다. 업그레이드 프로세스 중에 데이터베이스가 업그레이드될 때 데이터베이스가 종료됩니다. 데이터베이스가 사용 중인 동안 업그레이드를 시작하면 DB 클러스터에서 처리하는 모든 연결 및 트랜잭션이 손실됩니다. 업그레이드를 수행하기 위해 데이터베이스가 유휴 상태가 될 때까지 기다리려면 오랜 시간을 기다려야 할 수 있습니다.

제로 가동 중지 패치 적용(ZDP) 기능은 업그레이드 프로세스를 개선합니다. ZDP를 사용하면 Aurora PostgreSQL DB 클러스터에 미치는 영향을 최소화하면서 마이너 버전 업그레이드와 패치를 모두 적용할 수 있습니다. Aurora PostgreSQL 버전 및 해당 마이너 버전의 더 높은 버전 릴리스와 더 최신의 메이저 버전 릴리스에 패치 또는 더 최신의 마이너 버전 업그레이드를 적용할 때 ZDP가 사용됩니다. 즉, 이러한 릴리스에서 새 마이너 버전으로 업그레이드하면 ZDP가 적용됩니다.

다음 테이블에는 ZDP를 사용할 수 있는 Aurora PostgreSQL 버전과 DB 인스턴스 클래스가 나와 있습니다.


| 버전 | db.r\$1 instance classes | db.t\$1 instance classes | db.x\$1 instance classes | db.serverless instance class | 
| --- | --- | --- | --- | --- | 
| 10.21 이상 버전 | 예 | 예 | 예 | 해당 사항 없음 | 
| 11.16 이상 버전 | 예 | 예 | 예 | 해당 사항 없음 | 
| 11.17 이상 버전 | 예 | 예 | 예 | 해당 사항 없음 | 
| 12.11 이상 버전 | 예 | 예 | 예 | 해당 사항 없음 | 
| 12.12 이상 버전 | 예 | 예 | 예 | 해당 사항 없음 | 
| 13.7 이상 버전 | 예 | 예 | 예 | 해당 사항 없음 | 
| 13.8 이상 버전 | 예 | 예 | 예 | 예 | 
| 14.3 이상 버전 | 예 | 예 | 예 | 해당 사항 없음 | 
| 14.4 이상 버전 | 예 | 예 | 예 | 해당 사항 없음 | 
| 14.5 이상 버전 | 예 | 예 | 예 | 예 | 
| 15.3 이상 버전 | 예 | 예 | 예 | 예 | 
| 16.1 이상 버전 | 예 | 예 | 예 | 예 | 

ZDP를 사용한 업그레이드 프로세스 중에 데이터베이스 엔진은 모든 새 트랜잭션을 일시 중지할 조용한 지점을 찾습니다. 이 작업은 패치 및 업그레이드 중에 데이터베이스를 보호합니다. 트랜잭션이 일시 중지된 상태에서 애플리케이션이 원활하게 실행되도록 하려면 재시도 로직을 코드에 통합하는 것이 좋습니다. 이 접근 방식을 통해 시스템은 짧은 가동 중지 시간을 장애 없이 관리할 수 있으며 업그레이드 후 새 트랜잭션을 재시도할 수 있습니다.

ZDP가 성공적으로 완료되면 애플리케이션 세션이 유지되며(연결이 끊긴 세션은 제외), 업그레이드가 계속 진행되는 동안 데이터베이스 엔진이 다시 시작됩니다. 데이터베이스 엔진을 다시 시작하면 처리량이 일시적으로 줄어들 수 있지만, 이러한 상황은 보통 몇 초나 최대 약 1분 정도만 지속됩니다.

경우에 따라 제로 가동 중지 패치 적용(ZDP)이 적용되지 않을 수 있습니다. 예를 들어, Aurora PostgreSQL DB 클러스터 또는 해당 인스턴스의 `pending` 상태에 있는 파라미터 변경으로 인해 ZDP가 제대로 적용되지 않을 수 있습니다.

ZDP 작업에 대한 지표와 이벤트는 콘솔의 **이벤트(Events)** 페이지에서 확인할 수 있습니다. 이벤트에는 ZDP 업그레이드 시작 및 업그레이드 완료가 포함됩니다. 여기에서 프로세스의 소요 시간 및 재시작 중에 발생한 보존 및 삭제된 연결 수를 확인할 수 있습니다. 데이터베이스 오류 로그에 자세한 내용이 나와 있습니다.

## 제로 가동 중지 패치 적용의 제한 사항
<a name="USER_UpgradeDBInstance.PostgreSQL.Minor.zdp.limitations"></a>

제로 가동 중지 패치 적용에는 다음 제한 사항이 있습니다.
+ ZDP는 Aurora PostgreSQL 업그레이드 프로세스 전반에 걸쳐 Aurora PostgreSQL 라이터 인스턴스에 대한 현재 클라이언트 연결을 유지하려고 합니다. 그러나 다음과 같은 경우에는 ZDP 완료를 위해 연결이 끊어집니다.
  + 장기 실행 쿼리 또는 트랜잭션이 진행 중인 경우.
  + 데이터 정의 언어(DDL) 문이 실행 중인 경우.
  + 임시 테이블 또는 테이블 잠금이 사용 중인 경우.
  + 모든 세션이 알림 채널에서 수신 중인 경우.
  + 커서가 'WITH HOLD' 상태에서 사용 중인 경우.
  + TLSv1.1 연결이 사용 중인 경우. Aurora PostgreSQL 버전 16.1, 15.3, 14.8, 13.11, 12.15, 11.20 이상부터 ZDP에는 TLSv1.3 연결이 지원됩니다.
+ 다음과 같은 경우에는 ZDP가 지원되지 않습니다.
  + Aurora PostgreSQL DB 클러스터가 Aurora Serverless v1로 구성된 경우.
  + Aurora 리더 인스턴스를 업그레이드하는 동안.
  + 보조 리전의 Aurora Global Database 클러스터에 속하는 Aurora 리더 인스턴스를 업그레이드하는 동안.
  + OS 패치 및 OS 업그레이드 중.

## Aurora PostgreSQL 엔진을 새로운 마이너 버전으로 업그레이드
<a name="USER_UpgradeDBInstance.MinorUpgrade"></a>

 콘솔, AWS CLI 또는 RDS API를 사용하여 Aurora PostgreSQL DB 클러스터를 새 마이너 버전으로 업그레이드할 수 있습니다. 업그레이드를 수행하려면 메이저 버전 업그레이드에 권장되는 것과 동일한 모범 사례를 따르는 것이 좋습니다. 새 메이저 버전과 마찬가지로 새 마이너 버전에도 최적화 프로그램 개선 사항 (예: 수정 사항) 이 추가되어 쿼리 계획 회귀가 발생할 수 있습니다. 계획 안정성을 보장하려면 [메이저 버전 업그레이드 후 계획 안정성 보장](AuroraPostgreSQL.Optimize.BestPractice.md#AuroraPostgreSQL.Optimize.BestPractice.MajorVersionUpgrade)에 자세히 설명된 대로 쿼리 계획 관리(QPM) 확장을 사용하는 것이 좋습니다.

### 콘솔
<a name="USER_UpgradeDBInstance.MinorUpgrade.Console"></a>

**Aurora PostgreSQL DB 클러스터의 엔진 버전을 업그레이드하려면**

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

1. 탐색 창에서 **데이터베이스**를 선택한 다음 업그레이드하려는 DB 클러스터를 선택합니다.

1. **수정**을 선택합니다. **DB 클러스터 수정** 페이지가 나타납니다.

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

1. **계속**을 수정 사항을 요약한 내용을 확인합니다.

1. 변경 사항을 즉시 적용하려면 **즉시 적용**을 선택합니다. 일부의 경우 이 옵션을 선택하면 중단이 발생할 수 있습니다. 자세한 내용은 [Amazon Aurora DB 클러스터 수정](Aurora.Modifying.md) 섹션을 참조하세요.

1. 확인 페이지에서 변경 내용을 검토합니다. 변경 내용이 올바른 경우 **클러스터 수정**을 선택하여 변경 내용을 저장합니다.

   또는 **뒤로**를 선택하여 변경 내용을 편집하거나 **취소**를 선택하여 변경 내용을 취소합니다.

### AWS CLI
<a name="USER_UpgradeDBInstance.MinorUpgrade.CLI"></a>

DB 클러스터의 엔진 버전을 업그레이드하려면 다음 파라미터와 함께 [modify-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-cluster.html) AWS CLI 명령을 사용합니다.
+ `--db-cluster-identifier` - Aurora PostgreSQL DB 클러스터의 이름입니다.
+ `--engine-version` – 업그레이드할 데이터베이스 엔진의 버전 번호입니다. 유효한 엔진 버전에 대한 정보를 보려면 AWS CLI [ describe-db-engine-versions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-engine-versions.html) 명령을 사용합니다.
+ `--no-apply-immediately` – 변경 사항이 다음 유지 관리 기간에 적용됩니다. 변경 사항을 바로 적용하려면 대신 `--apply-immediately`를 사용합니다.

대상 LinuxmacOS, 또는Unix:

```
aws rds modify-db-cluster \
    --db-cluster-identifier mydbcluster \
    --engine-version new_version \
    --no-apply-immediately
```

Windows의 경우:

```
aws rds modify-db-cluster ^
    --db-cluster-identifier mydbcluster ^
    --engine-version new_version ^
    --no-apply-immediately
```

### RDS API
<a name="USER_UpgradeDBInstance.MinorUpgrade.API"></a>

DB 클러스터의 엔진 버전을 업그레이드하려면 [ModifyDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBCluster.html) 작업을 사용합니다. 다음 파라미터를 지정합니다.
+ `DBClusterIdentifier` – DB 클러스터의 이름입니다(예:*`mydbcluster`*).
+ `EngineVersion` – 업그레이드할 데이터베이스 엔진의 버전 번호입니다. 유효한 엔진 버전에 대한 정보를 보려면 [ DescribeDBEngineVersions](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBEngineVersions.html) 작업을 사용합니다.
+ `ApplyImmediately` – 변경 사항을 즉시 적용하거나 다음 유지 관리 기간에 적용합니다. 변경 사항을 바로 적용하려면 값을 `true`로 설정합니다. 변경 사항을 다음 유지 관리 기간에 적용하려면 값을 `false`로 설정합니다.