Amazon Aurora PostgreSQL DB 클러스터 업그레이드 - Amazon Aurora

Amazon Aurora PostgreSQL DB 클러스터 업그레이드

Amazon Aurora는 광범위한 테스트를 거친 후에만 PostgreSQL 데이터베이스 엔진의 새 버전을 AWS 리전에 공개합니다. Aurora PostgreSQL DB 클러스터를 리전에서 사용할 수 있는 경우 새 버전으로 업그레이드할 수 있습니다.

DB 클러스터가 현재 실행 중인 Aurora PostgreSQL 버전에 따라 새 릴리스로 업그레이드하는 작업은 마이너 업그레이드일 수도, 메이저 업그레이드일 수도 있습니다. 예를 들어, Aurora PostgreSQL 11.15 DB 클러스터를 Aurora PostgreSQL 13.6으로 업그레이드하는 것은 메이저 버전 업그레이드입니다. Aurora PostgreSQL 13.3 DB 클러스터를 Aurora PostgreSQL 13.7로 업그레이드하는 작업은 마이너 버전 업그레이드입니다. 다음 주제에는 두 유형의 업그레이드를 수행하는 방법에 대한 정보가 나와 있습니다.

Aurora PostgreSQL 업그레이드 프로세스 개요

메이저 버전과 마이너 버전 업그레이드의 차이점은 다음과 같습니다.

마이너 버전 업그레이드 및 패치

마이너 버전 업그레이드 및 패치에는 기존 애플리케이션과 역호환되는 변경 사항만 포함됩니다. 마이너 버전 업그레이드 및 패치는 Aurora PostgreSQL이 테스트하고 승인한 후에만 사용할 수 있습니다.

마이너 버전 업그레이드는 Aurora에서 자동으로 적용할 수 있습니다. 새로운 Aurora PostgreSQL DB 클러스터를 생성하면 마이너 버전 업그레이드 활성화(Enable minor version upgrade) 옵션이 미리 선택되어 있습니다. 이 옵션을 해제하지 않는 한 예정된 유지 관리 기간에 마이너 버전 업그레이드가 자동으로 적용됩니다. 자동 마이너 버전 업그레이드(AmVU) 옵션과 AmVU를 사용하도록 Aurora DB 클러스터를 수정하는 방법에 대한 자세한 내용은 Aurora DB 클러스터 마이너 버전 자동 업그레이드 섹션을 참조하세요.

Aurora PostgreSQL DB 클러스터에 대해 자동 마이너 버전 업그레이드 옵션이 설정되지 않은 경우 Aurora PostgreSQL이 새 마이너 버전으로 자동으로 업그레이드되지 않습니다. 대신 AWS 리전에 새 마이너 버전이 출시될 때 Aurora PostgreSQL DB 클러스터에서 이전 마이너 버전을 실행 중이면 Aurora에서 업그레이드하라는 메시지가 표시됩니다. 이 작업을 수행하려면 클러스터의 유지 관리 태스크에 권장 사항을 추가하면 됩니다.

패치는 업그레이드로 간주되지 않으며, 자동으로 적용되지 않습니다. Aurora PostgreSQL에서는 Aurora PostgreSQL DB 클러스터의 유지 관리 태스크에 권장 사항을 추가하여 패치를 적용하라는 메시지를 표시합니다. 자세한 내용은 마이너 버전 업그레이드 수행 및 패치 적용 방법을 참조하세요.

참고

보안 또는 기타 중요한 문제를 해결하는 패치도 유지 관리 태스크로 추가됩니다. 그러나 이러한 패치는 필수입니다. 보류 중인 유지 관리 태스크에서 사용할 수 있게 되면 Aurora PostgreSQL DB 클러스터에 보안 패치를 적용해야 합니다.

업그레이드를 진행하는 과정에서 클러스터의 각 인스턴스가 새 버전으로 업그레이드될 때 일시적인 중단이 발생할 수 있습니다. 그러나 Aurora PostgreSQL 14.3.3, 13.7.3, 12.11.3, 11.16.3, 10.21.3 및 기타 마이너 버전의 상위 릴리스 및 그 이후의 메이저 버전에는 업그레이드 프로세스에 제로 가동 중지 패치 적용(ZDP) 기능이 도입되었습니다. 이 기능은 중단을 최소화하며, 대부분의 경우 중단이 발생하지 않습니다. 자세한 내용은 마이너 릴리스 업그레이드 및 제로 가동 중지 패치 적용 단원을 참조하십시오.

참고

다음과 같은 경우에는 ZDP가 지원되지 않습니다.

  • Aurora PostgreSQL DB 클러스터가 Aurora Serverless v1로 구성된 경우.

  • Aurora PostgreSQL DB 클러스터가 보조 AWS 리전에서 Aurora 글로벌 데이터베이스로 구성된 경우

  • Aurora Global Database의 리더 인스턴스를 업그레이드하는 동안.

  • OS 패치 및 OS 업그레이드 중.

ZDP는 Aurora Serverless v2로 구성된 Aurora PostgreSQL DB 클러스터에 지원되지 않습니다.

메이저 버전 업그레이드

마이너 버전 업그레이드 및 패치와 달리 Aurora PostgreSQL에는 자동 메이저 버전 업그레이드 옵션이 없습니다. 최신 메이저 PostgreSQL 버전에는 기존 애플리케이션과 역호환되지 않는 데이터베이스 변경 사항이 포함될 수 있습니다. 새 기능을 사용하면 기존 애플리케이션이 올바르게 작동하지 않을 수 있습니다.

문제를 방지하려면 Aurora PostgreSQL DB 클러스터에서 DB 인스턴스를 업그레이드하기 전에 새로운 메이저 버전으로 프로덕션 DB 클러스터 업그레이드 테스트에 설명된 프로세스를 따르는 것이 좋습니다. 먼저 해당 절차에 따라 애플리케이션이 새 버전에서 실행될 수 있는지 확인합니다. 그런 다음 Aurora PostgreSQL DB 클러스터를 새 버전으로 직접 업그레이드하면 됩니다.

