본문으로 건너뛰기
김신건의 로그

[AWS] Amazon RDS (Relational Database Service)

· 수정 · 📖 약 5분 · 1,780자/단어 #aws #cloud #database #rds #relational #mysql #postgresql
AWS RDS, Amazon RDS, RDS, RDS MySQL, RDS PostgreSQL, RDS MariaDB, RDS Oracle, RDS SQL Server, RDS Db2, RDS Proxy, RDS Blue Green, RDS Performance Insights, RDS Extended Support, Amazon 관계형 데이터베이스

정의

Amazon RDS (Relational Database Service) 는 AWS 가 관리하는 관계형 데이터베이스 서비스 입니다. 6개 엔진 (MySQL, PostgreSQL, MariaDB, Oracle, SQL Server, IBM Db2) 을 지원하며, 프로비저닝/패치/백업/HA 를 AWS 가 담당합니다. Aurora 는 기술적으로 별개 서비스 (rds API 를 공유하지만 스토리지/엔진이 다름).

지원 엔진

엔진특성
MySQL5.7 EOL 진행, 8.0, 8.4 (2025+)
PostgreSQL13-17 활성, 12- Extended Support
MariaDB10.6, 10.11, 11.4
OracleStandard Edition 2, Enterprise Edition
SQL ServerExpress, Web, Standard, Enterprise
IBM Db2Standard, Advanced (2023+)

Aurora (별도):

  • Aurora MySQL (5.7, 8.0 호환)
  • Aurora PostgreSQL (13-17)
  • Aurora Serverless v2
  • Aurora DSQL (2024+, distributed serverless)
  • Aurora Global Database

RDS vs Aurora

RDS 표준Aurora
엔진6 개MySQL, PostgreSQL 호환
스토리지EBS (인스턴스에 붙음)Shared cluster storage (S3 backed)
성능표준3-5배 (MySQL 대비)
HAMulti-AZ standby자체 6-way replica × 3 AZ
Read replica최대 5 (엔진 별)최대 15
Failover60-120s< 30s
비용낮음높음 (성능/기능 대가)
Storage 자동 확장128 TiB (자동)128 TiB (자동)
ServerlessX (RDS Custom 예외)Aurora Serverless v2

결정:

  • 소규모 / 단순 앱 -> RDS 표준
  • 고가용성 + 확장성 + PostgreSQL/MySQL -> Aurora
  • Oracle / SQL Server / Db2 -> RDS (Aurora 미지원)

인스턴스 클래스

  • db.t4g, db.t3: Burstable, dev/test
  • db.m5, db.m6i, db.m7g: General purpose
  • db.r5, db.r6i, db.r7g, db.x2g: Memory optimized
  • db.z1d: High single-threaded (Oracle)

Graviton (t4g, m6g, r6g, r7g): 20-30% 저비용, 대부분 워크로드 호환.

스토리지

RDS 는 볼륨 타입 + 용량 + IOPS 를 사용자가 선택 (엔진 밖 스토리지는 EBS). Aurora 는 다른 세계 (자체 분산 스토리지).

RDS 스토리지 타입 4종

특성gp2 (이전)gp3 (권장)io1 (이전)io2 Block Express (권장)
계열범용 SSD범용 SSDProvisioned IOPSProvisioned IOPS
크기20 GiB - 64 TiB20 GiB - 64 TiB100 GiB - 64 TiB100 GiB - 64 TiB
IOPS 결정용량 종속 (3 IOPS/GiB)독립 프로비저닝독립 프로비저닝독립 프로비저닝
기본 성능3 IOPS/GiB (최소 100, 버스트 3,000)기본 3,000 IOPS / 125 MiB/s없음 (전량 프로비저닝)없음 (전량 프로비저닝)
최대 IOPS (MySQL/PG)64,000 (용량 클 때)64,000256,000256,000
최대 처리량1,000 MB/s4,000 MB/s4,000 MB/s4,000 MB/s
지연한 자릿수 ms한 자릿수 ms한 자릿수 ms1 ms 미만 (99.9%)
대표 용도개발/테스트, 소규모대부분 워크로드 (기본)고IOPS OLTP초고성능 OLTP (SAP HANA)

볼륨 타입 선택 흐름

랜덤 I/O (DB, 부팅) 인가?
├ 초고성능 (< 1ms, 256K IOPS) 필수 → io2 Block Express
├ 일반 IOPS 필요 → gp3 (기본 3,000 IOPS 로 충분한 경우)
└ 매우 저부하 개발/테스트 → gp2 (또는 gp3)

* magnetic 는 2026-04-30 폐기 → 항상 오답

