Amazon Aurora에 대해 몰랐던 모든 것

데이터베이스 시스템의 혁신: 아마존 오로라

기존 데이터베이스 시스템은 성능, 가용성 및 확장성 측면에서 여러 제약을 안고 있습니다. 아마존 오로라(Amazon Aurora)는 이러한 한계를 극복하기 위한 혁신적인 솔루션입니다.

현대 비즈니스 애플리케이션을 원활하게 운영하려면 강력한 데이터베이스가 필수적입니다. 더욱 향상된 서비스를 제공하기 위해서는 더 크고, 안정적이며, 빠른 데이터베이스가 필요합니다. 아마존 웹 서비스(Amazon Web Services, AWS)는 기업이 데이터를 효율적으로 관리하고 고객 만족도를 높이는 데 필요한 도구를 제공합니다.

AWS 오로라 웹 서비스는 이러한 요구를 충족하는 대표적인 예입니다. 클러스터 볼륨을 활용하여 데이터를 관리하고 중요한 백업을 위한 공간을 할당합니다.

아마존 오로라란 무엇인가?

아마존 오로라는 클라우드 환경에 최적화된 데이터베이스 서비스로, 오픈 소스인 MySQL 및 PostgreSQL과 완벽하게 호환됩니다. 오로라는 모든 MySQL 기능을 지원하며, 이러한 데이터베이스에서 실행되는 애플리케이션과의 호환성을 보장합니다.

오로라는 상용 데이터베이스 수준의 성능을 유지하면서도 오픈 소스 데이터베이스의 경제성과 편리함을 제공하고자 설계되었습니다.

오로라는 기존 MySQL보다 최대 5배, PostgreSQL보다 최대 3배 빠른 성능을 자랑합니다. 아마존 RDS(Relational Database Service)는 프로비저닝, 백업 및 복구와 같은 관리 작업을 자동화합니다. 초기 투자 비용 없이 사용한 만큼만 요금을 지불하는 합리적인 가격 모델을 제공합니다.

오로라는 엔터프라이즈급 기능과 우수한 운영 성능을 상용 데이터베이스 비용의 일부로 제공한다는 점에서 차별화됩니다.

또한, 오로라는 전 세계적으로 뛰어난 성능, 가용성, 보안 및 안정성을 보장합니다. 2014년 출시 이후 AWS 포트폴리오에서 가장 빠르게 성장하는 서비스 중 하나로 자리매김했습니다.

아마존 오로라는 어디에 사용되는가?

오로라의 놀라운 성장은 다양한 산업 분야에서 뜨거운 관심을 받으며 이루어졌습니다. 지난 1년간 금융 서비스, 소프트웨어, 인터넷, 엔터테인먼트, 게임 및 소매 분야에서 특히 높은 관심을 보였습니다.

많은 고객이 오로라 MySQL 및 오로라 PostgreSQL로 마이그레이션하여 기존 MySQL 및 PostgreSQL 데이터베이스를 통합하고 있습니다. 또한, 오라클(Oracle) 또는 마이크로소프트 SQL 서버(Microsoft SQL Server)와 같은 기존 데이터베이스에서 오로라 PostgreSQL로 전환하는 사례도 증가하고 있습니다.

“중단 없는” 서비스를 원하는 고객들은 높은 라이선스 비용과 레거시 데이터베이스에 얽매이는 데 지쳐 있습니다. 높은 성장세를 보이는 고객들은 모든 지역에서 빠르고 유연하게 확장할 수 있기를 원하며, AWS 서비스 전반에 걸친 통합을 선호합니다.

아마존 오로라의 주요 이점

아마존 오로라를 사용함으로써 얻을 수 있는 주요 이점은 다음과 같습니다.

확장성

자동 크기 조정 기능을 활성화하여 스토리지 요구량에 따라 데이터베이스 저장 공간을 자동으로 늘리거나 줄일 수 있습니다.

비용 효율성

사용한 컴퓨팅 파워와 스토리지 용량에 대해서만 비용을 지불합니다. 초기 투자 비용이나 기타 추가 비용 없이 합리적인 월별 요금제로 서비스를 이용할 수 있습니다.