업그레이드 프로세스는 클러스터의 모든 인스턴스를 새 버전으로 업그레이드할 때 잠시 중단될 수 있습니다. 예비 계획 프로세스에도 시간이 걸립니다. 업그레이드 태스크는 항상 클러스터의 유지 관리 기간 동안 또는 작업이 거의 이루어지지 않는 기간에 수행하는 것이 좋습니다. 자세한 내용은 메이저 버전 업그레이드를 수행하는 방법 단원을 참조하세요.

참고

마이너 버전과 메이저 버전을 업그레이드할 때는 중단이 짧게 발생할 수 있습니다. 따라서 유지 관리 기간 동안 또는 사용률이 많지 않은 기간에 업그레이드를 수행하거나 예약하는 것이 좋습니다.

Aurora PostgreSQL DB 클러스터는 때때로 운영 체제 업데이트가 필요합니다. 이러한 업데이트에는 glibc 라이브러리의 최신 버전도 포함될 수 있습니다. 이러한 업데이트를 진행하는 중에는 Aurora PostgreSQL에서 지원되는 데이터 정렬에 설명된 지침을 따르는 것이 좋습니다.

AWS 리전에서 사용 가능한 버전 목록 가져오기

다음과 같이 describe-db-engine-versions AWS CLI 명령을 통해 AWS 리전을 쿼리하여 Aurora PostgreSQL DB 클러스터의 업그레이드 대상으로 사용할 수 있는 모든 엔진 버전 목록을 가져올 수 있습니다.

대상 LinuxmacOS, 또는Unix:

aws rds describe-db-engine-versions \ --engine aurora-postgresql \ --engine-version version-number \ --query 'DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}' \ --output text

Windows의 경우:

aws rds describe-db-engine-versions ^ --engine aurora-postgresql ^ --engine-version version-number ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" ^ --output text

예를 들어, Aurora PostgreSQL 버전 12.10 DB 클러스터의 유효한 업그레이드 대상을 식별하려면 다음 AWS CLI 명령을 실행합니다.

대상 LinuxmacOS, 또는Unix:

aws rds describe-db-engine-versions \ --engine aurora-postgresql \ --engine-version 12.10 \ --query 'DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}' \ --output text

Windows의 경우:

aws rds describe-db-engine-versions ^ --engine aurora-postgresql ^ --engine-version 12.10 ^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" ^ --output text

이 테이블에는 다양한 Aurora PostgreSQL DB 버전에 사용할 수 있는 메이저 및 마이너 버전 업그레이드 대상이 나와 있습니다.

현재 소스 버전 업그레이드 대상
15.5 16.1
15.4 16.1 15.5
15.3 16.1 15.5 15.4
15.2 16.1 15.5 15.4 15.3
14.10 16.1 15.5
14.9 16.1 15.5 15.4 14.10
14.8 16.1 15.5 15.4 15.3 15.2 14.10 14.9
14.7 16.1 15.5 15.4 15.3 15.2 14.10 14.9 14.8
14.6 16.1 15.5 15.4 15.3 15.2 14.10 14.9 14.8 14.7
14.5 16.1 15.5 15.4 15.3 15.2 14.10 14.9 14.8 14.7 14.6
14.4 16.1 15.5 15.4 15.3 15.2 14.10 14.9 14.8 14.7 14.6 14.5
14.3 16.1 15.5 15.4 15.3 15.2 14.10 14.9 14.8 14.7 14.6 14.5 14.4
13.13 16.1 15.5 14.10
13.12 16.1 15.5 15.4 14.10 14.9
13.11 16.1 15.5 15.4 15.3 14.10 14.9 14.8
13.10 16.1 15.5 15.4 15.3 15.2 14.10 14.9 14.8 14.7 13.13 13.12 13.11
13.9 16.1 15.5 15.4 15.3 15.2 14.10 14.9 14.8 14.7 14.6 13.11 13.10
13.8 16.1 15.5 15.4 15.3 15.2 14.10 14.9 14.8 14.7 14.6 14.5 13.13 13.12 13.11 13.10 13.9
13.7 16.1 15.5 15.4 15.3 15.2 14.10 14.9 14.8 14.7 14.6 14.5 14.4 14.3 13.13 13.12 13.11 13.10 13.9 13.8
12.17 16.1 15.5 14.10 13.13
12.16 16.1 15.5 15.4 14.10 14.9 13.13 13.12
12.15 16.1 15.5 15.4 15.3 14.10 14.9 14.8 13.13 13.12 13.11
12.14 16.1 15.5 15.4 15.3 15.2 14.10 14.9 14.8 14.7 13.13 13.12 13.11 13.10 12.15
12.13 16.1 15.5 15.4 15.3 15.2 14.10 14.9 14.8 14.7 14.6 13.13 13.12 13.11 13.10 13.9 12.17 12.16 12.15 12.14
12.12 16.1 15.5 15.4 15.3 15.2 14.10 14.9 14.8 14.7 14.6 14.5 13.13 13.12 13.11 13.10 13.9 12.17 12.16 12.15 13.8 12.15 12.14 12.13
12.11 16.1 15.5 15.4 15.3 15.2 14.10 14.9 14.8 14.7 14.5 14.4 14.3 13.13 13.12 13.11 13.10 13.9 13.8 13.7 12.15 12.14 12.13 12.12
12.9 16.1 15.5 15.4 15.3 15.2 14.10 14.9 14.8 14.7 13.13 13.12 13.11 13.10 13.9 13.8 13.7 12.17 12.16 12.15 12.14 12.13 12.12 12.11
11.21 16.1 15.5 15.4 14.10 14.9 13.13 13.12 12.17 12.16
11.9 16.1 15.5 15.4 15.3 15.2 14.10 14.9 14.8 14.7 14.6 13.13 13.12 13.11 13.10 13.9 12.17 12.16 12.15 12.14 12.13 12.12 12.11 12.09 11.21

