[AWS RDS MySQL] RDS MySQL와 Aurora MySQL 차이점
l Version :
AWS에서 관리형 관계형 데이터베이스를 보면 RDS MySQL과 Aurora MySQL이 있다. 이 두 서비스의 차이점은 무엇일까? 결론부터 말하면 기존의 MySQL 소스를 기반으로 AWS 에서 커스터마이징 하여 만든 것이 Aurora이며 두 서비스는 스토리지 메커니즘이 다르다.
AWS RDS MySQL
RDS 플랫폼은 기존 데이터베이스 아키텍처를 중심으로 완전히 관리되는 추상화 계층을 제공한다. RDS 내에서 데이터베이스 플랫폼은 EC2에서 수동으로 수행하는 것처럼 구축된다. EC2인스턴스는 적절한 Amazon Machine Image (AMI)에서 프로비저닝 되고, EBS(Elastic Block Store)스토리지는 프로비저닝된 인스턴스에 연결된다. 그리고 적절한 서브넷 그룹과 보안그룹이 인스턴스에 연결되는 구조이다. RDS는 단 몇번의 버튼 클릭만으로 데이터베이스 플랫폼을 안전하고 성능있는 방식으로 프로비저닝 할 수 있다. 프로비저닝되면 RDS는 백업/복원 및 패치가 모두 자동으로 처리되어 플랫폼 유지관리가 자동으로 이루어진다. 아래는 RDS MySQL의 특징 몇 가지를 정리한 것이다.
l 트랜잭션 로그 및 데이터베이스 데이터 파일은 로컬 EBS 스토리지 볼륨 사용
l 데이터베이스의 모든 커밋된 트랜잭션 I/O 는 WAL(Write-Ahead Log)이라고 하는 전후 이미지가 있는 로그 레코드를 생성한 후 지속가능한 스토리지로 저장
l 체크포인트 작업은 수정된 페이지를 디스크로 플러시하여 수행
l EC2 인스턴스에 생성되기 때문에 I/O 대역폭 및 IOPS로 인해 성능이 제한됨
l 튜닝에는 I/O 대역폭을 늘리거나 I/O 수를 줄여야 함
AWS Aurora MySQL
Aurora 플랫폼은 AWS만의 관계형 데이터베이스로써 기존의 소스를 커스터마이징하여 AWS에 최적화 시킨 것이 특징이다. 기존 RDS의 모든 관리 기능 뿐만 아니라 데이터베이스에 최적화된 스토리지 하위 시스템을 제공하여 RDS 플랫폼을 확장한다. RDS에서 사용하는 EBS 스토리지 대신 NVMe SSD 드라이브 위에 구축되어 훨씬 빠른 성능 이점을 제공한다. 아래는 Aurora의 특징 몇 가지를 정리한 것이다.
l 애플리케이션에 따라 자동으로 확장
l 6개의 데이터 복사본을 만들어 여러 위치에 배포하고 Amazon S3에 지속적으로 백업
l 99.99% 이상의 가용성 제공
l 스토리지 장애로부터 투명하게 복구
l 일반 적으로 30초 미만의 인스턴스 장애조치 허용
l 이전 시점으로 빠르게 복구할 수 있는 기능 제공
Aurora는 빠른 로컬 성능 및 재해 복구를 위해 여러 지역에 데이터를 복제하고 컴퓨팅 및 스토리지 작업을 분리하여 I/O병목현상을 줄인다. 로컬 스토리지에 대한 체크포인트 작업으로 데이터베이스 인스턴스에 부담을 주신 대신 Aurora는 지속적인 체크포인트를 위해 분산 스토리지 플릿을 사용한다. 이 분산 스토리지 플릿은 Aurora가 처리량 측면에서 표준 MySQL을 능가하는데 도움이 되며 가용성과 내구성도 향상된다.
아래 그림을 보면 MySQL의 경우 로컬 EBS에 데이터를 저장하고 저장된 EBS를 미러링한 다음 Replication을 통해 Replica instance로 보내 복제 DB의 로컬 EBS에 다시 저장한다. Aurora의 경우 4/6 쿼럼을 사용하여 스토리지에 저장하고 스토리지 레벨에서 복제가 발생한다.
Aurora의 또 다른 특징은 교차 리전 복제(Cross Region Replication, CRR)이다. 각 리전당 3개의 가용 영역, 6개의 복제본이 제공된다. Write 작업은 Primary 인스턴스에서 수행되고 로그 레코드가 Replica 인스턴스로 전달된다.
[참고자료]
l https://aws.amazon.com/ko/blogs/database/amazon-aurora-as-an-alternative-to-oracle-rac/
2022-03-18 / Sungwook Kang / http://sungwookkang.com
AWS RDS, MySQL, AWS Aurora, RDS Aurora, MySQL Aurora
'AWS' 카테고리의 다른 글
[AWS RDS] Modify RDS instance type (0) | 2022.03.23 |
---|---|
[AWS RDS] Modify RDS SQL Server Standard Edition to Enterprise Edition (0) | 2022.03.22 |
[AWS Aurora] Aurora I/O Planning (0) | 2022.03.20 |
[AWS Aurora] Aurora Storage Engine (0) | 2022.03.19 |
[AWS RDS MySQL] InnoDB cache warming (0) | 2022.03.17 |