Skip to main content

Invalid Date

AWS Database

이 문서에서는 AWS Solutions Architect Associate 시험에서 자주 등장하는 데이터베이스 서비스들을 정리합니다. 다음 용어와 개념들에 대해 간략히 알아보겠습니다.

  • RDS (관계형 DB)
  • Aurora (고성능 관계형 DB)
  • DynamoDB (NoSQL)
  • ElastiCache (In-memory Caching)
  • Redshift (Data Warehouse)
  • DocumentDB, Neptune, Timestream, QLDB 등

RDS (Relational Database Service)

AWS에서 제공하는 관리형 관계형 데이터베이스(RDBMS) 서비스

  • 지원 엔진: MySQL, PostgreSQL, MariaDB, Oracle, SQL Server
  • 특징: 전통적인 RDBMS 기능(SQL, 트랜잭션 등)을 그대로 사용하면서, 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같은 운영 작업을 AWS가 관리합니다.

RDS 스토리지 유형

유형설명주요 사용 사례
범용 SSD (gp2, gp3)비용 효율적이며 일반적인 워크로드에 적합개발/테스트 환경, 중소규모 웹 서비스
프로비저닝된 IOPS SSD (io1, io2)고성능, 낮은 지연 시간, 일관된 처리량이 필요한 경우대규모 트랜잭션 처리, 금융 시스템

주요 기능 및 아키텍처 패턴

  1. 다중 AZ 배포 (Multi-AZ Deployment)

    • 목적: 고가용성 (High Availability) 및 장애 조치(Failover).
    • 동작: 기본 DB 장애 시 대기(Standby) DB로 자동 전환(Failover).
    • 특징: 동기식 복제가 이루어지며, 대기 DB는 읽기/쓰기 용도로 사용할 수 없음(단순 대기). 성능 향상 목적 아님.
  2. 읽기 전용 복제본 (Read Replica)

    • 목적: 읽기 성능 향상 (Scalability) 및 부하 분산.
    • 동작: 기본 DB의 데이터를 비동기식으로 복제.
    • 특징: 애플리케이션에서 읽기 트래픽을 이 복제본으로 분산시켜야 함. 필요 시 승격(Promote)하여 기본 DB로 사용 가능.
  3. 리전 간 읽기 전용 복제본 (Cross-Region Read Replica)

    • 목적: 재해 복구 (DR) 및 글로벌 서비스의 읽기 지연 시간 단축.
  4. RDS Proxy

    • 애플리케이션과 DB 사이에서 **커넥션 풀(Connection Pool)**을 관리하여 DB 부하를 줄이고, 장애 조치 시간을 단축(Failover 시간 감소)하는 서비스입니다. Lambda와 함께 자주 사용됩니다.

Aurora

MySQL 및 PostgreSQL과 호환되는 AWS 클라우드 네이티브 고성능 RDBMS

  • 특징: RDS보다 성능이 3~5배 빠름, 스토리지가 10GB에서 128TB까지 자동으로 확장됨.
  • 고가용성: 기본적으로 3개의 AZ에 6개의 데이터 사본을 저장합니다.

주요 기능

  • Aurora Serverless: 트래픽에 따라 DB 용량을 자동으로 조절(Auto Scaling). 비정기적인 워크로드에 적합.
  • Global Database: 하나의 리전에서 쓰기를 하고, 전 세계 여러 리전에서 낮은 지연 시간으로 읽기 가능 (DR 용도 포함).
  • Auto Scaling: 읽기 트래픽이 증가하면 자동으로 읽기 전용 복제본(Reader)을 추가합니다.

DynamoDB

서버리스 Key-Value NoSQL 데이터베이스

  • 특징: 밀리초(ms) 단위의 한 자릿수 지연 시간, 무제한 확장성, 스키마리스(Schema-less) 구조.
  • 사용 사례: 모바일 백엔드, 게임 상태 정보, 쇼핑 장바구니, IoT 데이터 등 고성능/대규모 트래픽 처리가 필요한 경우.

