온프레미스 PostgreSQL 데이터베이스를 Aurora PostgreSQL로 마이그레이션하기 - 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

온프레미스 PostgreSQL 데이터베이스를 Aurora PostgreSQL로 마이그레이션하기

작성자: Baji Shaik(AWS) 및 Jitender Kumar(AWS)

환경: PoC 또는 파일럿

소스: 온프레미스 PostgreSQL 데이터베이스

대상: Aurora PostgreSQL-Compatible

R 유형: 리플랫포밍

워크로드: 오픈 소스

기술: 마이그레이션, 데이터베이스

AWS 서비스: Amazon Aurora, AWS DMS

요약

Amazon Aurora PostgreSQL 호환 에디션은 하이엔드 상용 데이터베이스의 성능 및 가용성과 오픈 소스 데이터베이스의 단순성 및 비용 효율성을 결합한 제품입니다. Aurora는 동일한 AWS 리전의 3개 가용 영역에 걸쳐 스토리지를 확장하여 이러한 이점을 제공하며, 읽기 워크로드를 확장하고 단일 리전 내에서 고가용성을 제공하기 위해 최대 15개의 읽기 전용 복제본 인스턴스를 지원합니다. Aurora 글로벌 데이터베이스를 사용하면 최대 5개 리전에 PostgreSQL 데이터베이스를 복제하여 리전 장애 발생 시 원격 읽기 액세스 및 재해 복구를 수행할 수 있습니다. 이 패턴은 온프레미스 PostgreSQL 소스 데이터베이스를 Aurora PostgreSQL 호환 데이터베이스로 마이그레이션하는 단계를 설명합니다. 패턴에는 두 가지 마이그레이션 옵션이 포함됩니다. 하나는 AWS 데이터 마이그레이션 서비스(AWS DMS)를 사용하는 것이고, 다른 하나는 네이티브 PostgreSQL 도구(예: pg_dump, pg_restore, psql) 또는 타사 도구를 사용하는 것입니다. 

이 패턴에 설명된 단계는 Amazon Relational Database Service(RDS) 및 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스상의 대상 PostgreSQL 데이터베이스에도 적용됩니다.

사전 조건 및 제한 사항

사전 조건

제한 사항

제품 버전

  • Amazon RDS의 PostgreSQL 메이저 버전 및 마이너 버전 지원에 대한 내용은 Amazon RDS 설명서에서 Amazon RDS for PostgreSQL 업데이트를 참조하십시오.

  • Aurora에서의 PostgreSQL 지원에 대한 내용은 Aurora 설명서에서 Amazon Aurora PostgreSQL 업데이트를 참조하십시오.

  • AWS DMS 마이그레이션 옵션을 사용하는 경우, AWS DMS 설명서에서 지원되는 PostgreSQL 버전을 참조하십시오.

아키텍처

소스 기술 스택

  • 온프레미스 PostgreSQL 데이터베이스

대상 기술 스택

  • Aurora PostgreSQL 호환 DB 인스턴스

소스 아키텍처

온프레미스 PostgreSQL 데이터베이스를 위한 소스 아키텍처

대상 아키텍처

Amazon Aurora의 PostgreSQL 데이터베이스를 위한 대상 아키텍처

데이터 마이그레이션 아키텍처

AWS DMS 사용

AWS DMS를 사용하여 온프레미스 PostgreSQL 데이터베이스를 Aurora로 마이그레이션

네이티브 PostgreSQL 도구 사용

pg_dump 및 pg_restore를 사용하여 온프레미스 PostgreSQL 데이터베이스 마이그레이션

도구

에픽

작업설명필요한 기술

소스 및 대상 데이터베이스 버전을 검증합니다.

AWS DMS를 사용하는 경우 PostgreSQL의 지원되는 버전을 사용하고 있는지 확인합니다.

DBA