고려 중인 버전에 관계없이 클러스터 DB 인스턴스 클래스의 가용성을 항상 확인해야 합니다. 예를 들어 db.r4는 Aurora PostgreSQL 13에서 지원되지 않습니다. Aurora PostgreSQL DB 클러스터에서 현재 db.r4 인스턴스 클래스를 사용한다면, 업그레이드하기 전에 db.r5로 전환해야 합니다. Graviton2 기반 클래스 및 인텔 기반 클래스 등 DB 인스턴스 클래스에 대한 자세한 내용은 Aurora DB 인스턴스 클래스 섹션을 참조하세요.

메이저 버전 업그레이드를 수행하는 방법

메이저 버전 업그레이드에는 이전 버전의 데이터베이스와 역호환되지 않는 데이터베이스 변경 사항이 포함될 수 있습니다. 최신 버전의 새 기능을 사용하면 기존 애플리케이션이 올바르게 작동하지 않을 수 있습니다. 이러한 문제를 방지하고자 Amazon Aurora는 자동으로 메이저 버전 업그레이드를 적용하지 않습니다. 따라서 다음 단계에 따라 메이저 버전 업그레이드를 신중하게 계획하는 것이 좋습니다.

  1. 테이블에 있는 버전에 대해 나열된 대상 중 사용 가능한 대상 목록에서 원하는 메이저 버전을 선택합니다. AWS CLI를 사용하여 현재 버전에 대해 AWS 리전에서 사용할 수 있는 정확한 버전 목록을 확인할 수 있습니다. 자세한 내용은 AWS 리전에서 사용 가능한 버전 목록 가져오기 단원을 참조하세요.

  2. 새 버전의 평가판 배포에서 애플리케이션이 정상적으로 작동하는지 확인합니다. 전체 프로세스에 대한 내용은 새로운 메이저 버전으로 프로덕션 DB 클러스터 업그레이드 테스트 섹션을 참조하세요.

  3. 평가판 배포에서 애플리케이션이 정상적으로 작동하는지 확인했다면 클러스터를 업그레이드할 수 있습니다. 세부 정보는 Aurora PostgreSQL 엔진을 새로운 메이저 버전으로 업그레이드을 참조하세요.

참고

13.6부터 시작하는 Babelfish for Aurora PostgreSQL 13 기반 버전에서 14.6부터 시작하는 Aurora PostgreSQL 14 기반 버전으로 메이저 버전 업그레이드를 수행할 수 있습니다. Babelfish for Aurora PostgreSQL 13.4 및 13.5는 메이저 버전 업그레이드를 지원하지 않습니다.

다음과 같이 describe-db-engine-versions AWS CLI 명령을 통해 AWS 리전을 쿼리하여 Aurora PostgreSQL DB 클러스터의 메이저 버전 업그레이드 대상으로 사용할 수 있는 엔진 버전 목록을 가져올 수 있습니다.

대상 LinuxmacOS, 또는Unix:

aws rds describe-db-engine-versions \ --engine aurora-postgresql \ --engine-version version-number \ --query 'DBEngineVersions[].ValidUpgradeTarget[?IsMajorVersionUpgrade == `true`].{EngineVersion:EngineVersion}' \ --output text

Windows의 경우:

aws rds describe-db-engine-versions ^ --engine aurora-postgresql ^ --engine-version version-number ^ --query "DBEngineVersions[].ValidUpgradeTarget[?IsMajorVersionUpgrade == `true`].{EngineVersion:EngineVersion}" ^ --output text

업그레이드하려는 버전이 현재 버전의 대상이 아닌 경우가 있습니다. 이러한 경우 클러스터가 대상 행에 선택한 대상이 있는 버전이 될 때까지 versions table의 정보를 바탕으로 마이너 버전 업그레이드를 수행합니다.

새로운 메이저 버전으로 프로덕션 DB 클러스터 업그레이드 테스트

최신 메이저 버전에는 각각 성능 개선을 위해 설계된 쿼리 옵티마이저의 개선 사항이 포함되어 있습니다. 그러나 워크로드에 새 버전에서 성능이 저하되는 쿼리가 포함되어 있을 수 있습니다. 따라서 프로덕션 환경에서 업그레이드하기 전에 성능을 테스트하고 검토하는 것이 좋습니다. 메이저 버전 업그레이드 후 계획 안정성 보장에 설명된 대로 QPM(쿼리 계획 관리) 확장을 사용하여 버전 간 쿼리 계획 안정성을 관리할 수 있습니다.

