RDS for PostgreSQL DB 엔진 업그레이드
PostgreSQL 데이터베이스에서 관리할 수 있는 업그레이드 유형은 다음과 같이 2가지입니다.
-
운영 체제 업데이트 – 경우에 따라 보안 수정 사항이나 OS 변경 사항을 적용하기 위해 Amazon RDS에서 데이터베이스의 기본 운영 체제를 업데이트해야 할 수 있습니다. RDS 콘솔, AWS Command Line Interface(AWS CLI) 또는 RDS API를 사용하여 Amazon RDS에서 OS 업데이트를 적용하는 시기를 결정할 수 있습니다. OS 업데이트에 대한 자세한 내용은 다음단원을 참조하십시오. DB 인스턴스에 업데이트 적용
-
데이터베이스 엔진 업그레이드 – Amazon RDS에서 새 버전의 데이터베이스 엔진이 지원되면 데이터베이스를 새 버전으로 업그레이드할 수 있습니다.
컨텍스트에 포함된 데이터베이스는 RDS for PostgreSQL DB 인스턴스 또는 다중 AZ DB 클러스터입니다.
PostgreSQL 데이터베이스의 엔진 업그레이드에는 메이저 버전 업그레이드와 마이너 버전 업그레이드라는 2가지 종류가 있습니다.
- 메이저 버전 업그레이드
-
메이저 버전 업그레이드에는 기존 애플리케이션과 호환되지 않는 데이터베이스 변경 사항이 포함될 수 있습니다. 따라서 데이터베이스의 메이저 버전 업그레이드를 수동으로 수행해야 합니다. DB 인스턴스 또는 다중 AZ DB 클러스터를 수정하여 메이저 버전 업그레이드를 시작할 수 있습니다. 메이저 버전 업그레이드를 수행하기 전에 RDS for PostgreSQL 업그레이드에 대한 메이저 버전 선택에 설명된 단계를 수행하는 것이 좋습니다.
Amazon RDS는 다음과 같은 방법으로 다중 AZ 메이저 버전 업그레이드를 처리합니다.
-
다중 AZ DB 인스턴스 배포 - Amazon RDS가 기본 인스턴스와 대기 인스턴스를 동시에 업그레이드합니다. 업그레이드가 완료되는 동안 데이터베이스를 몇 분간 사용하지 못할 수 있습니다.
-
다중 AZ DB 클러스터 배포 - Amazon RDS가 리더 인스턴스와 라이터 인스턴스를 동시에 업그레이드합니다. 업그레이드가 완료되는 동안 데이터베이스를 몇 분간 사용하지 못할 수 있습니다.
리전 내 읽기 전용 복제본이 있는 DB 인스턴스를 업그레이드하는 경우 Amazon RDS는 기본 DB 인스턴스와 함께 복제본을 업그레이드합니다.
Amazon RDS는 다중 AZ DB 클러스터 읽기 전용 복제본은 업그레이드하지 않습니다. 다중 AZ DB 클러스터의 메이저 버전 업그레이드를 수행하면 읽기 복제본의 복제 상태가 종료로 변경됩니다. 업그레이드가 완료된 후 읽기 전용 복제본은 수동으로 삭제하고 다시 생성해야 합니다.
작은 정보
블루/그린 배포를 사용하면 메이저 버전 업그레이드에 필요한 다운타임을 최소화할 수 있습니다. 자세한 내용은 데이터베이스 업데이트에 Amazon RDS 블루/그린 배포 사용 섹션을 참조하세요.
-
- 마이너 버전 업그레이드
-
반대로 마이너 버전 업그레이드에는 기존 애플리케이션과 호환되는 변경 사항만 포함됩니다. 데이터베이스를 수정하여 마이너 버전 업그레이드를 수동으로 시작할 수 있습니다. 또는 데이터베이스를 생성하거나 수정할 때 마이너 버전 자동 업그레이드 옵션을 활성화할 수 있습니다. 이렇게 하면 Amazon RDS에서 새 버전을 테스트 및 승인한 후 인스턴스가 자동으로 업그레이드됩니다.
Amazon RDS는 다음과 같은 방법으로 다중 AZ 마이너 버전 업그레이드를 처리합니다.
-
다중 AZ DB 인스턴스 배포 - Amazon RDS가 기본 인스턴스와 대기 인스턴스를 동시에 업그레이드합니다. 업그레이드가 완료되는 동안 데이터베이스를 몇 분간 사용하지 못할 수 있습니다.
-
다중 AZ DB 클러스터 배포 - Amazon RDS가 리더 DB 인스턴스를 한 번에 하나씩 업그레이드합니다. 그러면 리더 DB 인스턴스가 새 라이터 DB 인스턴스로 전환됩니다. 그러면 Amazon RDS가 이전 라이터 인스턴스(현재는 리더 인스턴스)를 업그레이드합니다. 다중 AZ DB 클러스터는 일반적으로 마이너 버전 업그레이드의 가동 중지 시간을 약 35초로 줄입니다. RDS 프록시와 함께 사용하면 가동 중지 시간을 1초 이하로 더 줄일 수 있습니다. 자세한 내용은 Amazon RDS Proxy 섹션을 참조하세요. 또는 ProxySQL
, PgBouncer 또는 AWS 고급 JDBC 래퍼 드라이버 와 같은 오픈 소스 데이터베이스 프록시를 사용할 수 있습니다.
데이터베이스에 읽기 전용 복제본이 있는 경우 소스 인스턴스 또는 클러스터를 업그레이드하기 전에 읽기 전용 복제본을 모두 업그레이드해야 합니다.
자세한 내용은 RDS for PostgreSQL 마이너 버전 자동 업그레이드 섹션을 참조하세요. 마이너 버전 업그레이드를 수동으로 수행하는 방법에 대한 자세한 내용은 엔진 버전 수동 업그레이드 단원을 참조하세요.
-
데이터베이스 엔진 버전에 대한 자세한 내용 및 낙후된 데이터베이스 엔진 버전 정책에 대한 자세한 내용은 Amazon RDS FAQ의 데이터베이스 엔진 버전
주제
PostgreSQL 업그레이드 고려 사항
데이터베이스를 안전하게 업그레이드하기 위해 Amazon RDS는 PostgreSQL 설명서pg_upgrade
유틸리티를 사용합니다.
백업 보존 기간이 0보다 큰 경우 업그레이드 프로세스 중에 Amazon RDS가 두 개의 DB 스냅샷을 생성합니다. 첫 번째 DB 스냅샷은 업그레이드 변경 이전 데이터베이스의 스냅샷입니다. 데이터베이스의 업그레이드가 완료되지 않으면 이 스냅샷을 복구하여 기존 버전을 실행하는 데이터베이스를 생성할 수 있습니다. 두 번째 DB 스냅샷은 업그레이드 완료 이후에 캡처됩니다. 이러한 DB 스냅샷은 백업 보존 기간이 만료되면 자동으로 삭제됩니다.
참고
데이터베이스에 대한 백업 보존 기간을 0보다 큰 수로 설정하는 경우에만 Amazon RDS가 업그레이드 프로세스 중에 DB 스냅샷을 캡처합니다. DB 인스턴스의 백업 보존 기간을 수정하려면 Amazon RDS DB 인스턴스 수정 단원을 참조하세요. 다중 AZ DB 클러스터의 경우 사용자 지정 백업 보존 기간을 구성할 수 없습니다.
DB 인스턴스의 메이저 버전 업그레이드를 수행하면 리전 내 읽기 전용 복제본도 모두 자동으로 업그레이드됩니다. 업그레이드 워크플로가 시작된 후 읽기 전용 복제본은 기본 DB 인스턴스에서 pg_upgrade
가 성공적으로 완료될 때까지 기다립니다. 그런 다음 프라이머리 DB 인스턴스 업그레이드는 읽기 전용 복제본 업그레이드가 완료될 때까지 기다립니다. 업그레이드가 완료될 때까지 중단이 발생합니다. 다중 AZ DB 클러스터의 메이저 버전 업그레이드를 수행하면 읽기 전용 복제본의 복제 상태가 종료로 변경됩니다.
업그레이드가 완료된 후에는 이전 버전의 DB 엔진으로 되돌릴 수 없습니다. 이때 이전 버전으로 되돌리려면 업그레이드 전에 캡처한 DB 스냅샷을 복원하여 새로운 데이터베이스를 생성해야 합니다.
유효한 업그레이드 대상 찾기
AWS Management Console을 사용하여 데이터베이스를 업그레이드할 때 데이터베이스의 유효한 업그레이드 대상이 표시됩니다. 또한 다음 AWS CLI 명령을 사용하여 데이터베이스의 유효한 업그레이드 대상을 식별할 수 있습니다.
대상 LinuxmacOS, 또는Unix:
aws rds describe-db-engine-versions \ --engine postgres \ --engine-version
version-number
\ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
Windows의 경우:
aws rds describe-db-engine-versions ^ --engine postgres ^ --engine-version
version-number
^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
예를 들어 PostgreSQL 버전 16.1 데이터베이스의 유효한 업그레이드 대상을 식별하려면 다음 AWS CLI 명령을 실행합니다.
대상 LinuxmacOS, 또는Unix:
aws rds describe-db-engine-versions \ --engine postgres \ --engine-version 16.1 \ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text
Windows의 경우:
aws rds describe-db-engine-versions ^ --engine postgres ^ --engine-version 16.1 ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" --output text