본문으로 건너뛰기
aws검색
데이터베이스와 분석

RDS 와 Aurora, Aurora DSQL (관계형 데이터베이스 고르기와 운영)

RDS 의 엔진과 Multi-AZ 두 방식, Aurora 의 공유 스토리지 구조와 Serverless v2, Global Database, 2025-05 에 GA 된 분산 SQL Aurora DSQL 의 특징과 한계, 업그레이드와 연장 지원, Database Savings Plans 까지 운영 관점으로 정리합니다.

RDSAuroraAurora DSQLMulti-AZServerless v22026-10 기준, 약 7분상태 표시 설명

무엇을 고르나

선택지맞는 경우
RDS for MySQL, PostgreSQL, MariaDB표준 엔진 그대로, 예측 가능한 비용, 작은 규모부터
RDS for Oracle, SQL Server, Db2상용 엔진 라이선스 이전(BYOL 또는 라이선스 포함)
Aurora MySQL, Aurora PostgreSQL더 높은 처리량, 빠른 장애 조치, 최대 15 개 읽기 복제본, 리전 간 Global Database
Aurora Serverless v2부하가 들쭉날쭉하거나 개발 환경. 용량(ACU)이 자동 조절
Aurora DSQL여러 리전에서 동시에 쓰는 액티브-액티브, 서버리스 분산 SQL
DynamoDB키 기반 접근, 무한 확장, 서버리스. DynamoDB 와 ElastiCache 참고

RDS 의 고가용성 두 방식

방식구조장애 조치대기 노드로 읽기
Multi-AZ DB 인스턴스주 인스턴스 + 다른 AZ 의 동기 대기 1 개보통 1~2 분불가
Multi-AZ DB 클러스터쓰기 인스턴스 + 읽을 수 있는 대기 2 개(세 AZ)보통 35 초 안팎가능

Multi-AZ 는 고가용성용이고, 읽기 확장은 읽기 복제본(비동기)으로 합니다. 둘을 헷갈리면 "Multi-AZ 인데 왜 읽기가 안 분산되지?" 하는 질문이 나옵니다.

Aurora 의 구조

Aurora 는 컴퓨트와 스토리지를 나눕니다. 스토리지는 세 AZ 에 걸쳐 6 개 사본을 두고 자동으로 늘어나며, 쓰기 인스턴스와 읽기 복제본이 같은 스토리지를 함께 봅니다. 그래서 복제본 지연이 보통 수십 ms 수준이고, 장애가 나면 복제본 하나가 쓰기 인스턴스로 승격됩니다.

  • 엔드포인트: 클러스터(쓰기), 리더(읽기 분산), 사용자 지정, 인스턴스 엔드포인트. 애플리케이션은 인스턴스 주소가 아니라 클러스터, 리더 엔드포인트를 씁니다.
  • 스토리지 구성: Standard(I/O 요청마다 과금)와 I/O-Optimized(I/O 요금 없음, 인스턴스와 스토리지 단가가 높음). I/O 비용이 전체 Aurora 비용의 25% 를 넘으면 I/O-Optimized 가 대개 유리합니다.
  • 빠른 복제(clone): 쓰기 시 복사 방식이라 큰 DB 도 몇 분 만에 테스트용 사본을 만듭니다.
  • 역추적(Backtrack, MySQL): 실수로 지운 데이터를 클러스터째 과거 시점으로 되돌립니다.

Aurora Serverless v2

용량을 ACU(Aurora Capacity Unit, 약 2 GiB 메모리) 단위로 0.5 씩 자동 조절합니다. 2024-11 부터 최소 0 ACU 까지 내려가 일정 시간 접속이 없으면 자동 일시 정지할 수 있어서, 개발과 스테이징 DB 비용이 크게 줄었습니다. 다시 깨어날 때는 몇 초가 걸리니 운영의 첫 요청 지연에 민감하면 최소값을 0.5 이상으로 둡니다. 프로비저닝 인스턴스와 한 클러스터에 섞어 쓸 수 있습니다.

Global Database

한 리전의 Aurora 클러스터를 다른 리전(최대 여러 개)으로 스토리지 수준에서 복제합니다. 보통 1 초 미만의 복제 지연이고, 리전 장애 때 보조 리전을 승격합니다. 계획된 전환(switchover)은 데이터 손실 없이, 장애 조치(failover)는 약간의 손실 가능성을 감수하고 빠르게 합니다. 서울을 주 리전으로, 도쿄나 오사카를 보조로 두는 구성이 흔합니다.

Aurora DSQL