보안

Amazon VPC(Virtual Private Cloud)를 사용하여 데이터베이스가 실행되는 네트워크를 격리하고 보호할 수 있습니다. 또한, AWS Key Management Service를 통해 데이터 암호화 키를 생성하여 더욱 안전하게 데이터를 관리할 수 있습니다.

고가용성 및 내구성

여러 가용 영역에 걸쳐 오로라 복제본을 생성하여 데이터베이스의 가용성과 내구성을 높일 수 있습니다. 전 세계적으로 분산된 데이터베이스를 쉽게 배포하여 지역별 읽기/쓰기 속도 저하를 최소화할 수 있습니다.

마이그레이션 지원

로컬 데이터베이스에서 오로라로 데이터를 마이그레이션할 때, pg-dump 또는 MySQL 덤프 명령어를 사용할 수 있어 편리합니다.

완전 관리형 서비스

오로라는 사용하기 매우 쉽습니다. AWS RDS 콘솔을 통해 데이터베이스 인스턴스를 간편하게 설정할 수 있으며, 아마존 클라우드워치(Amazon Cloudwatch)를 통해 추가 비용 없이 모니터링 기능을 이용할 수 있습니다. 프로비저닝, 업데이트 및 업그레이드와 같은 복잡한 작업에 대한 걱정 없이 아마존에서 소프트웨어의 모든 측면을 관리하고 필요한 패치를 제공합니다.

아마존 오로라의 핵심 기능

아마존 오로라의 가장 주목할 만한 기능들은 다음과 같습니다.

뛰어난 확장성: 오로라의 가장 큰 장점은 자동 확장 기능입니다. 데이터베이스는 스토리지 요구 사항에 따라 자동으로 크기가 조정됩니다. 볼륨은 최대 10GB씩 증가하여 최대 128TB까지 확장될 수 있습니다. 이러한 유연성은 원활한 데이터 관리를 가능하게 합니다.

높은 처리량: 벤치마크 테스트 결과, 오로라는 기존 시스템에 비해 처리량이 5배 향상되었습니다. 다양한 소프트웨어 및 하드웨어 기술을 활용하여 사용 가능한 메모리, 컴퓨팅 및 네트워크 리소스를 극대화합니다. 쿼럼(Quorum)과 같은 분산 시스템 기술을 활용하여 입력 및 출력 작업을 최적화하고 성능 일관성을 높입니다.

인스턴스 모니터링 및 자동 복구: 아마존 RDS는 오로라 데이터베이스 및 기본 EC2 인스턴스의 상태와 성능을 지속적으로 모니터링합니다. 데이터베이스 또는 관련 프로세스에서 오류가 발생할 경우, 데이터베이스를 자동으로 재시작하여 서비스 중단을 최소화합니다.

강력한 암호화: AWS Key Management Service를 통해 생성 및 제어되는 암호화 키를 사용하여 데이터베이스를 암호화함으로써 높은 수준의 보안을 제공합니다. 또한, SSL 암호화를 사용하여 데이터 전송 중에도 안전하게 보호합니다.

사용 편의성: 아마존 RDS 관리 콘솔을 통해 새로운 오로라 DB 인스턴스를 쉽게 생성할 수 있습니다. API 호출 또는 CLI를 통해 단 한 번의 명령으로 인스턴스를 구성할 수 있습니다. 오로라 DB 인스턴스는 각 DB 인스턴스 유형에 맞는 최적의 파라미터와 설정으로 사전 구성되어 제공됩니다.

비용 효율성: 사용한 만큼만 비용을 지불하는 합리적인 가격 정책을 제공합니다. 초기 비용이나 기타 추가 수수료 없이 편리하게 월별 요금을 지불할 수 있습니다.

간편한 마이그레이션: pg-dump 또는 MySQL 덤프 명령어를 사용하여 로컬 데이터베이스를 오로라로 간편하게 마이그레이션할 수 있습니다.