gp2 vs gp3 (실무 감각)

  • gp3 는 gp2 대비 저렴 + 유연. 신규는 gp3 가 기본
  • gp2 는 IOPS 를 올리려면 불필요하게 용량 키워야 함 (3 IOPS/GiB)
  • gp3 는 용량과 무관하게 IOPS/처리량 독립 조정

RDS 스토리지 비용 감각 (us-east-1, 2026)

타입대략 GB-월 단가IOPS 별도 과금
RDS gp2~$0.115없음 (용량 포함)
RDS gp3~$0.1153,000 초과 IOPS 만 별도
RDS io2~$0.125프로비저닝 IOPS 전량 별도

IMPORTANT

RDS gp3 단가 ≠ EC2 EBS gp3 단가 (RDS 가 더 비쌈). 별개 서비스로 요금표 별도.

Storage Autoscaling: 자동 확장 권장. 초기 크기 + 상한 지정.

프로비저닝 IOPS 제약 (Nitro 기준)

  • IOPS : 용량 (GiB) 비율 = 0.5 - 1,000 -> 256,000 IOPS 필요 시 최소 256 GiB
  • gp3 의 처리량 : IOPS 최대 비율 = 0.25
  • 볼륨 최대 IOPS 를 잡아도 인스턴스 클래스 EBS 대역폭 한계 가 더 낮으면 그만큼만

Aurora 스토리지 (완전 다른 패러다임)

Aurora 는 EBS 를 쓰지 않음. AWS 전용 분산 공유 스토리지.

아키텍처

  • 데이터를 3 AZ × 6 사본 자동 복제
  • 10 GB 단위 자동 확장 (최대 128 TiB), 사용자 프로비저닝 불필요
  • 컴퓨트 (DB 인스턴스) 와 스토리지가 분리
  • 쓰기 4/6, 읽기 3/6 쿼럼으로 손상 자동 복구

Aurora 에는 “gp3 냐 io2 냐” 같은 볼륨 타입 선택이 없다. 스토리지 성능은 아키텍처가 자동 제공.

Aurora Standard vs I/O-Optimized (비용 구성)

구분Aurora StandardAurora I/O-Optimized
과금인스턴스 + 스토리지 + I/O 요청당인스턴스 + 스토리지 (I/O 요청 과금 없음)
스토리지/인스턴스 단가낮음높음
I/O 비용요청 100만 건당0
예측 가능성변동완전 예측 가능
손익분기I/O 비용이 총액의 25% 미만 시 유리I/O 비용이 총액의 25% 이상 시 유리 (최대 40% 절감)
전환Standard -> IO-Optimized: 30일 1회IO-Optimized -> Standard: 언제든

IMPORTANT

I/O 비용이 전체 Aurora 비용의 25% 이상 -> I/O-Optimized. 미만이면 Standard.

Multi-AZ Deployments

자세한 것은 RDS Multi-AZ 참조.

Multi-AZ Instance (전통)

  • Primary + Standby (다른 AZ)
  • 동기 replication
  • Standby 는 접근 불가 (백업/failover 용)
  • Failover: 60-120s
  • Read scale: X (읽기도 primary 만)

Multi-AZ DB Cluster (Cluster mode)

  • Primary + 2 Reader (3 AZ)
  • 반동기 (semi-sync)
  • Reader 에 접근 가능 (read scale)
  • Failover: 35s 이하
  • MySQL 8.0.28+, PostgreSQL 13+ 지원

Read Replica

  • 비동기 replication
  • 최대 5 개 (MySQL/PostgreSQL/MariaDB), 15 개 (Aurora)
  • Cross-region 가능
  • 승격 가능 (primary 로)
  • 요금: 인스턴스 시간 + inter-AZ 데이터 전송

백업 & 복구

Automated Backup

  • 매일 스냅샷 + transaction log 저장
  • Retention: 1-35일
  • Backup window: 자동 또는 수동 지정
  • PITR (Point-in-time Recovery): 초 단위 (5분 기본, log 발행 간격)

Manual Snapshot

  • 사용자 지정
  • 무제한 유지
  • Cross-region copy 가능
  • Cross-account share 가능

Snapshot Export to S3

Parquet 형식으로 S3 export -> Athena/Redshift Spectrum 분석.

Blue/Green Deployments (2023+)

Zero-downtime engine upgrade / schema change.

Blue (production)  ────┐
                        ├── promote green
Green (staging copy) ──┘
  • Green 은 blue 의 완전 복제 + 원하는 변경 (버전 업, 스키마)
  • 프로덕션 트래픽은 계속 blue
  • Green 검증 후 switchover 실행 (< 1분)
  • 두 endpoint 이름 교체
  • 자동 replica lag 검증, safety check