프로덕션 Aurora PostgreSQL DB 클러스터를 새로운 메이저 버전으로 업그레이드하기 전에 업그레이드를 테스트하여 모든 애플리케이션이 제대로 작동하는지 확인하는 것이 좋습니다.

  1. 버전 호환 파라미터 그룹을 준비합니다.

    사용자 지정 DB 인스턴스 또는 DB 클러스터 파라미터 그룹을 사용하는 경우 다음 2가지 옵션이 있습니다.

    1. 새 DB 엔진 버전에 대한 기본 DB 인스턴스, DB 클러스터 파라미터 그룹 또는 둘 다 지정합니다.

    2. 새 DB 엔진 버전에 대한 사용자 지정 파라미터 그룹을 직접 생성합니다.

    업그레이드 요청의 일부로 새 DB 인스턴스 또는 DB 클러스터 파라미터 그룹을 연결하는 경우 파라미터를 적용하려면 업그레이드가 완료된 후 데이터베이스를 재부팅해야 합니다. 파라미터 그룹 변경 사항을 적용하기 위해 DB 인스턴스를 재부팅해야 하는 경우 인스턴스의 파라미터 그룹 상태가 pending-reboot로 표시됩니다. 인스턴스의 파라미터 그룹 상태는 콘솔에서 보거나 describe-db-instances 또는 describe-db-clusters 같은 CLI 명령을 사용하여 볼 수 있습니다.

  2. 지원되지 않는 사용 확인:

    • 업그레이드를 시도하기 전에 열려 있는 준비된 트랜잭션을 모두 커밋하거나 롤백합니다. 다음 쿼리를 사용하여 인스턴스에 열려 있는 준비된 트랜잭션이 없음을 확인할 수 있습니다.

      SELECT count(*) FROM pg_catalog.pg_prepared_xacts;
    • 업그레이드를 시도하기 전에 reg* 데이터 형식의 사용을 모두 제거하세요. regtyperegclass 이외에는 reg* 데이터 형식을 업그레이드할 수 없습니다. pg_upgrade 유틸리티(Amazon Aurora에서 업그레이드하는 데 사용)는 이 데이터 유형을 유지할 수 없습니다. 유틸리티에 대해 자세히 알아보려면 PostgreSQL 설명서의 pg_upgrade를 참조하세요.

      지원되지 않는 reg* 데이터 형식이 사용되지 않음을 확인하려면 각 데이터베이스에 다음 쿼리를 사용합니다.

      SELECT count(*) FROM pg_catalog.pg_class c, pg_catalog.pg_namespace n, pg_catalog.pg_attribute a WHERE c.oid = a.attrelid AND NOT a.attisdropped AND a.atttypid IN ('pg_catalog.regproc'::pg_catalog.regtype, 'pg_catalog.regprocedure'::pg_catalog.regtype, 'pg_catalog.regoper'::pg_catalog.regtype, 'pg_catalog.regoperator'::pg_catalog.regtype, 'pg_catalog.regconfig'::pg_catalog.regtype, 'pg_catalog.regdictionary'::pg_catalog.regtype) AND c.relnamespace = n.oid AND n.nspname NOT IN ('pg_catalog', 'information_schema');
    • pgRouting 확장이 설치된 Aurora PostgreSQL 버전 10.18 이상의 DB 클러스터를 업그레이드하는 경우 버전 12.4 이상으로 업그레이드하기 전에 이 확장을 제거합니다.

      확장 pg_repack 버전 1.4.3이 설치된 Aurora PostgreSQL 10.x 버전을 업그레이드하는 경우, 더 높은 버전으로 업그레이드하기 전에 이 확장을 제거합니다.

  3. template1 및 template0 데이터베이스를 확인합니다.

    성공적인 업그레이드를 위해서는 template1 및 template0 데이터베이스가 존재해야 하며 템플릿으로 나열되어야 합니다. 이를 확인하려면 다음 명령을 사용합니다.

    SELECT datname, datistemplate FROM pg_database; datname | datistemplate -----------+--------------- template0 | t rdsadmin | f template1 | t postgres | f

    명령 출력에서 template1 및 template0 데이터베이스의 datistemplate 값은 t여야 합니다.

  4. 논리적 복제 슬롯을 삭제합니다.

    Aurora PostgreSQL DB 클러스터가 논리적 복제 슬롯을 사용 중인 경우 업그레이드 프로세스를 진행할 수 없습니다. 논리적 복제 슬롯은 일반적으로 AWS DMS를 사용하여 데이터를 마이그레이션하거나 데이터베이스에서 데이터 레이크, BI 도구 또는 기타 대상으로 테이블을 복제하는 것과 같은 단기 데이터 마이그레이션 작업에 사용됩니다. 업그레이드하기 전에 존재하는 논리적 복제 슬롯의 용도를 알고 삭제해도 되는지 확인합니다. 다음 쿼리를 사용하여 논리적 복제 슬롯을 확인할 수 있습니다.

    SELECT * FROM pg_replication_slots;

    논리적 복제 슬롯이 계속 사용 중인 경우 삭제하면 안 되며 업그레이드를 진행할 수 없습니다. 그러나 논리적 복제 슬롯이 필요하지 않은 경우 다음 SQL을 사용하여 삭제할 수 있습니다.

    SELECT pg_drop_replication_slot(slot_name);

    pglogical 확장을 사용하는 논리적 복제 시나리오에서도, 게시자 노드에서 메이저 버전 업그레이드가 성공하려면 이 노드에서 슬롯을 삭제해야 합니다. 하지만 업그레이드가 끝나면 구독자 노드에서 복제 프로세스를 재시작할 수 있습니다. 자세한 내용은 메이저 업그레이드 후 논리적 복제 재설정 단원을 참조하십시오.

  5. 백업을 수행합니다.

    업그레이드 프로세스는 업그레이드 중에 DB 클러스터의 DB 클러스터 스냅샷을 생성합니다. 업그레이드 프로세스 전에 수동 백업을 수행하려면 DB 클러스터 스냅샷 생성 단원을 참조하십시오.

  6. 메이저 버전 업그레이드를 수행하기 전에 특정 확장을 사용 가능한 최신 버전으로 업그레이드합니다. 업데이트할 확장은 다음과 같습니다.

    • pgRouting

    • postgis_raster

    • postgis_tiger_geocoder

    • postgis_topology

    • address_standardizer

    • address_standardizer_data_us

    현재 설치된 각 확장에 대해 다음 명령을 실행합니다.

    ALTER EXTENSION PostgreSQL-extension UPDATE TO 'new-version';

    자세한 내용은 PostgreSQL 확장 버전 업그레이드을 참조하세요. PostGIS 업그레이드에 대한 자세한 내용은 6단계: PostGIS 확장 업그레이드를 참조하세요.

  7. 버전 11.x로 업그레이드하는 경우 메이저 버전 업그레이드를 수행하기 전에 지원되지 않는 확장을 삭제하세요. 삭제할 확장은 다음과 같습니다.

    • chkpass

    • tsearch2

  8. 대상 버전에 따라 unknown 데이터 형식을 삭제합니다.

    PostgreSQL 버전 10은 unknown 데이터 형식을 지원하지 않습니다. 버전 9.6 데이터베이스가 unknown 데이터 형식을 사용하는 경우 버전 10으로 업그레이드하면 다음과 같은 오류 메시지가 표시됩니다.

    Database instance is in a state that cannot be upgraded: PreUpgrade checks failed: The instance could not be upgraded because the 'unknown' data type is used in user tables. Please remove all usages of the 'unknown' data type and try again."

    이러한 열을 제거하거나 지원되는 데이터 형식으로 변경할 수 있도록 데이터베이스에서 unknown 데이터 형식을 찾으려면 각 데이터베이스에 대해 다음 SQL 코드를 사용합니다.

    SELECT n.nspname, c.relname, a.attname FROM pg_catalog.pg_class c, pg_catalog.pg_namespace n, pg_catalog.pg_attribute a WHERE c.oid = a.attrelid AND NOT a.attisdropped AND a.atttypid = 'pg_catalog.unknown'::pg_catalog.regtype AND c.relkind IN ('r','m','c') AND c.relnamespace = n.oid AND n.nspname !~ '^pg_temp_' AND n.nspname !~ '^pg_toast_temp_' AND n.nspname NOT IN ('pg_catalog', 'information_schema');
  9. 업그레이드 모의 실습을 수행합니다.

    프로덕션 데이터베이스에서 업그레이드를 수행하기 전에 프로덕션 데이터베이스의 복제본에서 메이저 버전 업그레이드를 테스트하는 것이 좋습니다. 중복 테스트 인스턴스의 실행 계획을 모니터링하여 실행 계획 회귀가 발생할 수 있는지 확인하고 성능을 평가할 수 있습니다. 중복 테스트 인스턴스를 생성하려면 최근 스냅샷에서 데이터베이스를 복원하거나 데이터베이스를 복제합니다. 자세한 내용은 스냅샷에서 복원 또는 Aurora DB 클러스터에 대한 볼륨 복제 섹션을 참조하세요.

    자세한 내용은 Aurora PostgreSQL 엔진을 새로운 메이저 버전으로 업그레이드 섹션을 참조하세요.

  10. 프로덕션 인스턴스를 업그레이드합니다.

    메이저 버전 업그레이드의 모의 실습이 성공한 경우 확신을 가지고 프로덕션 데이터베이스를 업그레이드해도 됩니다. 자세한 내용은 Aurora PostgreSQL 엔진을 새로운 메이저 버전으로 업그레이드을 참조하세요.

    참고

    업그레이드 프로세스 중에 클러스터의 백업 보존 기간이 0보다 긴 경우 Aurora PostgreSQL이 DB 클러스터 스냅샷을 생성합니다. 업그레이드 프로세스 중에 클러스터를 특정 시점으로 복원할 수 없습니다. 나중에 업그레이드가 시작되기 전과 인스턴스 자동 스냅샷이 완료된 후 시간으로 백업을 완료한 이후의 시간으로 특정 시점으로 복원을 수행할 수 있습니다. 그러나 이전 마이너 버전에는 특정 시점으로 복원을 수행할 수 없습니다.

    진행 중인 업그레이드에 대한 자세한 내용은 Amazon RDS를 사용하여 pg_upgrade 유틸리티가 생성하는 두 개의 로그를 볼 수 있습니다. 이러한 로그는 pg_upgrade_internal.logpg_upgrade_server.log입니다. Amazon Aurora는 이러한 로그의 파일 이름에 타임스탬프를 추가합니다. 다른 로그와 마찬가지로 이러한 로그를 볼 수 있습니다. 자세한 내용은 Amazon Aurora 로그 파일 모니터링 섹션을 참조하세요.

  11. PostgreSQL 확장을 업그레이드합니다. PostgreSQL 업그레이드 프로세스는 PostgreSQL 확장을 업그레이드하지 않습니다. 자세한 내용은 PostgreSQL 확장 버전 업그레이드 섹션을 참조하세요.