오로라는 완전 관리형 서비스로서 즉시 사용할 수 있습니다. AWS RDS 콘솔에서 인스턴스를 생성하거나 API를 호출하여 쉽게 데이터베이스를 설정할 수 있습니다. 프로비저닝, 업데이트 또는 업그레이드와 같은 복잡한 작업은 아마존에서 자동으로 처리합니다.

아마존 오로라 아키텍처

오로라 데이터베이스의 전반적인 아키텍처는 기존 데이터베이스 관리 시스템(DBMS)을 기반으로 구축되었습니다. 트랜잭션 관리자, 쿼리 실행 엔진 및 복구 관리자와 같은 대부분의 DBMS 구성 요소를 재사용합니다.

아마존 오로라는 기존 DBMS의 한계를 뛰어넘는 새로운 차원의 DBMS입니다. 가용성, 안정성 및 확장성을 개선하기 위해 기존 DBMS의 기능을 대폭 향상시켰습니다.

이러한 개선 사항은 다음과 같습니다.

  • 기본 복제본 설정을 사용합니다.
  • 데이터의 원격 스토리지를 복제합니다.
  • 변경 로그만 원격 디스크에 저장합니다.

아마존 오로라의 아키텍처는 기존 관계형 데이터베이스의 스토리지 계층을 확장할 수 있도록 설계되었습니다.

아마존 오로라의 기본 데이터베이스 인스턴스는 처리 과정에서 리두 로그(redo log)를 스토리지 계층으로 전달합니다. 로그는 새 페이지 버전을 생성 및 저장하고 S3에 백업하는 스토리지 계층에서 처리됩니다.

이미지 출처: AWS

아마존 오로라의 확장 과정은 간단합니다. 기존 스토리지 계층에 추가 데이터베이스 엔진 인스턴스를 연결하기만 하면 됩니다. 스토리지 계층으로 작업을 위임함으로써 병렬 처리를 지원하고 데이터 복제 과정에서 발생할 수 있는 병목 현상을 제거합니다.

이러한 아키텍처를 통해 다음과 같은 새로운 기능들을 구현할 수 있습니다.

  • 즉각적인 충돌 복구: 마지막 체크포인트에서 로그를 재생할 필요 없이 데이터베이스를 즉시 복구할 수 있습니다.
  • 빠른 장애 조치: 스토리지 계층에서 리두 로그를 관리하므로, 가장 최근 리두 로그 레코드를 가진 복제본 데이터베이스에 대한 걱정 없이 빠르게 장애 조치를 수행할 수 있습니다.
  • 역추적: 스토리지 계층에서 리두 로그를 스트리밍하므로, S3 백업에서 체크포인트를 복원할 필요 없이 특정 시점의 데이터로 되돌릴 수 있습니다.

아마존 오로라 설정 방법

다음은 아마존 오로라를 성공적으로 설정하기 위한 단계별 가이드입니다.

#1. AWS 관리 콘솔에 로그인하고 RDS를 엽니다.

#2. ‘데이터베이스 생성’을 클릭합니다.

#3. 엔진 옵션을 ‘Amazon Aurora’로 선택합니다.

#4. 필요한 Aurora MySQL 버전을 선택합니다.

#5. DB 클러스터 식별자를 생성하고 사용자 이름과 암호를 설정합니다.

#6. 드롭다운 메뉴에서 인스턴스 구성을 선택하고 복제본 생성 여부를 선택합니다.

#7. 연결 옵션을 아래와 같이 설정합니다.

#8. 기존 VPC 보안 그룹을 선택하거나 새 보안 그룹을 생성합니다.

#9. 향상된 모니터링을 활성화하고 모니터링 역할 옵션을 선택합니다.

#10. 마지막으로 ‘데이터베이스 생성’을 클릭합니다.

#11. 아마존 오로라 데이터베이스가 성공적으로 생성되었습니다.

요금 모델: 아마존 오로라

오로라 서버리스 ACU v2의 비용은 시간당 $0.12로, 프로비저닝된 오로라 ACU 가격의 두 배입니다. 이는 다음을 의미합니다.

  • 최소 실행 비용: ACU 4개, 시간당 $0.48 또는 월 $350
  • 자동 크기 조정 기능이 병적으로 작동하는 워크로드의 경우, 최소 확장 증가는 30초 또는 절반 ACU에 대해 $0.0005입니다.