MySQL / PostgreSQL / MariaDB 지원. Oracle/SQL Server 는 별도 방식.

RDS Proxy

Connection pooling + failover 가속 + IAM/Secrets Manager 통합.

해결하는 문제:

  • Lambda / 서버리스가 요청마다 새 connection 열어 DB 소진
  • Failover 시 connection reset 느림
App / Lambda ── RDS Proxy ── RDS instance
  • Proxy 가 물리 연결 pool 유지
  • App connect 는 논리 연결 (fast open/close)
  • Failover 감지 시 자동 재라우팅
  • IAM 인증, Secrets Manager 통합
  • Endpoint 별 read/write 분리

주의: TLS 필수, 요금 (시간당 + 데이터).

Performance Insights

Query-level 성능 분석. DB Load 를 시각화 (초당 avg active sessions).

  • Top SQL, Top waits, Top hosts
  • Retention: 7일 무료, 최대 2년 유료
  • SQL statistics: query 별 실행 통계

Enhanced Monitoring 은 OS 레벨 (CPU, memory, disk IOPS).

IAM Database Authentication

패스워드 대신 IAM 토큰:

# MySQL/PostgreSQL
TOKEN=$(aws rds generate-db-auth-token \
  --hostname mydb.abcd.us-east-1.rds.amazonaws.com \
  --port 3306 \
  --region us-east-1 \
  --username db_user)

mysql -h mydb.abcd.us-east-1.rds.amazonaws.com \
  -P 3306 --user=db_user --password=$TOKEN \
  --enable-cleartext-plugin
  • RDS Proxy 함께 쓰면 Secrets Manager 로 완전 secretless
  • 토큰 15분 유효
  • Connection rate limit: IAM auth 는 무겁게 인증. 초당 200 초과는 문제

Extended Support (2024~)

EOL 이후에도 유료 지속 지원. 예:

  • MySQL 5.7 EOL 이후 3년 Extended
  • PostgreSQL 12 EOL 이후 3년

요금: engine hour 요금이 2-3배. 마이그레이션 유도가 목적.

RDS Custom

Oracle / SQL Server 를 위한 hybrid. OS + DB engine 접근 가능 (SSH 등). 관리 자동화 일부 + 사용자 통제 일부. Legacy 앱 이관에 유용.

보안

  • VPC: 반드시 (public 노출 옵션 있지만 강력 비권장)
  • Encryption: KMS at rest (기본 활성 권장)
  • TLS in transit: 강제 가능 (rds.force_ssl 등)
  • KMS 키 rotation
  • IAM auth (위 참조)
  • Secrets Manager 통합: 자동 rotation
  • Audit logging: CloudWatch Logs
  • Deletion Protection: 실수 삭제 방지

파라미터 그룹

DB 파라미터 관리. Cluster 나 인스턴스에 attach.

# 예: MySQL innodb_buffer_pool_size 조정
aws rds modify-db-parameter-group \
  --db-parameter-group-name my-mysql-params \
  --parameters "ParameterName=innodb_buffer_pool_size,ParameterValue=1073741824,ApplyMethod=pending-reboot"
  • Default parameter group: 수정 불가
  • Custom parameter group: 사용자 정의

Option Group (Oracle, SQL Server)

라이선스, 옵션 (SQL Server Audit, Oracle APEX 등) 관리.

Maintenance Window

주간 30분. AWS 가 minor version upgrade, patch 적용.

모니터링 지표

CloudWatch:

  • CPUUtilization, FreeableMemory, FreeStorageSpace
  • DatabaseConnections, ReadIOPS, WriteIOPS
  • ReadLatency, WriteLatency
  • ReplicaLag (read replica)
  • BurstBalance (t 시리즈)

Alert 필수: FreeStorageSpace, CPU 지속 90%+, ReplicaLag.

Common Anti-Pattern

1. Public 노출

PubliclyAccessible = true + Security Group 0.0.0.0/0. 최악.

2. 백업 비활성화

backup-retention-period 0. 실수 시 복구 불가.

3. Multi-AZ 안 함

프로덕션에서 반드시 활성. Failover 없이 AZ 장애 = downtime.

4. Connection 관리 안 함

DB 최대 연결 수 관리 없이 client 방치 -> too many connections. RDS Proxy 또는 client-side pool (pgbouncer, HikariCP).

5. Storage 급증 방치

Storage autoscaling + FreeStorageSpace 알람. 소진 시 DB stop.

함정

WARNING

Multi-AZ 표준 인스턴스는 read replica 아님. Standby 접근 불가. Read scale 하려면 별도 read replica 또는 Multi-AZ Cluster mode.

CAUTION

Storage 축소 불가. 100 -> 50 GB 는 새 DB 로 복원해야. 초기 크기 신중.