메이저 버전 업그레이드를 완료한 후에는 다음 작업을 수행하는 것이 좋습니다.

  • ANALYZE 작업을 실행하여 pg_statistic 테이블을 새로 고칩니다. 모든 PostgreSQL DB 인스턴스의 모든 데이터베이스에 대해 이 작업을 수행해야 합니다. 옵티마이저 통계는 메이저 버전 업그레이드 중에 전송되지 않으므로 성능 문제를 방지하려면 모든 통계를 다시 생성해야 합니다. 파라미터 없이 명령을 실행하여 다음과 같이 현재 데이터베이스의 모든 일반 테이블에 대한 통계를 생성합니다.

    ANALYZE VERBOSE;

    VERBOSE 플래그는 선택 사항이지만 이 플래그를 사용하면 진행 상황이 표시됩니다. 자세한 내용은 PostgreSQL 설명서의 ANALYZE를 참조하세요.

    참고

    성능 문제를 방지하려면 업그레이드 후 시스템에서 ANALYZE를 실행합니다.

  • PostgreSQL 버전 10으로 업그레이드한 경우 현재 있는 해시 인덱스에 대해 REINDEX를 실행합니다. 해시 인덱스는 버전 10에서 변경되었으며 다시 작성해야 합니다. 잘못된 해시 인덱스를 찾으려면 해시 인덱스가 포함된 각 데이터베이스에 대해 다음 SQL을 실행합니다.

    SELECT idx.indrelid::regclass AS table_name, idx.indexrelid::regclass AS index_name FROM pg_catalog.pg_index idx JOIN pg_catalog.pg_class cls ON cls.oid = idx.indexrelid JOIN pg_catalog.pg_am am ON am.oid = cls.relam WHERE am.amname = 'hash' AND NOT idx.indisvalid;
  • 모든 것이 예상대로 작동하는지 확인하기 위해 유사한 워크로드로 업그레이드된 데이터베이스에서 애플리케이션을 테스트하는 것을 권장합니다. 업그레이드를 확인한 후 이 테스트 인스턴스를 삭제할 수 있습니다.