스토리지 유형 및 용량 요구 사항을 확인하십시오.

  1. 소스 데이터베이스 인스턴스에 할당된 스토리지를 계산합니다.

  2. 소스 데이터베이스 인스턴스의 과거 증가 지표를 수집하십시오.

  3. 대상 데이터베이스 인스턴스의 향후 성장 예측을 예측합니다.

  4. 소스 데이터베이스의 총 읽기 및 쓰기 IOPS 수를 계산하여 스토리지를 할당합니다. 범용 SSD (gp2) 볼륨은 스토리지 1GB당 3 IOPS를 제공합니다.

DBA, 시스템 관리자

적절한 인스턴스 유형, 용량, 스토리지 기능 및 네트워크 기능을 선택합니다.

대상 데이터베이스 인스턴스의 컴퓨팅 요구 사항을 결정합니다. 추가 주의가 필요할 수 있는 알려진 성능 문제를 검토하십시오. 다음 요소를 고려하여 적절한 인스턴스 유형을 결정하십시오.

  • 소스 데이터베이스 인스턴스의 CPU 사용률

  • 소스 데이터베이스 인스턴스의 IOPS (읽기 및 쓰기 작업)

  • 소스 데이터베이스 인스턴스의 메모리 사용량

자세한 내용은 Aurora 설명서의 Aurora DB 인스턴스 클래스 를 참조하십시오.

DBA, 시스템 관리자

소스 및 대상 데이터베이스의 네트워크 액세스 보안 요구 사항을 식별합니다.

애플리케이션이 데이터베이스와 통신할 수 있도록 하는 적절한 보안 그룹을 결정하십시오.

DBA, 시스템 관리자

애플리케이션 마이그레이션 전략을 파악합니다.

  • 애플리케이션의 복잡성에 따라 마이그레이션 전환 전략을 결정하십시오. 

  • 애플리케이션에 대한 Recovery Time Objective(RTO) 및 Recovery Point Objective(RPO)를 결정하고 이에 따라 전환을 계획합니다.

DBA, 앱 소유자, 시스템 관리자
작업설명필요한 기술

VPC를 생성합니다.

대상 데이터베이스 인스턴스에 대한 새 Virtual Private Cloud(VPC)를 생성합니다.

시스템 관리자

보안 그룹을 생성합니다.

이전 에픽에서 결정한 대로 VPC 내에 보안 그룹을 생성하여 데이터베이스 인스턴스로의 인바운드 연결을 허용합니다.

시스템 관리자

Aurora DB 클러스터를 구성하고 시작합니다.

새 VPC와 보안 그룹으로 대상 데이터베이스 인스턴스를 만들고 인스턴스를 시작합니다.

시스템 관리자
작업설명필요한 기술

마이그레이션 전 단계를 완료하십시오.

  1. 소스 데이터베이스의 데이터를 정리합니다.

  2. 복제 인스턴스 생성

  3. 소스 및 대상 엔드포인트를 생성합니다.

  4. 마이그레이션할 수 있는 테이블 및 객체 수를 식별하십시오.

DBA

마이그레이션 단계를 완료합니다.

  1. 대상 데이터베이스에 외래 키 제약 조건 및 트리거를 삭제합니다.

  2. 대상 데이터베이스에 보조 인덱스를 삭제합니다.

  3. 전체 로드 작업을 사용하여 소스에서 대상 데이터베이스로 데이터를 마이그레이션합니다.

  4. 외래 키를 활성화합니다.

  5. 플래시컷 마이그레이션을 사용하고 애플리케이션 가동 중지 시간을 최소화해야 하는 경우 변경 데이터 캡처(CDC)를 활성화하여 진행 중인 변경 사항을 복제하십시오.

  6. 트리거를 활성화합니다.

  7. 업데이트 시퀀스.

  8. 소스 및 대상 데이터를 검증합니다.

DBA

데이터를 검증합니다.

데이터가 소스에서 대상으로 정확하게 마이그레이션되었는지 확인하려면 AWS DMS 설명서의 데이터 검증 단계를 따르십시오.

