[AWS][SAA] RDS, Aurora & ElastiCache

Ann Jongmin·2026년 5월 11일

AWS SAA

목록 보기
6/10

Udemy - Stephane Maarek AWS SAA 강의를 듣고 메모 목적으로 남김

1. Amazon RDS 개요 및 특징

  • 개념: 관계형 데이터베이스(SQL)를 위한 완전 관리형 서비스 (Relational Database Service)임.
  • 지원 엔진: PostgreSQL, MySQL, MariaDB, Oracle, Microsoft SQL Server, IBM DB2, Aurora.
  • 장점 (EC2에 직접 구축하는 것과 비교):
    • 자동 프로비저닝 및 OS 패치 적용.
    • 자동 백업 및 특정 시점 복원(Point-in-Time Restore) 지원.
    • 성능 모니터링 대시보드 제공.
    • 읽기 전용 복제본(Read Replicas)을 통한 읽기 성능 향상.
    • 다중 AZ(Multi-AZ) 설정을 통한 재해 복구(DR) 대비.
    • 유지 관리 기간(Maintenance Window)을 통한 업그레이드.
    • EBS 기반 스토리지 사용 및 스토리지 자동 확장(Auto Scaling) 지원.
    • 단, 기반 EC2 인스턴스에 SSH로 직접 접속하는 것은 불가능함 (RDS Custom 제외).

2. RDS 확장성 및 고가용성

  • 읽기 전용 복제본 (Read Replicas):
    • 읽기 작업의 확장성(Scalability)을 위해 사용됨.
    • 최대 15개까지 생성 가능하며, 동일 AZ, 다른 AZ, 다른 리전(Cross-Region)에 생성할 수 있음.
    • 비동기식(ASYNC) 복제를 사용하므로 약간의 복제 지연이 발생할 수 있음(결과적 일관성).
    • INSERT, UPDATE, DELETE가 아닌 SELECT(읽기) 쿼리에만 사용함 (보고서, 분석 용도 등).
    • 동일 리전 내의 복제본으로의 데이터 전송은 무료지만, 다른 리전으로의 전송에는 네트워크 비용이 발생함.
  • 다중 AZ (Multi-AZ):
    • 성능 향상이 아닌 재해 복구(Disaster Recovery) 및 고가용성을 위한 기능임.
    • 마스터 DB의 데이터를 대기(Standby) DB로 동기식(SYNC) 복제함.
    • AZ 장애, 인스턴스 또는 스토리지 장애 발생 시 애플리케이션 코드 변경 없이 단일 DNS 이름을 통해 자동으로 장애 조치(Failover)가 이루어짐.
    • 다운타임 없이(Zero downtime) 단일 AZ에서 다중 AZ로 변경 가능함.

3. Amazon Aurora

  • 개념: AWS가 클라우드에 맞게 최적화하여 독자적으로 개발한 관계형 데이터베이스임.
  • 특징:
    • PostgreSQL 및 MySQL과 완벽하게 호환됨.
    • 성능: RDS MySQL 대비 5배, RDS PostgreSQL 대비 3배 이상의 성능 제공.
    • 스토리지 용량이 10GB 단위로 최대 128TB(또는 256TB)까지 자동 확장됨.
    • 최대 15개의 읽기 전용 복제본을 가질 수 있으며, 복제 지연 시간이 10ms 미만으로 매우 짧음.
  • 고가용성 (HA) 및 쓰기/읽기 확장:
    • 3개의 가용 영역(AZ)에 걸쳐 데이터의 복사본을 6개 유지함. (쓰기 작업에 4개, 읽기 작업에 3개 필요).
    • 하나의 마스터 인스턴스가 쓰기를 담당하며, 장애 발생 시 30초 이내에 자동으로 다른 읽기 복제본이 마스터로 승격됨.
    • 사용자 지정 엔드포인트(Custom Endpoints): 특정 읽기 복제본(예: 분석 쿼리용 고사양 인스턴스)들을 묶어 별도의 엔드포인트로 사용할 수 있음.
  • 고급 기능:
    • Aurora Serverless: 워크로드 예측이 어렵거나 간헐적인 경우 적합함. 용량 계획 없이 자동으로 리소스를 확장 및 축소하며 초 단위로 과금됨.
    • Aurora Global Database: 1개의 기본 리전과 최대 10개의 보조 리전을 구성하여 지연 시간을 줄이고 글로벌 재해 복구를 구현함 (리전 간 복제 지연 1초 미만).
    • 데이터베이스 복제 (Database Cloning): 스냅샷 복원보다 훨씬 빠르고 저렴하게(Copy-on-write 방식) 프로덕션 DB와 동일한 스테이징/테스트용 데이터베이스를 생성할 수 있음.
    • Aurora Machine Learning: SQL 쿼리 내에서 SageMaker(머신러닝 모델) 및 Comprehend(감정 분석)를 직접 호출할 수 있음.