주요 기능

  • DynamoDB Streams: 테이블의 데이터 변경 사항(이벤트)을 실시간으로 캡처하여 Lambda 등으로 전달.
  • DAX (DynamoDB Accelerator): DynamoDB 전용 인메모리 캐시. 응답 시간을 마이크로초(µs) 단위로 단축하여 읽기 성능을 극대화할 때 사용.
  • Global Tables: 전 세계 여러 리전에 멀티 마스터(Multi-Master) 데이터베이스를 배포하여 글로벌 서비스 구축.

ElastiCache

완전 관리형 인메모리 데이터 저장소(캐시) 서비스 (Redis & Memcached)

  • 목적: 데이터베이스 앞단에서 읽기 성능을 향상시키고, DB 부하를 감소시킴.
  • 사용 사례: 세션 저장소, 리더보드, 실시간 분석, 캐싱.
  • Redis vs Memcached:
    • Redis: 복잡한 데이터 구조(Sorted Set 등), 지속성(Backup), 고가용성(Multi-AZ) 필요 시.
    • Memcached: 단순한 키-값 캐싱, 멀티 스레드 성능이 중요할 때.

Redshift

페타바이트급 정형 데이터를 분석하기 위한 완전 관리형 데이터 웨어하우스(Data Warehouse)

  • 특징: 컬럼 기반 스토리지(OLAP), SQL을 사용하여 대규모 데이터 분석, S3 데이터 레이크와 통합(Redshift Spectrum).

그 외 데이터베이스 서비스

  • DocumentDB: MongoDB 호환 문서형 DB. JSON 데이터 처리에 적합.
  • Neptune: 그래프 데이터베이스. 소셜 네트워크, 추천 엔진에 적합.
  • Timestream: 시계열 데이터베이스. IoT 센서 데이터, 로그 데이터 처리에 적합.
  • QLDB: 원장 데이터베이스. 데이터의 무결성과 변경 이력 검증이 필요한 금융/공급망 시스템에 적합.

DB 서비스 비교 (시나리오별 비교)

시험 문제에서 주어지는 요구사항(키워드)에 따라 적절한 DB를 선택해야 합니다.

시나리오 / 키워드추천 서비스 (정답)설명
"정형 데이터", "SQL", "전통적인 DB"RDS가장 일반적인 RDBMS 선택지입니다.
"클라우드 네이티브", "고성능 RDBMS", "PostgreSQL/MySQL 호환"AuroraRDS보다 높은 성능과 가용성이 필요할 때 정답입니다.
"비정형 데이터", "Key-Value", "유연한 스키마", "초고속 성능(ms)"DynamoDB스키마가 없거나 변경이 잦고, 빠른 속도가 중요한 NoSQL입니다.
"읽기 성능 개선", "인메모리", "마이크로초(µs) 응답", "캐싱"ElastiCache 또는 DAXRDBMS 앞단이면 ElastiCache, DynamoDB 앞단이면 DAX입니다.
"데이터 웨어하우스", "대규모 데이터 분석", "OLAP", "SQL 분석", "BI"Redshift트랜잭션 처리가 아닌 '분석' 목적의 대용량 DB입니다.
"그래프 관계", "소셜 네트워크", "추천 시스템"Neptune데이터 간의 관계가 복잡하게 얽혀 있을 때 사용합니다.
"시계열 데이터", "IoT 센서", "DevOps 모니터링"Timestream시간 흐름에 따른 데이터를 저장하고 조회하는 데 최적화되어 있습니다.
"데이터 무결성", "불변성", "원장(Ledger)", "변경 이력 추적"QLDB데이터 위변조 방지가 필수적인 금융/계약 시스템에 사용합니다.
"MongoDB 호환"DocumentDBMongoDB 워크로드를 AWS로 마이그레이션할 때 사용합니다.
"온프레미스 DB 마이그레이션", "최소한의 가동 중지 시간"DMS (Database Migration Service)DB 엔진 변경(Schema Conversion Tool 필요)이나 마이그레이션 시 사용합니다.