DBA
작업설명필요한 기술

소스 데이터베이스를 준비합니다.

  1. pg_dump 백업이 아직 없는 경우 해당 디렉터리를 생성하여 저장합니다.

  2. 데이터베이스 객체에서 pg_dump를 실행할 권한이 있는 마이그레이션 사용자를 생성하십시오.

  3. EC2 인스턴스에 연결하고 pg_dump 백업을 실행합니다.

자세한 내용은 pg_dump 설명서 및 AWS DMS 설명서의 안내를 참조하십시오.

DBA

대상 데이터베이스를 준비합니다.

  1. 데이터베이스 개체에 pg_restore를 사용할 권한이 있는 마이그레이션 사용자를 생성하십시오.

  2. pg_restore를 사용하여 데이터베이스 덤프를 가져옵니다.

자세한 내용은 pg_restore 설명서 및 AWS DMS 설명서의 안내를 참조하십시오.

DBA

데이터를 검증합니다.

  1. 소스 데이터베이스와 대상 데이터베이스 간의 데이터베이스 개체 수를 비교합니다.

  2. 객체 수 간에 불일치가 발견되면 이를 해결합니다.

DBA
작업설명필요한 기술

애플리케이션 마이그레이션 전략을 따릅니다.

첫 번째 에픽에서 만든 애플리케이션 마이그레이션 전략을 구현하십시오.

DBA, 앱 소유자, 시스템 관리자
작업설명필요한 기술

애플리케이션 클라이언트를 새 인프라로 전환합니다.

  1. 온프레미스 PostgreSQL 데이터베이스를 가리키는 모든 애플리케이션 서비스 및 클라이언트 연결을 중지합니다.

  2. AWS DMS 작업을 실행합니다.

  3. 필요한 경우 롤백 작업(Aurora PostgreSQL과 호환되는 CDC를 온프레미스 PostgreSQL 데이터베이스로 역방향)을 설정합니다.

  4. 데이터를 검증합니다.

  5. Amazon Route 53을 새로운 Aurora PostgreSQL 호환 DB 인스턴스로 구성하여 새 대상에서 애플리케이션 서비스를 시작하십시오.

  6. 새로운 Aurora PostgreSQL 호환 DB 인스턴스에 Amazon CloudWatchPerformance Insights 모니터링을 추가하십시오.

DBA, 앱 소유자, 시스템 관리자

마이그레이션을 롤백해야 하는 경우.

  1. Aurora PostgreSQL 호환 데이터베이스를 가리키는 모든 애플리케이션 서비스를 중지합니다.

  2. 이전 스토리에서 생성한 AWS DMS 작업을 사용하여 소스 온프레미스 PostgreSQL 데이터베이스의 변경 내용을 롤백합니다.

  3. 온프레미스 PostgreSQL 데이터베이스에서 Aurora PostgreSQL 호환 데이터베이스로 실행되는 AWS DMS 작업을 중지하십시오.

  4. 소스 온프레미스 PostgreSQL 데이터베이스를 가리키도록 애플리케이션을 구성합니다.

  5. 모든 롤백 배포가 완료되었는지 확인합니다.

DBA, 앱 소유자
작업설명필요한 기술

리소스를 종료합니다.

임시 AWS 리소스를 종료합니다.

DBA, 시스템 관리자

문서를 검증합니다.

프로젝트 문서를 검토하고 검증하세요.

DBA, 앱 소유자, 시스템 관리자

지표를 수집합니다.

마이그레이션 시간, 수동 비용 대비 도구 비용 절감 비율 등에 대한 지표를 수집하십시오.

DBA, 앱 소유자, 시스템 관리자

프로젝트 닫기

프로젝트를 종료하고 피드백을 제공하세요.

DBA, 앱 소유자, 시스템 관리자

관련 리소스

참조

추가 리소스