본문 바로가기
[HAN-ENG]

[AWS] RDS for MySQL과 Aurora MySQL 차이 쉽게 알아보기 🐬

by METAVERSE STORY 2026. 7. 19.
반응형

 

 

AWS에서 MySQL 데이터베이스를 만들려고 하면 RDS for MySQLAurora 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. 성능과 확장성 차이 🚀

구분RDS for MySQLAurora MySQL
쓰기 처리 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대 이상
 

한눈에 보는 최종 비교 📊

구분RDS for MySQLAurora MySQL
기본 개념 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을 검토하는 것이 좋습니다.

 

 

반응형

댓글