4. 데이터베이스 백업 및 보안

  • RDS / Aurora 백업:
    • 자동 백업: 매일 지정된 유지 관리 시간(Backup Window)에 전체 백업 및 트랜잭션 로그 백업을 수행하여 원하는 특정 시점(Point-in-time)으로 복원 가능하게 함 (보존 기간 1~35일).
    • 수동 스냅샷: 사용자가 명시적으로 삭제할 때까지 영구 보존 가능함. 중지된 RDS DB의 스토리지 비용을 아끼려면 스냅샷을 찍고 기존 DB를 삭제한 후 필요할 때 복원하는 것이 유리함.
  • 보안 (Security):
    • 저장 데이터 암호화 (At-rest): KMS 키를 사용하여 암호화함. 데이터베이스 생성 시에만 활성화할 수 있음. (암호화되지 않은 DB를 암호화하려면 스냅샷 생성 -> 암호화 옵션을 켜서 스냅샷 복사 -> 복원 과정을 거쳐야 함).
    • 전송 중 암호화 (In-flight): 기본적으로 TLS(SSL) 인증서를 사용하여 보호함.
    • IAM 데이터베이스 인증: 비밀번호 없이 IAM 역할(Role)과 정책을 활용하여 데이터베이스에 인증할 수 있음.

5. Amazon RDS 프록시 (RDS Proxy)

  • 개념: 완전 관리형 데이터베이스 프록시 서비스임.
  • 역할 및 장점:
    • 데이터베이스 연결을 풀링(Pooling)하고 공유하여 DB의 CPU 및 메모리 부담을 덜어줌.
    • 장애 조치(Failover) 시간을 최대 66%까지 단축하여 가용성을 높임.
    • 연결 관리가 중요한 Serverless 애플리케이션(특히 AWS Lambda)에서 RDS 접속 시 필수적으로 사용됨.
    • 퍼블릭 접근이 차단되어 VPC 내부에서만 접근 가능하며, Secrets Manager를 연동하여 자격 증명 관리를 강화할 수 있음.

6. Amazon ElastiCache

  • 개념: 관계형 데이터베이스의 읽기 부하를 분산하고 애플리케이션의 상태(세션 등)를 비저장(Stateless)으로 만들기 위해 사용하는 인메모리(In-Memory) 캐시 서비스. (RDS의 캐시 버전).
  • 특징:
    • 아주 짧은 대기 시간(Sub-millisecond latency)과 극도로 높은 성능 제공.
    • 캐시 로직을 적용하기 위해서는 애플리케이션 코드의 수정이 반드시 필요함.
  • 주요 용도 및 패턴:
    • DB 캐싱: 자주 읽는 데이터를 ElastiCache에 저장하여 RDS 부하 감소 (Lazy Loading, Write Through).
    • 사용자 세션 스토어: 여러 인스턴스에 걸친 웹사이트의 사용자 로그인 세션(상태) 정보 저장.
  • 엔진 비교:
    • Redis: 다중 AZ, 자동 장애 조치, 읽기 전용 복제본 지원(고가용성 지원). 데이터 백업/복원 및 디스크 영구 저장 기능 있음. 정렬된 세트(Sorted Sets)를 제공하여 실시간 게임 리더보드 등에 흔히 사용됨.
    • Memcached: 데이터 파티셔닝(Sharding)을 위한 다중 노드 지원. 다중 스레드 아키텍처. 고가용성이나 데이터 영구 보존, 백업 기능이 없음.
  • 캐시 보안:
    • Redis는 IAM 인증, Redis AUTH(비밀번호/토큰), 전송 중 SSL 암호화를 지원함. Memcached는 SASL 기반 인증을 지원함.
profile
AI Study

0개의 댓글