Aurora PostgreSQL 엔진을 새로운 메이저 버전으로 업그레이드

새 메이저 버전으로 업그레이드 프로세스를 시작하면 Aurora PostgreSQL은 클러스터를 변경하기 전에 Aurora DB 클러스터의 스냅샷을 생성합니다. 이 스냅샷은 마이너 버전 업그레이드가 아닌 메이저 버전 업그레이드에 대해서만 생성됩니다. 업그레이드 프로세스가 완료되면 RDS 콘솔의 스냅샷(Snapshots)에 나열된 수동 스냅샷 중에서 해당 스냅샷을 찾아볼 수 있습니다. 스냅샷 이름은 아래 예와 같이 접두사로 preupgrade, Aurora PostgreSQL DB 클러스터의 이름, 소스 버전, 대상 버전, 날짜 및 타임스탬프로 구성됩니다.

preupgrade-docs-lab-apg-global-db-12-8-to-13-6-2022-05-19-00-19

업그레이드가 완료된 후 필요한 경우 Aurora가 생성하여 수동 스냅샷 목록에 저장된 스냅샷을 통해 DB 클러스터를 이전 버전으로 복원할 수 있습니다.

작은 정보

일반적으로 스냅샷은 Aurora DB 클러스터를 다양한 시점으로 복원하는 여러 방법을 제공합니다. 자세한 내용은 DB 클러스터 스냅샷에서 복원지정된 시간으로 DB 클러스터 복원 섹션을 참조하세요. 하지만 Aurora PostgreSQL 스냅샷을 사용하여 이전 마이너 버전으로 복원하는 것을 지원하지 않습니다.

메이저 버전 업그레이드 프로세스 중에 Aurora는 볼륨을 할당하고 소스 Aurora PostgreSQL DB 클러스터를 복제합니다. 어떤 이유로든 업그레이드에 실패하면 Aurora PostgreSQL은 복제본을 사용하여 업그레이드를 롤백합니다. 소스 볼륨의 복제가 15개 이상 할당되면 후속 복제는 전체 복사본이 되고 시간이 오래 걸립니다. 이로 인해 업그레이드 프로세스가 더 오래 걸릴 수 있습니다. Aurora PostgreSQL에서 업그레이드를 롤백하는 경우 다음 사항에 유의하세요.

  • 업그레이드 중에 할당된 원본 볼륨과 복제된 볼륨 모두에 대한 청구 항목 및 지표가 표시될 수 있습니다. Aurora PostgreSQL은 클러스터 백업 보존 기간이 업그레이드 시간을 초과하면 추가 볼륨을 정리합니다.

  • 이 클러스터의 다음 교차 리전 스냅샷 복사본은 증분 복사본이 아닌 전체 복사본이 됩니다.

클러스터를 구성하는 DB 인스턴스를 안전하게 업그레이드할 수 있도록 Aurora PostgreSQL에서는 pg_upgrade 유틸리티를 사용합니다. 라이터 업그레이드가 완료되면 각 리더 인스턴스는 새 메이저 버전으로 업그레이드되는 동안 잠시 중단됩니다. PostgreSQL 유틸리티에 대해 자세히 알아보려면 PostgreSQL 설명서의 pg_upgrade를 참조하세요.

AWS Management Console, AWS CLI 또는 RDS API를 사용하여 Aurora PostgreSQL DB 클러스터를 새 버전으로 업그레이드할 수 있습니다.

DB 클러스터의 엔진 버전을 업그레이드하려면
  1. https://console.aws.amazon.com/rds/에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다.

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

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

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

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

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

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

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

DB 클러스터의 엔진 버전을 업그레이드하려면 modify-db-cluster AWS CLI 명령을 사용합니다. 다음 파라미터를 지정합니다.

  • --db-cluster-identifier – DB 클러스터의 이름입니다.

  • --engine-version – 업그레이드할 데이터베이스 엔진의 버전 번호입니다. 유효한 엔진 버전에 대한 정보를 보려면 AWS CLI describe-db-engine-versions 명령을 사용합니다.

  • --allow-major-version-upgrade--engine-version 파라미터가 DB 클러스터의 현재 메이저 버전과 다른 메이저 버전일 때 필수 플래그입니다.

  • --no-apply-immediately – 변경 사항이 다음 유지 관리 기간에 적용됩니다. 변경 사항을 바로 적용하려면 --apply-immediately를 사용합니다.

대상 LinuxmacOS, 또는Unix:

aws rds modify-db-cluster \ --db-cluster-identifier mydbcluster \ --engine-version new_version \ --allow-major-version-upgrade \ --no-apply-immediately

Windows의 경우:

aws rds modify-db-cluster ^ --db-cluster-identifier mydbcluster ^ --engine-version new_version ^ --allow-major-version-upgrade ^ --no-apply-immediately

DB 클러스터의 엔진 버전을 업그레이드하려면 ModifyDBCluster 작업을 사용합니다. 다음 파라미터를 지정합니다.

  • DBClusterIdentifier – DB 클러스터의 이름입니다(예:mydbcluster).

  • EngineVersion – 업그레이드할 데이터베이스 엔진의 버전 번호입니다. 유효한 엔진 버전에 대한 정보를 보려면 DescribeDBEngineVersions 작업을 사용합니다.

  • AllowMajorVersionUpgradeEngineVersion 파라미터가 DB 클러스터의 현재 메이저 버전과 다른 메이저 버전일 때 필수 플래그입니다.

  • ApplyImmediately – 변경 사항을 즉시 적용하거나 다음 유지 관리 기간에 적용합니다. 변경 사항을 바로 적용하려면 값을 true로 설정합니다. 변경 사항을 다음 유지 관리 기간에 적용하려면 값을 false로 설정합니다.