오로라 서버리스 V2의 월별 비용은 $350입니다. 각 자동 크기 조정 이벤트에는 최소 $0.0005가 청구됩니다. 이에 상응하는 오로라 용량은 월 $175이지만, 반응성이 뛰어난 서버리스 자동 확장 기능은 제공되지 않습니다.

사용 사례: 아마존 오로라

#1. 서비스형 소프트웨어(SaaS)

스토리지 및 인스턴스 확장에 유연한 아키텍처를 제공하여, 기업이 데이터베이스 관리에 대한 부담 없이 고품질 애플리케이션 개발에 집중할 수 있도록 지원합니다.

#2. 게임

오로라는 관계형 데이터베이스와 동일한 방식으로 작동하며, 높은 처리량, 대용량 저장 공간, 고가용성 및 뛰어난 안정성을 제공하여 게임 개발에 최적화된 환경을 제공합니다.

#3. 엔터프라이즈 애플리케이션

오로라는 기존 관계형 데이터베이스에 익숙한 기업에게 적합합니다. 또한, 다른 옵션에 비해 가격을 최대 90%까지 절감할 수 있어 비용 효율적인 솔루션입니다.

MySQL 및 PostgreSQL과의 오로라 호환성

아마존 오로라는 고성능, 글로벌 가용성 및 완전한 MySQL/PostgreSQL 호환성을 목표로 설계되었습니다. 표준 도구를 사용하여 오로라로 MySQL 및 PostgreSQL 데이터베이스를 쉽게 마이그레이션할 수 있습니다. 또한, 최소한의 코드 변경으로 오로라 PostgreSQL용 바벨피시(Babelfish)를 사용하여 기존 SQL 서버 앱을 실행할 수도 있습니다.

아마존 오로라는 pg_dump 또는 pg_restore와 같은 표준 PostgreSQL 가져오기/내보내기 도구와 완벽하게 호환됩니다. 아마존 RDS 또는 MySQL DB 스냅샷을 사용하여 새 아마존 오로라 테이블을 생성할 수도 있습니다.

DB 스냅샷은 일반적으로 빠르게 완료되지만, 마이그레이션되는 데이터의 양과 형식에 따라 소요 시간이 달라질 수 있습니다.

아마존 오로라 vs 아마존 RDS

아키텍처 디자인

RDS 아키텍처는 사용자가 아마존 EC2에 데이터베이스 엔진을 수동으로 설치할 수 있지만, 프로비저닝 및 유지 관리는 AWS에 위임합니다. RDS는 자동 장애 조치, 백업과 같은 다양한 기능을 제공합니다. RDS는 아마존 EBS 볼륨을 사용하여 로그 및 데이터베이스 데이터를 저장합니다.

오로라 데이터베이스 스토리지 시스템은 안정적이고 내결함성이 뛰어나도록 설계되었습니다. 오로라의 데이터베이스 스토리지는 인스턴스와 독립적으로 운영됩니다. 오로라는 데이터를 10GB 청크 단위로 6개의 복사본에 저장하며, 이 복사본들은 3개의 가용 영역에 분산됩니다. 따라서 오로라 인스턴스가 하나만 있는 경우에도 6개의 데이터 복사본을 보장합니다.

성능

RDS는 향상된 I/O 처리량 성능을 위해 SSD 스토리지를 사용합니다. 고성능 OLTP 애플리케이션용 스토리지와 범용 스토리지 옵션 두 가지를 제공합니다.

오로라는 동일한 하드웨어 환경에서 PostgreSQL 성능의 2배, 표준 MySQL 성능의 5배를 제공합니다. 오로라는 지속적으로 더 높고 일관된 성능을 유지합니다.

데이터베이스 엔진 지원

RDS는 MySQL, PostgreSQL, MariaDB는 물론 Microsoft SQL Server 및 Oracle과도 호환됩니다.

오로라는 PostgreSQL과 MySQL 모두와 호환됩니다. 따라서 기존 데이터베이스 도구와 애플리케이션을 변경 없이 PostgreSQL 및 MySQL 환경에서 모두 사용할 수 있습니다.

