AWS RDS 백업(덤프) 시 알아야 할 것들 — 기초 → 실무 정리
0. 전체 큰 그림 (가장 중요)
AWS RDS 백업은 결국 3가지 요소로 결정된다:
- DB가 어떻게 동작하는가 (DBMS / InnoDB / 트랜잭션)
- 어떻게 데이터를 뽑는가 (dump vs snapshot)
- 네트워크로 어떻게 이동하는가 (VPC / egress 비용)
1. DBMS 이해 (기초)
DBMS란?
Database Management System
→ 데이터를 저장/조회/관리하는 소프트웨어
대표:
- MySQL
- PostgreSQL
RDB (관계형 DB)
데이터를 테이블 구조로 저장
특징:
- SQL 사용
- 트랜잭션 지원
- 데이터 정합성 중요
2. MySQL 구조 이해 (핵심 기초)
entity["software","MySQL","open-source relational database management system"]
MySQL은 2-layer 구조:
1) SQL Layer
- 쿼리 처리
- 실행 계획
2) Storage Engine
- 실제 데이터 저장 방식
대표 엔진:
- InnoDB (표준)
- MyISAM (구형)
3. InnoDB 이해 (덤프 핵심 기반)
InnoDB란?
- MySQL의 기본 storage engine
- 트랜잭션 지원
- row-level lock
핵심 기술:
- MVCC (Multi Version Concurrency Control)
MVCC란?
→ 데이터를 여러 버전으로 유지하는 방식
효과:
- 동시에 읽기/쓰기 가능
- 특정 시점 데이터 조회 가능 (스냅샷 기반)
4. RDS 개념 (운영 환경)
entity["software","Amazon RDS","managed relational database service"]
RDS 특징:
- DB 설치/운영을 AWS가 대신 수행
- VPC 내부 네트워크 기반
- 백업/복구 기능 내장
RDS 접근 구조
- Public: 인터넷 직접 접근 가능
- Private: VPC 내부에서만 접근 가능
Private일 경우:
- EC2 (bastion)
- SSM
- VPN 필요
5. DB 백업 방식 3가지
1) Logical Backup (덤프)
예:
- mysqldump
- pg_dump
특징:
- SQL 형태로 데이터 추출
- 이식성 좋음
- 느림 (대용량 비효율)
2) Physical Backup
- 디스크 그대로 복사
- 빠름
- 복원은 환경 종속적
3) Snapshot (RDS)
- AWS 내부 블록 단위 복제
- 거의 즉시 생성
- AWS 내부 전용
6. mysqldump 핵심 이해
기본 개념
DB 내용을 SQL로 읽어서 파일로 저장
문제점
- DB가 변경되면 데이터 불일치 발생 가능
- 오래 걸림 (100GB 기준 수 시간)
single-transaction 옵션
mysqldump --single-transaction동작 원리
- 시작 시점 기준 스냅샷 생성
- InnoDB MVCC 기반
- 이후 변경은 무시
결과
- 락 거의 없음
- 서비스 계속 동작
- 데이터 일관성 유지
7. 성능 영향
덤프는 결국:
→ DB 전체 테이블을 순차적으로 읽는 작업
영향:
- Disk I/O 증가 (핵심)
- CPU 영향 낮음
- latency 증가 가능
8. InnoDB 여부가 중요한 이유
- InnoDB → MVCC 지원 → 스냅샷 가능
- MyISAM → table lock 발생 가능
결론:
→ single-transaction은 InnoDB에서만 안전
9. AWS Snapshot 특징
- AWS 내부 저장
- 디스크 이미지 기반
- 매우 빠름
하지만:
- 로컬 직접 사용 불가
- 반드시 RDS로 복원해야 함
10. 데이터 전송 비용 구조 (핵심)
핵심 원칙:
AWS 내부 이동은 거의 무료
AWS → 인터넷은 유료 (egress)
특징
- 구간별 단가 감소 (tiered pricing)
- 누진세가 아니라 할인 구조
예 (100GB 다운로드)
- 약 1~2만원 수준 (리전 기준)
11. EC2 / S3 역할
EC2
- DB 접근용 jump server
- dump 실행 가능
S3
- dump 저장 위치
- 다운로드 시 egress 발생
12. 실무 시나리오
✔ 안전한 구조
- RDS (private)
- EC2 or SSM
- dump 생성
- S3 저장
- 필요 시 다운로드
✔ 위험한 구조
- RDS → local direct dump
→ 느림 + 비용 + 실패 위험
13. 핵심 의사결정 기준
dump vs snapshot
| 기준 | dump | snapshot |
|---|---|---|
| 속도 | 느림 | 빠름 |
| 로컬 사용 | 가능 | 불가 |
| 복원 | SQL 기반 | RDS 필요 |
| 목적 | 추출 | 백업 |
14. 전체 핵심 요약
DB 백업은 결국 3가지 이해로 결정된다:
- InnoDB (MVCC) → 스냅샷 가능 여부
- RDS 네트워크 구조 → 접근 가능 여부
- dump vs snapshot → 목적 차이
최종 한 줄
AWS RDS 백업은 “DB 엔진 구조 + 트랜잭션 모델 + 네트워크 비용 구조”를 이해해야 안전하게 설계할 수 있다.