Aurora DSQL 은 2024-12 에 Preview 로 공개되어 2025-05 에 GA 된 서버리스 분산 SQL 데이터베이스입니다. PostgreSQL 호환이고, 인스턴스나 용량을 정하지 않습니다.

  • 단일 리전 클러스터는 여러 AZ 에 걸쳐 액티브-액티브로 돌고, 다중 리전 클러스터는 두 리전이 모두 읽고 쓰며 세 번째 리전이 감시(witness) 역할을 합니다. 서울은 2025-07 부터 단일, 다중 리전 클러스터 모두 지원하고, 다중 리전 조합에 도쿄, 오사카를 쓸 수 있습니다. 2026-07 기준 다중 리전 클러스터는 16 개 리전에서 지원합니다.
  • 낙관적 동시성 제어를 씁니다. 잠금을 기다리지 않고 커밋 때 충돌을 검사하므로, 같은 행을 동시에 고치면 한쪽 트랜잭션이 실패합니다. 애플리케이션에 재시도 로직이 꼭 있어야 합니다.
  • 트랜잭션 하나가 바꿀 수 있는 행 수, 크기, 시간에 한도가 있고, 외래 키 제약, 트리거 같은 일부 PostgreSQL 기능은 지원하지 않거나 다르게 동작합니다. 이전 전에 Aurora DSQL 사용 설명서의 PostgreSQL 호환성 항목를 꼭 확인합니다.
  • 인증은 비밀번호 대신 IAM 으로 만든 토큰을 씁니다.
aws dsql generate-db-connect-admin-auth-token --hostname abc123.dsql.ap-northeast-2.on.aws --region ap-northeast-2

DSQL 은 "리전 장애에도 쓰기가 멈추면 안 되는" 결제, 재고, 세션 같은 시스템에 맞고, 복잡한 조인과 긴 배치 트랜잭션이 많은 기존 OLTP 를 그대로 옮기는 용도로는 맞지 않을 수 있습니다.

연결 관리

  • Lambda 처럼 연결을 많이 여닫는 클라이언트는 RDS Proxy 로 연결을 풀링합니다. 장애 조치 시간도 줄어듭니다.
  • 비밀번호는 Secrets Manager 로 관리하고 자동 교체(rotation)를 켭니다. RDS 는 마스터 비밀번호를 Secrets Manager 에 맡기는 통합 기능이 있습니다.
  • IAM 데이터베이스 인증을 쓰면 비밀번호 없이 토큰으로 접속할 수 있습니다(초당 새 연결 수 한도에 주의).

업그레이드와 연장 지원

엔진 메이저 버전의 표준 지원이 끝나면 RDS 와 Aurora 는 RDS 연장 지원으로 자동 등록되고 vCPU 시간당 추가 요금이 붙습니다. 연장 지원 요금은 기간이 지날수록 오르니, 표준 지원 종료일을 캘린더에 넣고 미리 올립니다.

  • 블루/그린 배포: 운영 DB 를 복제한 그린 환경에서 메이저 업그레이드와 파라미터 변경을 미리 해 두고, 보통 1 분 안팎의 전환으로 바꿉니다.
  • 업그레이드 전에 스냅숏을 뜨고, 파라미터 그룹을 새 버전용으로 준비합니다.

비용 팁

  • Database Savings Plans(2025-12): Aurora, RDS, DynamoDB, ElastiCache, DocumentDB, Neptune, Keyspaces, Timestream, DMS 에 1 년 시간당 약정으로 할인을 받습니다. 서버리스는 최대 35%, 프로비저닝 인스턴스는 최대 20% 입니다. 엔진과 인스턴스 패밀리를 바꿔도 적용되는 것이 예약 인스턴스와의 차이입니다.
  • 개발 DB 는 Serverless v2 의 0 ACU 나 야간 중지(RDS 는 최대 7 일 중지 후 자동 시작)를 씁니다.
  • 스냅숏 보존 기간과 수동 스냅숏을 정리합니다. 수동 스냅숏은 DB 를 지워도 남습니다.
  • Graviton 인스턴스(db.r8g, db.m7g 등)는 같은 크기의 x86 보다 단가가 낮습니다.

자주 하는 실수

  • 퍼블릭 액세스 가능 옵션을 켬: 데이터 서브넷에 두고 퍼블릭 접근을 끕니다.
  • 기본 파라미터 그룹 사용: 기본 그룹은 고칠 수 없습니다. 처음부터 사용자 지정 그룹을 만듭니다.
  • 스토리지 자동 확장 없이 가득 참: RDS 는 스토리지가 가득 차면 쓰기가 멈춥니다. 자동 확장과 FreeStorageSpace 경보를 겁니다.
  • 장애 조치 후 DNS 캐시: JVM 의 DNS 캐시 TTL 이 길면 옛 쓰기 인스턴스로 계속 붙습니다. TTL 을 짧게(예: 5 초) 둡니다.

이 문서에서