BLOG
PostgreSQL를 사용한 Amazon Aurora의 호환성은 고급 상업용 데이터베이스의 성능 및 가용성과 오픈소스 데이터베이스의 간단함 및 비용 효율성을 결합시켰습니다. Aurora는 동일한 리전에서 3개의 가용 영역에 걸쳐 스토리지를 확장하여 서비스를 제공하며 단일 리전 내에서 읽기 워크로드 및 고 가용성을 확장하기 위해 최대 15개의 읽기 전용 복제본 인스턴스를 지원합니다. Amazon Aurora Global Database를 통해 전체 지역 장애 발생 시 원격 접근 및 재해 복구를 위한 최대 5개 지역의 PostgreSQL데이터베이스를 복제할 수 있습니다.
Aurora는 스토리지 그룹을 보호 그룹이라는 10GB 논리 블록에 구축합니다. Aurora는 동일한 리전의 3개의 가용 영역(AZ)에 할당된 6개의 스토리지 노드에서 각 AZ에 2개의 스토리지 노드를 사용하여 각 보호 그룹의 데이터를 복제합니다. 데이터 볼륨이 현재 할당된 스토리지를 초과하면 Aurora는 필요에 따라 새 보호 그룹을 추가하여 볼륨을 자동으로 확장하여 수요를 충족시킵니다.
Aurora 글로벌 데이터베이스란?
Aurora 글로벌 데이터베이스는 여러 지역에 걸쳐 있으며 지역별 재해 복구를 제공합니다. 또한 가장 가까운 Aurora 클러스터에서 데이터베이스 읽기를 허용함으로써 대기 시간이 짧은 글로벌 데이터베이스 읽기가 가능합니다.
Global Database는 Aurora의 기능으로, Aurora 전용 스토리지 계층의 전용 인프라를 사용하여 리전 간 복제를 처리합니다. 스토리지 계층의 전용 복제 서버는 복제를 처리하므로 데이터베이스 성능을 저하시키지 않으면서 향상된 복구 및 가용성 목표를 달성할 수 있습니다.
Aurora 글로벌 데이터베이스가 사용하는 PostgreSQL 논리적 복제와 스토리지 기반 복제에는 몇 가지 큰 차이점이 있습니다. 논리적 복제는 기본 PostgreSQL 복제 슬롯을 사용하여 데이터 수정 명령문 또는 행 변경 사항을 복제 소스(기본)에 기록하고 복제 대상(복제본)에 다시 적용합니다. 기본 및 복제본 데이터베이스는 분리되어 독립적이고, 다른 데이터 세트를 포함할 수 있습니다.
이와는 반대로 Aurora 글로벌 데이터베이스는 또한 물리적 스토리지 수준 복제를 사용하여 동일한 데이터 세트로 기본 데이터베이스의 복제본을 생성합니다. 따라서 논리적 복제 프로세스에 대한 종속성이 제거되고, 논리적 복제를 지원하는 데 필요한 기본 쓰기 서버의 오버 헤드가 제거됩니다. Aurora 글로벌 데이터베이스의 보조 리전 인스턴스는 데이터 수정 명령문을 재생하지 않습니다. 따라서 복제 오버 헤드가 크게 줄어들고 애플리케이션 작업에 더 많은 용량을 사용할 수 있습니다.
이는 기록기에서 커밋된 트랜잭션 변경 사항이 일반적으로 1초 이내에 선택한 리전으로 전체적으로 복제됨을 의미합니다. Aurora 글로벌 데이터베이스가 이 복제를 처리하는 동안 데이터는 클러스터의 각 리전에서 3 개의 가용 영역에 지속적으로 저장됩니다.
글로벌 데이터베이스를 사용하는 이유
Aurora 글로벌 데이터베이스는 몇 가지 중요한 기능을 제공합니다.
- 보조 리전에 대한 빠른 글로벌 장애 조치
- 리전 간 낮은 복제 지연
- 데이터베이스에 성능에 거의 영향을 미치지 않음
- 리전 당 최대 16개의 읽기 전용 복제본이 있는 최대 5개의 읽기 복제본
- MySQL 또는 PostgreSQL과의 호환성
보조 리전에 대한 빠른 글로벌 장애 조치
준비된 재해 복구 계획을 통해 예기치 않은 이벤트가 발생할 경우에도 비즈니스 연속성을 유지할 수 있습니다. Aurora 글로벌 데이터베이스는 다음과 같은 두 가지 중요한 재해 복구 지표를 제공합니다.
- Recovery time objective(RTO) – 재해 후 작업 상태로 복구하기까지 걸리는 시간
- Recovery point objective(RPO) – 손실될 수 있는 데이터 양
Aurora 글로벌 데이터베이스를 사용하면 RPO가 5초 미만이므로 데이터 손실을 최소화시키고 RTO가 1분 미만이므로 다운 타임을 줄일 수 있습니다.
Aurora 글로벌 데이터베이스는 재해 복구 및 전체 리전에 걸친 장애 발생 시에도 지속적으로 운영할 수 있게 하는 기능을 제공합니다. Aurora 글로벌 데이터베이스는 데이터베이스의 성능 저하 또는 격리 중에 보조 리전을 승격하기 위해 신속하게 응답합니다. 글로벌 스토리지 기반 복제를 통해 승격된 리전은 1분 안에 전체 읽기/쓰기 워크로드를 수행할 수 있으므로 애플리케이션 가동 시간에 미치는 영향을 최소화합니다.
리전 간 낮은 복제 대기 시간
재해 복구 기능 외에도 Aurora 글로벌 데이터베이스를 사용하면 기본 리전에서 여러 보조 리전으로 신속하게 읽기를 오프로드할 수 있습니다. Aurora 글로벌 데이터베이스는 일반적인 복제 대기 시간을 1초 미만으로 유지하고 상한은 5초입니다. 이 짧은 대기 시간은 OLTP (Online Transaction Processing) 워크로드에 대한 글로벌 데이터베이스 읽기 스케일 아웃을 부여합니다. 복제할 보조 리전을 최대 5개까지 선택할 수 있습니다.
Aurora 글로벌 데이터베이스는 최종 사용자 애플리케이션에 훨씬 근접한 글로벌 복제본을 배치함으로써 대기 시간을 줄이고, 보다 빠른 글로벌 클라이언트 애플리케이션 데이터베이스 응답 시간을 제공하여 최적의 사용자 경험을 선사합니다. 공통 구성 데이터를 공유하는 다중 리전 애플리케이션 스택을 운영하는 경우 Aurora 글로벌 데이터베이스를 사용하여 거의 즉시 데이터를 복제할 수 있습니다.
전 세계에 여러 사무실과 고객이 있는 경우 주요 지역에 콘텐츠를 업로드하고 전 세계 고객이 로컬 대기 시간으로 콘텐츠를 사용할 수 있도록 할 수 있습니다.
데이터베이스에 거의 또는 전혀 영향을 미치지 않습니다
Aurora 스토리지 계층의 Aurora 글로벌 데이터베이스 전용 인프라는 기본 및 보조 리전에서 프로비저닝 된 데이터베이스 리소스를 애플리케이션 워크로드에 제공할 수 있도록 완벽하게 유지합니다. Aurora 복제는 기본 데이터베이스 클러스터의 성능에 영향을 미치지 않습니다.
빠른 교차 리전 마이그레이션
Aurora 글로벌 데이터베이스는 애플리케이션 마이그레이션을 위해 프로덕션 데이터베이스를 다른 AWS 리전으로 복제할 수 있습니다. Aurora 글로벌 데이터베이스가 보조 리전을 업데이트한 후 복제된 데이터베이스를 Aurora 글로벌 데이터베이스에서 분리하고 다른 Aurora 데이터베이스 클러스터처럼 운영할 수 있습니다. 이제 독립적인 클러스터를 리전의 애플리케이션 스택에 연결하자마자 읽기/쓰기 워크로드를 제공하기 시작합니다.
적합성
Aurora 글로벌 데이터베이스는 원래 MySQL과 호환되는 Amazon Aurora에서만 사용할 수 있었지만 최근에 업데이트되어 PostgreSQL과 호환되는 Amazon Aurora에도 Aurora 글로벌 데이터베이스를 사용할 수 있습니다. 해당 사항은 PostgreSQL 10.11과 호환되는 Aurora PostgreSQL 2.4부터 적용됩니다. Aurora는 이제 MySQL 및 PostgreSQL과 모두 호환되므로 애플리케이션 개발자는 글로벌 규모에서도 오픈 소스 데이터베이스의 친숙성과 유연성을 활용할 수 있습니다.
Aurora 글로벌 데이터베이스 생성
AWS Management Console, AWS CLI 에서 데이터베이스를 생성하거나 CreateGlobalCluster 작업을 실행하여 데이터베이스를 생성할 수 있습니다. 자세한 내용은 Creating an Aurora Global Database을 참고해 주시기 바랍니다.
아래의 캡쳐 화면은 MySQL용 및 PostgreSQL용 Aurora 글로벌 데이터베이스 클러스터를 각각 보여줍니다. 표시된 Aurora PostgreSQL 글로벌 데이터베이스의 경우 기본 클러스터는 버지니아 북부(미국 동부)에 있고 보조 클러스터는 오하이오(미국 동부)에 있습니다. 보조 클러스터 추가에 대한 지침은 Adding an AWS Region to an Aurora Global Database를 참고해 주시기 바랍니다.
Aurora 글로벌 데이터베이스에서 클러스터 제거, 장애 복구 실행 또는 데이터 불러오기 등을 하는 방법을 더욱 자세히 알고 싶으시다면 Working with Amazon Aurora Global Database 글을 살펴봐 주십시오.
글을 마치며…
이제 Aurora 글로벌 데이터베이스를 사용하여 PostgreSQL과 호환되는 Amazon Aurora에 리전 데이터베이스 읽기 전용 복제본 및 재해 복구 기능을 제공할 수 있습니다. 이 기능으로 전역에 대한 데이터 복제를 쉽게 구현할 수 있습니다. 전체 리전의 장애에 대한 재해 복구 기능은 PostgreSQL 데이터베이스에 복제본을 활성화하기만 하면 됩니다.
** 메가존 클라우드 TechBlog는 AWS BLOG 영문 게재 글 중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 게재하고 있습니다. 추가로 번역 및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS 페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달해드리도록 하겠습니다.