개인의 기록
  • 소개
  • 프로젝트
  • 글
  • 링크

© 2026 newgirok

← 글 목록

RDS — 관리형 관계형 데이터베이스

2026년 3월 4일
AWSRDS데이터베이스MySQL

AWS RDS(Relational Database Service)는 관계형 데이터베이스의 설치, 패치, 백업, 복제 등 운영 부담을 AWS가 대신 처리해 주는 관리형 데이터베이스 서비스입니다. MySQL, PostgreSQL, MariaDB, Oracle, SQL Server, Aurora를 지원합니다. 개발자는 데이터베이스 엔진 운영 대신 쿼리 최적화와 스키마 설계에 집중할 수 있습니다.

EC2 직접 설치와의 차이

EC2에 MySQL을 직접 설치하면 OS 패치, DB 엔진 업그레이드, 백업 스크립트 작성, 복제 구성 등 모든 작업을 직접 해야 합니다. RDS는 이 작업들을 자동화합니다.

항목EC2 직접 설치RDS
OS 접근가능불가
패치·업그레이드직접AWS 자동
백업직접 구성자동
Multi-AZ 구성직접콘솔에서 활성화
비용EC2 비용만EC2 + 관리 비용

OS에 직접 접근하거나 특수한 DB 설정이 필요한 경우에는 EC2 설치를 선택하지만, 일반적인 운영 환경에서는 RDS가 훨씬 낮은 운영 부담을 제공합니다.

Multi-AZ

Multi-AZ는 메인 DB 인스턴스와 동일한 데이터를 다른 가용 영역(AZ)의 Standby 인스턴스에 동기적으로 복제하는 고가용성 기능입니다.

AZ-A                      AZ-B
+----------------+        +----------------+
|  Primary DB    | -----> |  Standby DB    |
|  (읽기·쓰기)   | sync   |  (대기)        |
+----------------+        +----------------+
        |
   장애 발생 시
        |
+----------------+
|  Standby DB    |  <-- 자동 Failover (약 1~2분)
|  (Primary 승격)|
+----------------+

Primary 인스턴스에 장애가 발생하면 자동으로 Standby가 Primary로 승격됩니다. 애플리케이션은 동일한 엔드포인트를 유지하므로 코드 변경 없이 복구됩니다. Standby는 읽기 요청을 처리하지 않습니다.

가용 영역(Availability Zone, AZ): AWS 리전 내에서 물리적으로 분리된 데이터센터 그룹. AZ 간 장애는 서로 영향을 주지 않습니다.

Read Replica

Read Replica는 Primary DB에서 비동기적으로 복제된 읽기 전용 복사본입니다. 읽기 요청이 많은 서비스에서 Primary DB의 부하를 분산할 때 사용합니다.

애플리케이션
  |-- 쓰기 요청 --> Primary DB
  |-- 읽기 요청 --> Read Replica 1
  |-- 읽기 요청 --> Read Replica 2

MySQL 기준 최대 5개의 Read Replica를 생성할 수 있습니다. 비동기 복제이므로 Primary와 약간의 복제 지연(Replication Lag)이 존재합니다. 필요 시 Read Replica를 독립적인 DB로 승격시켜 Primary로 전환할 수도 있습니다.

복제 지연(Replication Lag): Primary에서 변경된 데이터가 Replica에 반영되기까지 걸리는 시간. 쓰기 부하가 높을수록 지연이 길어집니다.

Snapshot과 Backup

RDS는 두 가지 방식으로 데이터를 보존합니다.

자동 백업(Automated Backup)은 매일 지정된 유지 관리 시간에 전체 스냅샷을 찍고, 트랜잭션 로그를 5분 간격으로 저장합니다. 보존 기간(최대 35일) 안의 임의 시점으로 복원하는 Point-in-Time Recovery가 가능합니다.

수동 스냅샷(Manual Snapshot)은 사용자가 직접 생성하며 명시적으로 삭제하기 전까지 보관됩니다. DB 인스턴스를 삭제해도 스냅샷은 유지되므로 나중에 복원할 수 있습니다.

복원은 기존 인스턴스를 덮어쓰지 않고 항상 새 인스턴스를 생성하는 방식으로 이루어집니다. 복원 후 애플리케이션의 연결 엔드포인트를 새 인스턴스로 변경해야 합니다.

파라미터 그룹과 보안

DB 엔진의 설정값(예: max_connections, character_set)은 파라미터 그룹으로 관리합니다. RDS 인스턴스는 VPC 내에 배치되며, 보안 그룹으로 접근 허용 IP와 포트를 제어합니다. 퍼블릭 접근을 비활성화하면 동일 VPC 내 EC2나 Lambda에서만 접속할 수 있어 보안을 강화할 수 있습니다.

← 이전 글S3 — 객체 스토리지
다음 글 →ELB — 로드 밸런서 (ALB / NLB)