개요
기존에는 AWS의 데이터베이스 서비스 중 RDS를 주로 사용해왔는데, 현재는 Aurora도 사용을 하고 있다. Aurora가 보다 AWS에 친화적인 서비스라는 건 알고 있지만 다른 차이점은 알고 있지않아 정리해보려고 한다.
AWS Aurora

AWS Aurora는 데이터베이스 서비스 중 하나로 클라우드 네이티브 기반의 고성능, 고확장성 데이터베이스 서비스로 설계되어 MySQL, PostgreSQL을 제공한다. RDS와 비교하면 최대 3배의 read replicas와 MySQL 대비 5배, PostgreSQL 대비 3배의 처리량을 제공한다.
RDS가 제공하는 모든 관리 기능 뿐만 아니라 서버리스 서비스도 제공하고 있다.
Aurora는 기존의 데이터베이스 엔진을 커스트마이징해 AWS에 최적화한 게 특징으로, EBS 대시 NVMe SSD에 구축해 보다 빠른 성능 상의 이점을 갖고 있다. 또한 애플리케이션에 따라 자동을 확장되며, 6개의 데이터 복사본을 생성해 여러 위치에 배포한뒤 S3에 지속적으로 백업하는 특징을 가진다.
엔드포인트
Aurora는 4개의 엔드포인트를 가진다.
- Cluster Endpoint : Writer 인스턴스만 접근하는 엔드포인트로, failover되면 엔드포인트에 매핑되는 인스턴스가 변경된다.
- Read Endpoint : read replica를 그룹화한 엔드포인트로 라운드로빈으로 접근한다.
- Instance Endpoint : 각 인스턴스에 할당된 엔드포인트
- Custom Endpoint : Route53와 유사한 역할을 하며 사용자가 직접 엔드포인트를 생성한다.
Aurora vs RDS
Aurora와 RDS의 유지 관리는 전반적으로 유사하지만 스토리지에는 큰 차이가 있다.
Aurora는 데이터 용량이 증가할수록 클러스터 볼륨이 최대 128 TiB까지 자동으로 확장될 수 있다. 반면 RDS는 사용자가 직접 볼륨을 증설해주어야 한다. 또한 EBS를 사용하는 RDS와 달리 Aurora는 Shared Storage를 사용하며, MySQL의 경우에는 Binlog 기반의 replication이 아니라 Storage와 Page 기반의 replication을 사용한다. 즉, 스토리지 수준에서 복제가 발생한다.

Aurora는 AWS가 개발해 주기적으로 버전 업그레이드를 수행하기 때문에 AWS가 mandatory, optional을 정하는 반면, RDS는 사용자가 버전 업그레이드를 한다.
참고 문서
https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/CHAP_AuroraOverview.html
https://www.cloudzero.com/blog/aurora-vs-rds/