내구성 및 가용성

오로라는 매우 낮은 복구 시점 목표(RPO)를 달성하여 지속적인 백업 및 복원을 지원하는 고유한 스토리지 모델을 갖추고 있습니다. 이는 RDS보다 더 안정적이고 내구성이 뛰어납니다.

오로라는 설계상 데이터 내구성이 매우 높습니다. 항상 데이터 사본이 여러 개 존재합니다. 각 오로라 클러스터는 3개의 AZ에 분산된 6개의 스토리지 노드로 구성되어 있습니다. 컴퓨팅 노드가 하나만 있는 경우에도 데이터 사본은 여러 개로 유지됩니다.

복원력

오로라의 아키텍처 설계 덕분에 RDS보다 복원력이 뛰어납니다. 장애 복구 속도가 빠릅니다. 컴퓨팅 노드에 오류가 발생하면 오로라가 신속하게 복구할 수 있습니다.

스토리지

RDS 스토리지 자동 크기 조정은 증가하는 데이터베이스 워크로드를 수용하기 위해 스토리지 용량을 최대 64TiB(SQL Server의 경우 16TiB 제외)까지 확장합니다. 가동 중단 시간 없이 스토리지 용량을 조정할 수 있습니다.

오로라는 스토리지를 자동으로 늘려 최소 10GB에서 최대 128TiB까지 확장합니다. 저장 공간은 데이터베이스 성능에 영향을 주지 않고 10GB 단위로 증가합니다.

확장성

수직 확장: RDS와 오로라를 사용하면 메모리와 컴퓨팅 리소스를 최대 244GiB RAM과 32개의 가상 CPU까지 확장할 수 있습니다. 몇 초 안에 데이터베이스 작업을 확장할 수 있습니다.

오로라 자동 확장 동적 기능: 오로라 자동 확장은 단일 마스터 복제를 사용하여 오로라 DB 클러스터에서 사용할 수 있는 오로라 복제본 수를 동적으로 조정합니다. RDS는 이러한 자동 확장 기능을 지원하지 않습니다.

복제

RDS를 사용하면 최대 5개의 복제본을 제공할 수 있습니다. 또한 복제 프로세스도 오로라보다 느립니다.

오로라는 최대 15개의 복제본을 프로비저닝할 수 있으며 복제에 몇 초밖에 걸리지 않습니다. 오로라는 새 읽기 전용 복제본을 빠르게 추가할 수 있기 때문에 확장성이 더 뛰어납니다.

장애 조치

RDS에서 읽기 복제본으로의 장애 조치는 수동으로 이루어집니다. 이로 인해 데이터 손실이 발생할 수 있습니다. 다중 AZ(대기 인스턴스)를 사용하여 장애 조치를 자동화하고 데이터 손실을 방지할 수 있습니다.

오로라는 데이터 손실을 방지하기 위해 장애 조치 시 자동으로 읽기 복제본으로 전환합니다. 오로라의 장애 조치 시간이 더 빠릅니다.

클러스터 엔드포인트

RDS에는 쓰기 쿼리를 실행하는 데 사용할 수 있는 클러스터 엔드포인트가 있습니다. 이것은 현재 마스터 데이터베이스 인스턴스에 대한 DNS 포인터입니다. RDS는 장애 조치 중에 간단한 DNS 변경을 통해 엔드포인트를 새 마스터로 라우팅합니다.

클러스터 엔드포인트는 쿼리 작성을 위해 오로라에서 계속 사용할 수 있습니다. 이 엔드포인트는 읽기 복제본을 위한 로드 밸런서 역할도 합니다. 이 엔드포인트를 사용하여 읽기 쿼리에 응답할 수 있습니다.

지원

RDS는 DB 인스턴스의 백업 기간 동안 DB 인스턴스의 백업을 자동으로 생성하고 저장합니다. RDS는 DB 인스턴스의 스냅샷을 스토리지 볼륨으로 만들어 선택한 데이터베이스뿐만 아니라 모든 데이터베이스를 백업합니다.

