
AWS에서 MySQL 데이터베이스를 만들려고 하면 RDS for MySQL과 Aurora MySQL이라는 두 가지 선택지가 나옵니다.
둘 다 AWS가 관리해 주는 MySQL 데이터베이스지만, 내부 구조와 비용, 성능 및 장애 대응 방식에서 차이가 있습니다.
쉽게 정리하면 다음과 같습니다.
RDS for MySQL은 AWS가 관리해 주는 일반 MySQL이고, Aurora MySQL은 AWS가 고가용성과 확장성을 강화해 새롭게 만든 MySQL 호환 데이터베이스입니다.
1. Amazon RDS란? 🤔
Amazon RDS는 AWS에서 제공하는 관리형 관계형 데이터베이스 서비스입니다.
AWS가 다음과 같은 작업을 대신해 줍니다.
- 데이터베이스 설치
- 서버 운영
- 자동 백업
- 버전 패치
- 장애 감지
- 모니터링
- 스토리지 확장
RDS는 하나의 데이터베이스 제품명이 아니라 여러 데이터베이스를 관리해 주는 서비스입니다.
Amazon RDS
├─ RDS for MySQL
├─ RDS for PostgreSQL
├─ RDS for MariaDB
├─ RDS for Oracle
├─ RDS for SQL Server
└─ Amazon Aurora
├─ Aurora MySQL
└─ Aurora PostgreSQL
따라서 Aurora도 AWS RDS 서비스 안에서 관리됩니다.
2. RDS for MySQL이란? 🗄️
RDS for MySQL은 일반 MySQL을 AWS가 관리형 서비스로 제공하는 방식입니다.
직접 구축
EC2 → MySQL 설치 → 패치·백업 직접 관리
RDS for MySQL
AWS가 MySQL 설치 → 패치·백업·장애 관리
다음과 같은 익숙한 MySQL 버전을 선택할 수 있습니다.
MySQL 8.0.44
MySQL 8.0.45
MySQL 8.0.46
MySQL 8.4.x
기존 MySQL과의 호환성이 중요하거나 정확한 MySQL 버전이 필요한 경우 유리합니다.
3. Aurora MySQL이란? 🌌
Aurora MySQL은 일반 MySQL을 그대로 제공하는 것이 아닙니다.
AWS가 MySQL과 호환되도록 새롭게 개발한 클라우드용 데이터베이스 엔진입니다.
MySQL의 SQL과 접속 방식
+
AWS의 분산 스토리지와 고가용성 기술
=
Aurora MySQL
기존 MySQL 애플리케이션과 드라이버를 대부분 사용할 수 있지만, 일반 MySQL과 100% 동일하지는 않습니다.
일부 MySQL 기능과 파라미터는 지원되지 않거나 다르게 작동할 수 있습니다.
4. 가장 큰 차이는 저장 구조입니다 💾
RDS for MySQL 구조
RDS for MySQL은 DB 인스턴스마다 CPU, 메모리, MySQL 엔진 및 스토리지를 구성합니다.
RDS MySQL 인스턴스
├─ CPU
├─ 메모리
├─ MySQL 엔진
└─ 전용 스토리지
Multi-AZ를 구성하면 다른 가용 영역에 장애 대기용 Standby가 생성됩니다.
AZ-A Primary ──동기 복제──▶ AZ-B Standby
Primary에 장애가 발생하면 Standby가 새로운 Primary로 전환됩니다.
단, 일반적인 Multi-AZ Standby는 장애 대기용이므로 평상시 조회에 사용할 수 없습니다.
Aurora MySQL 구조
Aurora는 데이터베이스 인스턴스와 스토리지가 분리되어 있습니다.
Writer ─┐
Reader ─┼── Aurora Cluster Storage
Reader ─┘
- Writer: 데이터 읽기·쓰기
- Reader: 읽기 요청 처리
- Cluster Storage: Writer와 Reader가 공유
- Reader: Writer 장애 시 승격 후보
따라서 Reader를 읽기 성능 확장과 장애 대응에 동시에 사용할 수 있습니다.
5. 장애 대응 방식 차이 🔄
RDS for MySQL Multi-AZ
Primary
│
Standby
- Primary 장애 시 Standby로 자동 전환
- Standby는 일반적인 읽기 요청 처리 불가
- 읽기 분산이 필요하면 Read Replica 별도 구성
Aurora MySQL
Writer
├─ Reader 1
└─ Reader 2
- Writer 장애 시 Reader가 새로운 Writer로 승격
- Reader에서 평상시 읽기 요청 처리 가능
- Reader를 여러 가용 영역에 분산 가능
- 최대 15개의 Aurora Reader 구성 가능
AWS 공식 설명에 따르면 Aurora Replica가 있을 경우 장애 발생 시 일반적으로 60초 이내, 흔히 30초 이내에 서비스가 복구됩니다. 실제 시간은 구성과 애플리케이션의 재접속 방식에 따라 달라질 수 있습니다.
6. 접속 방식도 다릅니다 🔌
RDS for MySQL
일반적으로 DB 인스턴스 엔드포인트를 사용합니다.
애플리케이션 → RDS Endpoint → Primary
Read Replica를 추가하면 Replica별 엔드포인트를 애플리케이션이나 프록시에서 관리해야 할 수 있습니다.
Aurora MySQL
Aurora는 용도별 엔드포인트를 제공합니다.
쓰기 요청 → Cluster Endpoint → Writer
읽기 요청 → Reader Endpoint → Reader
Writer가 장애로 변경되더라도 애플리케이션은 Cluster Endpoint를 통해 새로운 Writer에 다시 연결할 수 있습니다.
Reader Endpoint는 여러 Reader에 연결을 분산합니다.
7. 성능과 확장성 차이 🚀
| 쓰기 처리 | Primary 1대 중심 | Writer 1대 중심 |
| 읽기 확장 | Read Replica 추가 | 최대 15개 Reader |
| 읽기 분산 | 별도 설계 필요 | Reader Endpoint 제공 |
| 스토리지 | 설정한 범위 내 확장 | 자동 확장 |
| 자동 용량 조절 | 제한적 | Serverless v2 지원 |
| 글로벌 서비스 | Cross-Region Replica | Global Database |
Aurora도 기본적으로 Writer 한 대가 쓰기 요청을 담당합니다.
따라서 Aurora를 사용한다고 모든 쓰기 요청이 여러 서버로 자동 분산되는 것은 아닙니다.
8. MySQL 버전 차이 ⚠️
RDS for MySQL은 일반 MySQL 버전과 직접 대응합니다.
RDS for MySQL 8.0.45
Aurora는 자체 버전과 호환 MySQL 버전을 함께 확인해야 합니다.
Aurora MySQL 3.12.0
엔진: 8.0.mysql_aurora.3.12.0
호환 버전: MySQL 8.0.44
따라서 보안 정책이나 솔루션에서 정확히 MySQL 8.0.45를 요구한다면 Aurora MySQL로 대체했다고 판단하면 안 됩니다.
이 경우에는 RDS for MySQL 8.0.45를 선택하는 것이 명확합니다.
9. 비용은 어느 쪽이 저렴할까요? 💰
RDS for MySQL 비용
일반적으로 다음 항목에 비용이 발생합니다.
DB 인스턴스
+ 스토리지
+ IOPS 및 처리량
+ 백업 초과 용량
+ 데이터 전송
소규모 Single-AZ 환경에서는 RDS for MySQL이 비교적 저렴합니다.
Multi-AZ를 사용하면 Primary와 Standby 비용을 함께 고려해야 합니다.
Aurora MySQL 비용
일반적으로 다음 항목에 비용이 발생합니다.
Writer 인스턴스
+ Reader 인스턴스
+ 클러스터 스토리지
+ 데이터베이스 I/O
+ 백업 초과 용량
+ 데이터 전송
Aurora Reader를 여러 대 추가하면 성능과 가용성은 좋아지지만 비용도 증가합니다.
따라서 Aurora가 항상 저렴한 것은 아닙니다.
| 개발·테스트 | RDS for MySQL |
| 소규모 서비스 | RDS for MySQL |
| 일정한 소규모 트래픽 | RDS for MySQL |
| 높은 가용성 필요 | Aurora MySQL 검토 |
| 읽기 트래픽이 많음 | Aurora MySQL 검토 |
| 트래픽 변화가 큼 | Aurora Serverless v2 검토 |
| 글로벌 서비스 | Aurora Global Database 검토 |
10. RDS for MySQL이 유리한 경우 ✅
다음 조건이라면 RDS for MySQL이 적합합니다.
- 비용을 절감하고 싶음
- 소규모 또는 중간 규모 서비스
- 기존 MySQL과 최대한 동일한 환경 필요
- 정확한 MySQL 버전이 필요
- 읽기 Replica가 많이 필요하지 않음
- 트래픽이 일정함
- 구조를 단순하게 운영하고 싶음
중소규모 사내 시스템
→ RDS for MySQL
→ 중요 시스템이면 Multi-AZ 구성
11. Aurora MySQL이 유리한 경우 ✅
다음 조건이라면 Aurora MySQL이 적합합니다.
- 높은 가용성이 중요함
- 장애 복구 시간을 줄여야 함
- 읽기 요청이 많음
- Reader를 쉽게 확장해야 함
- 트래픽 변화가 큼
- Serverless v2가 필요함
- 여러 국가 또는 리전에서 서비스함
- 대규모 고객 서비스 운영
대규모 고객 서비스
→ Aurora MySQL
→ Writer 1대
→ 서로 다른 AZ에 Reader 2대 이상
한눈에 보는 최종 비교 📊
| 기본 개념 | AWS 관리형 일반 MySQL | AWS 자체 MySQL 호환 엔진 |
| MySQL 호환성 | 일반 MySQL에 가까움 | 대부분 호환, 일부 차이 존재 |
| 버전 | MySQL 버전 직접 선택 | Aurora 버전으로 선택 |
| 저장 방식 | 인스턴스별 스토리지 | 공유 클러스터 스토리지 |
| 장애조치 | Multi-AZ Standby | Reader가 Writer로 승격 |
| 장애 대기 노드 읽기 | Standby 읽기 불가 | Reader 읽기 가능 |
| 읽기 확장 | Read Replica | 최대 15개 Reader |
| Serverless | Aurora 방식 미지원 | Serverless v2 지원 |
| 초기 비용 | 비교적 낮음 | 상대적으로 높을 수 있음 |
| 추천 환경 | 소규모·일반적인 서비스 | 대규모·고가용성 서비스 |
마무리 🎯
두 서비스의 차이는 다음과 같이 정리할 수 있습니다.
RDS for MySQL은 AWS가 관리해 주는 일반 MySQL에 가깝고, Aurora MySQL은 AWS가 고가용성과 확장성을 강화해 설계한 MySQL 호환 데이터베이스입니다.
선택 기준도 간단합니다.
비용·단순성·정확한 MySQL 버전이 중요
→ RDS for MySQL
고가용성·읽기 확장·빠른 장애복구가 중요
→ Aurora MySQL
특히 MySQL 8.0.45가 반드시 필요한 상황이라면 RDS for MySQL 8.0.45를 선택해야 합니다.
정확한 버전보다는 장애 대응과 읽기 확장이 더 중요하다면 Aurora MySQL을 검토하는 것이 좋습니다.
'[HAN-ENG]' 카테고리의 다른 글
| [🔴AWS 관리형 Redis] Sentinel일까, Redis Cluster일까? (0) | 2026.07.19 |
|---|---|
| [🔴비용 비교] Redis Cluster vs Master/Slave + Sentinel 차이 분석!! (0) | 2026.07.19 |
| [🔴Redis Master/Slave + Redis Sentinel 구성] 초보자도 쉽게 이해하기 !! (0) | 2026.07.19 |
댓글