글로벌 데이터베이스에 대한 메이저 업그레이드

Aurora 글로벌 데이터베이스 클러스터의 경우 업그레이드 프로세스는 Aurora 글로벌 데이터베이스를 구성하는 모든 DB 클러스터를 동시에 업그레이드하여 모두 동일한 Aurora PostgreSQL 버전을 실행하도록 보장합니다. 또한, 시스템 테이블, 데이터 파일 형식 등에 대한 변경 사항이 모든 보조 클러스터에 자동으로 복제되도록 합니다.

글로벌 데이터베이스 클러스터를 최신 메이저 버전의 Aurora PostgreSQL로 업그레이드하려면 새로운 메이저 버전으로 프로덕션 DB 클러스터 업그레이드 테스트에 설명된 대로 업그레이드된 버전에서 애플리케이션을 테스트하는 것이 좋습니다. 새로운 메이저 버전으로 프로덕션 DB 클러스터 업그레이드 테스트step 1. 에 자세히 설명된 대로 업그레이드하기 전에 Aurora 글로벌 데이터베이스에서 각AWS 리전에 대한 DB 클러스터 파라미터 그룹 및 DB 파라미터 그룹 설정을 준비해야 합니다.

Aurora PostgreSQL 글로벌 데이터베이스 클러스터의 rds.global_db_rpo 파라미터에 Recovery Point Objective(RPO)가 설정된 경우 업그레이드하기 전에 해당 파라미터를 재설정해야 합니다. RPO가 켜져 있으면 메이저 버전 업그레이드 프로세스가 작동하지 않습니다. 기본적으로 이 파라미터는 비활성화됩니다. Aurora PostgreSQL 글로벌 데이터베이스 및 RPO에 대한 자세한 내용은 Aurora PostgreSQL–기반 전역 데이터베이스에 대한 RPO 관리 섹션을 참조하세요.

새 버전의 평가판 배포에서 애플리케이션이 정상적으로 실행될 수 있는지 확인하면 업그레이드 프로세스를 시작할 수 있습니다. 그렇게 하려면 Aurora PostgreSQL 엔진을 새로운 메이저 버전으로 업그레이드 단원을 참조하세요. 다음 이미지와 같이 RDS 콘솔의 데이터베이스(Databases) 목록인 글로벌 데이터베이스(Global database)에서 최상위 항목을 선택해야 합니다.


                    Aurora 글로벌 데이터베이스, Aurora Serverless DB 클러스터, 다른 Aurora PostgreSQL DB 클러스터가 표시된 콘솔 이미지

수정했을 때와 마찬가지로 메시지가 표시되어 프로세스를 진행할지 확인합니다.


                    Aurora PostgreSQL DB 클러스터의 업그레이드 프로세스를 확인하는 프롬프트가 표시된 콘솔 이미지

콘솔을 사용하는 대신 AWS CLI 또는 RDS API를 사용하여 업그레이드 프로세스를 시작할 수 있습니다. 콘솔에서와 마찬가지로 다음과 같이 구성 요소가 아닌 Aurora 글로벌 데이터베이스 클러스터에서 작업합니다.

  • modify-global-cluster AWS CLI 명령을 사용하여 AWS CLI로 Aurora 글로벌 데이터베이스 업그레이드를 시작합니다.

  • ModifyGlobalCluster API를 사용하여 업그레이드를 시작합니다.

마이너 버전 업그레이드를 수행하기 전

마이너 버전 업그레이드 중에 가동 중지 시간을 줄이려면 다음 작업을 수행하는 것이 좋습니다.

마이너 버전 업그레이드 수행 및 패치 적용 방법

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

Aurora PostgreSQL에서 새로운 마이너 버전을 사용할 수 있게 되면 Aurora PostgreSQL DB 클러스터를 구성하는 인스턴스는 지정된 유지 관리 기간에 자동으로 업그레이드될 수 있습니다. 이를 위해서는 Aurora PostgreSQL DB 클러스터의 마이너 버전 자동 업그레이드 활성화(Enable auto minor version upgrade) 옵션이 켜져 있어야 합니다. Aurora PostgreSQL DB 클러스터를 구성하는 모든 DB 인스턴스에는 마이너 업그레이드가 클러스터 전체에 적용되도록 자동 마이너 버전 업그레이드(AmVU) 옵션이 설정되어 있어야 합니다.

작은 정보

마이너 버전 자동 업그레이드 활성화(Enable auto minor version upgrade) 옵션이 Aurora PostgreSQL DB 클러스터를 구성하는 모든 PostgreSQL DB 인스턴스에서 설정되어 있는지 확인합니다. DB 클러스터의 모든 인스턴스가 작동하려면 이 옵션을 켜야 합니다. 자동 마이너 버전 업그레이드를 설정하는 방법과 클러스터 및 인스턴스 수준에서 설정을 적용한 경우 작동 방식에 대한 자세한 내용은  Aurora DB 클러스터 마이너 버전 자동 업그레이드 섹션을 참조하세요.

다음 쿼리와 함께 describe-db-instances AWS CLI 명령을 사용하여 모든 Aurora PostgreSQL DB 클러스터에 대한 마이너 버전 자동 업그레이드 활성화(Enable auto minor version upgrade) 옵션 값을 확인할 수 있습니다.

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 클러스터 마이너 버전 자동 업그레이드 섹션을 참조하세요.

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

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


                최신 마이너 버전으로 업그레이드하기 위한 권장 사항이 표시된 콘솔 이미지

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

마이너 릴리스 업그레이드 및 제로 가동 중지 패치 적용

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

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

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