오로라는 클러스터 볼륨을 자동으로 백업하고 지정된 백업 보존 기간 동안 데이터를 계속 복원합니다. 오로라 백업은 연속적이고 증분적이므로 백업 보존 기간 내의 모든 시점으로 빠르게 복원할 수 있습니다.

다음은 아마존 오로라와 아마존 RDS의 요약 표입니다.

아마존 오로라 아마존 RDS
스토리지 용량을 10GB에서 64GB로 확장 가능 SQL Server, MariaDB, Oracle Database, MySQL, PostgreSQL 및 Amazon Aurora 지원
15개의 복제본 지원 5개의 복제본 지원
가격은 I/O 작업에 따라 다름 최소 사용 요금 없이 무료로 사용해 볼 수 있음

아마존 오로라 vs DynamoDB

내구성 및 가용성

각 DynamoDB 데이터 조각은 여러 물리적 노드에 복제됩니다. 아마존은 이러한 물리적 노드를 여러 영역(가용 영역이라고도 함)에 배치하여 화재나 대규모 정전과 같은 재난 발생 시 높은 내구성과 가용성을 보장합니다. 사본 하나가 다운되더라도 작업은 계속됩니다. SSD는 또한 매우 안정적이고 내구성이 뛰어납니다.

백업 및 복원

DynamoDB는 온디맨드 백업과 PITR(특정 시점 백업) 기능을 제공하여 모든 데이터베이스 상태에 액세스할 수 있도록 지원합니다. DynamoDB는 모든 크기의 데이터를 백업할 수 있으며, 성능 및 가용성에 영향을 미치지 않습니다. 백업에 걸리는 시간이 짧고, 사용자는 백업 일정이나 백그라운드 프로세스에 대해 걱정할 필요가 없습니다. AWS는 단 한 번의 API 호출로 백업 복구를 지원합니다.

아마존 오로라 백업 프로세스는 DynamoDB와 유사합니다. 성능 중단이나 데이터베이스 서비스 중단 없이 백업을 생성합니다. 아마존 백업은 S3 버킷에 저장됩니다. 백업 기간을 지정하지 않으면 오로라가 자동으로 30분 백업을 생성합니다.

액세스 제어

DynamoDB는 데이터베이스 생성 및 쿼리 권한을 제한하는 세분화된 정책으로 IAM 사용자 및 역할을 지원합니다. 아마존 오로라에도 비슷한 권한 체계가 있습니다.

그러나 오로라는 데이터베이스에 연결하기 위한 MySQL 및 PostgreSQL 호환 연결 인터페이스도 제공합니다.

지역 서비스인 DynamoDB는 VPC 경계에 종속되지 않습니다. 그러나 오로라 DB 클러스터는 네트워크 경계를 명확하게 정의하는 VPC에 설정해야 합니다. 또한 VPC 보안 그룹을 사용하여 데이터베이스 인스턴스에 연결할 수 있는 장치 또는 Amazon EC2 인스턴스를 제어할 수 있습니다.

다음은 아마존 오로라와 DynamoDB의 요약 표입니다.

아마존 오로라 DynamoDB
MySQL 및 PostgreSQL을 지원하는 관계형 데이터베이스 NoSQL 데이터베이스
다중 지역, 단일 마스터 다중 지역, 다중 마스터
복제본은 1분 안에 기본으로 승격될 수 있음 고가용성
복제 지연 시간은 1초 미만 복제 지연 시간은 밀리초 미만

결론

지금까지 아마존 오로라에 대해 자세히 알아보았습니다. 우리는 관계형 데이터베이스의 새로운 시대에 접어들고 있으며 오로라는 그 시작에 불과합니다. 고객들은 오로라에 압도적인 호응을 보내고 있습니다. 캐피털 원(Capital One), 다우존스(Dow Jones), 넷플릭스(Netflix), 버라이존(Verizon)과 같은 모든 산업 분야의 리더들이 MySQL 및 PostgreSQL 호환 에디션을 포함한 오로라로 관계형 데이터베이스 워크로드를 마이그레이션하고 있습니다.