1. Amazon RDS (Relational Database Service)
1) RDS란 무엇인가?
- 개념: AWS 클라우드 위에서 관계형 데이터베이스(RDBMS)를 쉽게 만들고, 운영하고, 확장할 수 있게 해주는 AWS 완전 관리형 서비스입니다.
- 지원 엔진 (6가지): PostgreSQL, MySQL, MariaDB, Oracle, Microsoft SQL Server, 그리고 AWS 고유의 Aurora를 지원합니다.
- 핵심 단점 (주의): 보안 및 관리형 서비스의 특성상, 사용자가 기저 인프라(EC2)에 직접 SSH로 접속할 수 없습니다. (단, 아래 설명할 RDS Custom은 예외)
2) EC2에 직접 DB를 설치하는 것 vs RDS 사용의 차이
- EC2에 직접 설치하면 운영체제 패치, 백업, 장애 복구 등을 모두 직접 해야 하지만, RDS를 사용하면 AWS가 다 알아서 해줍니다.
- RDS의 장점:
- 프로비저닝 및 기본 OS 패치 자동화
- 지속적인 백업 및 특정 시점(Time-stamp)으로의 복원 가능
- 읽기 성능 향상을 위한 '읽기 전용 복제본' 제공
- 재해 복구를 위한 '다중 AZ' 설정 지원
- 유지 관리 기간을 설정해 자동 업그레이드 가능
3) RDS 스토리지 자동 확장 (Storage Auto Scaling)
- 개념: 데이터가 계속 쌓여서 저장 공간이 꽉 찰 것 같으면, RDS가 알아서 스토리지 용량을 늘려주는 기능입니다.
- 발동 조건 (아래 3가지를 모두 만족할 때 자동 확장):
- 남은 여유 공간이 전체 스토리지의 10% 미만일 때
- 이 부족한 상태가 5분 이상 지속될 때
- 마지막 스토리지 확장 이후 6시간이 지났을 때
- 활용: 데이터가 얼마나 빨리 쌓일지 예측하기 힘든 애플리케이션에 매우 유용합니다.
4) 읽기 전용 복제본 (Read Replicas) - 성능(확장성) 목적
- 개념: 메인 DB(쓰기+읽기)의 부하를 줄이기 위해, 데이터를 똑같이 복사해둔 '읽기 전용(SELECT)' DB를 여러 개 만드는 것입니다.
- 특징:
- 최대 15개까지 생성 가능하며, 다른 가용 영역(AZ)이나 아예 다른 리전(Region)에도 만들 수 있습니다.
- 비동기식 복제: 메인 DB에 데이터가 쓰이면 약간의 시차를 두고 복제본에 반영됩니다.
- 네트워크 비용 절감 팁: 동일 리전 내의 복제본 간 데이터 이동은 네트워크 비용이 무료입니다. (원래 AWS는 AZ가 다르면 네트워크 비용을 받음)
RDS Read Replicas 아키텍처 다이어그램 (메인 DB에서 복제본으로 화살표가 가는 그림)

5) 다중 AZ (Multi-AZ) - 재해 복구(DR) 목적
- 개념: 내가 사용하는 메인 DB와 똑같은 '스탠바이(대기)' DB를 다른 가용 영역(AZ)에 숨겨두는 기능입니다. 평소에는 스탠바이 DB에 접근할 수 없습니다.
- 특징:
- 동기식 복제: 메인 DB에 데이터가 쓰이면, 스탠바이 DB에도 동시에 100% 똑같이 기록됩니다.
- 자동 장애 조치 (Failover): 메인 DB가 있는 데이터 센터에 정전이 나거나 장애가 생기면, AWS가 애플리케이션의 연결을 스탠바이 DB로 자동 전환해 줍니다. (하나의 DNS 이름을 사용하므로 앱 코드를 수정할 필요가 없음)
RDS Multi-AZ 동작 원리 (Primary 인스턴스 장애 시 Standby 인스턴스로 Failover 되는 과정)