버전 db.r* instance classes db.t* instance classes db.x* instance classes db.serverless instance class
10.21.0 이상의 10.21 버전 N/A
11.16.0 이상의 11.16 버전 N/A
11.17 이상 버전 N/A
12.11.0 이상의 12.11 버전 N/A
12.12 이상 버전 N/A
13.7.0 이상의 13.7 버전 N/A
13.8 이상 버전
14.3.1 이상의 14.3 버전 N/A
14.4.0 이상의 14.4 버전 N/A
14.5 이상 버전
15.3 이상 버전

ZDP는 Aurora PostgreSQL 업그레이드 프로세스 전반에 걸쳐 Aurora PostgreSQL DB 클러스터에 대한 현재 클라이언트 연결을 유지하여 작동합니다. 그러나 다음과 같은 경우에는 ZDP 완료를 위해 연결이 끊어집니다.

  • 장기 실행 쿼리 또는 트랜잭션이 진행 중인 경우.

  • 데이터 정의 언어(DDL) 문이 실행 중인 경우.

  • 임시 테이블 또는 테이블 잠금이 사용 중인 경우.

  • 모든 세션이 알림 채널에서 수신 중인 경우.

  • 커서가 'WITH HOLD' 상태에서 사용 중인 경우.

  • TLSv1.3 또는 TLSv1.1 연결이 사용 중인 경우.

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

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

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

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

Aurora PostgreSQL 엔진을 새로운 마이너 버전으로 업그레이드

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

Aurora PostgreSQL DB 클러스터의 엔진 버전을 업그레이드하려면
  1. https://console.aws.amazon.com/rds/에서 AWS Management Console에 로그인한 후 Amazon RDS 콘솔을 엽니다.

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

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

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

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

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

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

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

DB 클러스터의 엔진 버전을 업그레이드하려면 다음 파라미터와 함께 modify-db-cluster AWS CLI 명령을 사용합니다.

  • --db-cluster-identifier - Aurora PostgreSQL DB 클러스터의 이름입니다.

  • --engine-version – 업그레이드할 데이터베이스 엔진의 버전 번호입니다. 유효한 엔진 버전에 대한 정보를 보려면 AWS CLI describe-db-engine-versions 명령을 사용합니다.

  • --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

DB 클러스터의 엔진 버전을 업그레이드하려면 ModifyDBCluster 작업을 사용합니다. 다음 파라미터를 지정합니다.

  • DBClusterIdentifier – DB 클러스터의 이름입니다(예:mydbcluster).

  • EngineVersion – 업그레이드할 데이터베이스 엔진의 버전 번호입니다. 유효한 엔진 버전에 대한 정보를 보려면 DescribeDBEngineVersions 작업을 사용합니다.

  • ApplyImmediately – 변경 사항을 즉시 적용하거나 다음 유지 관리 기간에 적용합니다. 변경 사항을 바로 적용하려면 값을 true로 설정합니다. 변경 사항을 다음 유지 관리 기간에 적용하려면 값을 false로 설정합니다.

PostgreSQL 확장 버전 업그레이드

Aurora PostgreSQL DB 클러스터를 새로운 메이저 또는 마이너 버전으로 업그레이드해도 PostgreSQL 확장이 동시에 업그레이드되지 않습니다. 대부분의 확장은 메이저 또는 마이너 버전 업그레이드가 완료된 후에 따로 업그레이드해야 합니다. 그러나 경우에 따라 Aurora PostgreSQL DB 엔진을 업그레이드하기 전에 확장을 업그레이드해야 할 수 있습니다. 자세한 내용은 새로운 메이저 버전으로 프로덕션 DB 클러스터 업그레이드 테스트list of extensions to update 섹션을 참조하세요.

PostgreSQL 확장을 설치하려면 rds_superuser 권한이 필요합니다. 일반적으로 rds_superuser는 특정 확장에 대한 권한을 관련 사용자(역할)에게 위임하여 해당 확장을 용이하게 관리할 수 있도록 합니다. 즉, Aurora PostgreSQL DB 클러스터의 모든 확장을 업그레이드하는 태스크에는 다양한 사용자(역할)가 관여해야 할 수 있습니다. 특히 스크립트를 사용하여 업그레이드 프로세스를 자동화하려는 경우에는 이 점을 염두에 두세요. PostgreSQL 권한 및 역할에 대한 자세한 내용은 Amazon Aurora PostgreSQL를 사용한 보안 섹션을 참조하세요.

참고

PostGIS 확장 프로그램 업데이트에 대한 자세한 내용은 PostGIS 확장을 사용하여 공간 데이터 관리(6단계: PostGIS 확장 업그레이드) 섹션을 참조하세요.

pg_repack 확장을 업데이트하려면 확장을 삭제한 후 업그레이드된 DB 인스턴스에 새 버전을 생성합니다. 자세한 내용은 pg_repack 설명서의 pg_repack 설치를 참조하세요.

엔진 업그레이드 후 확장 버전을 업데이트하려면 ALTER EXTENSION UPDATE 명령을 사용합니다.

ALTER EXTENSION extension_name UPDATE TO 'new_version';

현재 설치된 확장을 나열하려면 다음 명령에서 PostgreSQL pg_extension 카탈로그를 사용합니다.

SELECT * FROM pg_extension;

설치에 사용할 수 있는 특정 확장 버전의 목록을 보려면 다음 명령에서 PostgreSQL pg_available_extension_versions 보기를 사용하십시오.

SELECT * FROM pg_available_extension_versions;

대체 블루/그린 업그레이드 기법

경우에 따라서는 오래된 클러스터에서 업그레이드된 클러스터로 즉시 전환하는 것이 가장 중요한 우선순위일 수 있습니다. 또는 이전 클러스터와 새 클러스터를 나란히 실행하는 다단계 프로세스를 따를 수도 있습니다. 이 경우 새 클러스터가 인수할 준비가 될 때까지 이전 클러스터의 데이터를 새 클러스터로 복제합니다. 세부 정보는 데이터베이스 업데이트에 Amazon RDS 블루/그린 배포 사용을 참조하세요.