WARNING

Reserved Instance 잘못 사면 낭비. On-demand 로 사용 패턴 검증 후 RI.

IMPORTANT

Blue/Green switchover 는 원본 blue 유지. 몇 시간 안 삭제해 롤백 가능. 하지만 요금 두 배.

CAUTION

Snapshot restore 는 새 endpoint. DNS 변경 필요. Route53 alias 로 완화.

WARNING

Extended Support 요금 폭탄. EOL 근접 엔진은 미리 업그레이드.

RDS vs Aurora 결정 트리

  • Oracle / SQL Server / Db2 필요 -> RDS
  • MySQL / PostgreSQL, small workload, 비용 우선 -> RDS
  • 고성능 / 고가용성 / 15+ replica / global -> Aurora
  • Serverless / spiky workload -> Aurora Serverless v2
  • Multi-region low-latency / DR -> Aurora Global Database
  • Truly serverless multi-region strong consistency -> Aurora DSQL (2024+ preview/GA)

RDS vs 다른 관리형 DB

DB강점언제
RDS6 엔진, 성숙표준 관계형
Aurora성능, 확장대규모 MySQL/PG
DynamoDBKey-value, single-digit msNoSQL, 서버리스
**[[aws-neptuneNeptune]]**그래프
**[[aws-documentdbDocumentDB]]**문서
**[[aws-redshiftRedshift]]**분석

관련 위키

이 글의 용어 (12개)
[AWS] Amazon DocumentDBcloud
정의 Amazon DocumentDB 는 AWS 가 관리하는 문서 지향 (document-oriented) NoSQL 데이터베이스 로, MongoDB API 호환 을 제공합니다.…
[AWS] Amazon Neptunecloud
정의 Amazon Neptune 은 AWS 가 관리하는 그래프 데이터베이스 서비스입니다. 두 데이터 모델과 세 쿼리 언어를 모두 지원합니다. - Property Graph 모델:…
[AWS] Amazon Redshiftcloud
정의 Amazon Redshift 는 AWS 가 관리하는 페타바이트 규모 컬럼형 데이터 웨어하우스 입니다. 2012년 PostgreSQL 8.0.2 를 기반으로 시작해 MPP (…
[AWS] CloudWatch: 메트릭, 로그, 알람cloud
정의 CloudWatch = AWS 의 모니터링 + 로그 + 알람 통합 서비스. 메트릭 수집, 로그 집계, 대시보드, 알람, 이상 감지를 하나의 서비스에서 제공. 사용 상황 | …
[AWS] IAM: User, Role, Policy, STScloud
정의 IAM (Identity and Access Management) = AWS 의 권한 관리 전부. User, Group, Role, Policy 로 구성. "누가 어떤 리소…
[AWS] KMS: 암호화 키 관리, envelope encryptioncloud
정의 KMS (Key Management Service) = 암호화 키 중앙 관리. envelope encryption + IAM 통합 + 감사 로그. 키 종류 | 종류 | 의미…
[AWS] Lambda: 서버리스 함수, 트리거, 동시성cloud
정의 AWS Lambda = 서버리스 함수 실행. 이벤트 트리거 → 함수 실행 → 결과 / 비동기 처리. 서버 관리 0. 사용 상황 | 상황 | Lambda 적합성 | |---|…
[AWS] RDS Multi-AZ + Read Replicacloud
정의 RDS (Relational Database Service) = AWS 의 managed RDB. MySQL, PostgreSQL, MariaDB, Oracle, SQL S…
[AWS] S3: object storage, storage classes, lifecyclecloud
정의 S3 = AWS 의 object storage. bucket + key + object. 11 9's durability (99.999999999%), 무한 확장. 2026…
[AWS] Secrets Manager + Parameter Storecloud
정의 AWS Secrets Manager = 회전이 필요한 비밀 (DB 패스워드, API key) 을 안전하게 저장/관리하는 서비스. Lambda 기반 자동 회전과 암호화 내장.…
[AWS] VPC: Virtual Private Cloudcloud
정의 VPC (Virtual Private Cloud) = AWS 안의 논리적 격리 네트워크. CIDR 정의 + subnet 분할 + 라우팅. AWS 리소스를 격리된 네트워크에 …
[DB Internals] MVCC: Multi-Version Concurrency Controldatabase-internals
정의 MVCC (Multi-Versioning Concurrency Control) 는 트랜잭션 간 격리를 여러 버전의 row 로 구현. 동시 read / write 가 락 없이…

💬 댓글

사이트 검색 / 명령어

검색

스크롤 = 확대/축소 · 드래그 = 이동 · 0 = 원래 크기 · ESC = 닫기