AWS

AWS 클라우드 따라잡기 7장

관리형 데이터베이스 — RDS, Aurora, DynamoDB

이번 장은 AWS의 데이터베이스 서비스를 다룬다.

AWS 7장 개념도

데이터베이스를 직접 서버에 설치해 운영하면 백업, 패치, 장애 대응이 모두 내 몫이다.

관리형 데이터베이스는 이 운영 부담을 AWS가 대신 진다.

이 장의 목표는 다음과 같다.

  • RDS와 Aurora가 무엇인지 안다.
  • 관계형(SQL)과 비관계형(NoSQL)을 구분한다.
  • 멀티AZ와 읽기 복제본의 차이를 이해한다.

1. RDS — 관리형 관계형 DB

RDS는 Relational Database Service의 약자다.

MySQL, PostgreSQL, MariaDB, Oracle, SQL Server 같은 관계형 DB를 관리형으로 제공한다.

RDS를 쓰면 AWS가 다음을 대신 해 준다.

  • 자동 백업과 스냅샷
  • 소프트웨어 패치
  • 장애 시 자동 복구

내가 SQL을 쓰고 데이터를 다루는 데만 집중하면 된다.

2. 멀티AZ — 고가용성

멀티AZ(Multi-AZ)는 DB를 두 AZ에 두는 구성이다.

  • 주(primary) DB가 한 AZ에 있고, 대기(standby) DB가 다른 AZ에 자동 복제된다.
  • 주 DB에 장애가 나면 대기 DB로 자동 전환(failover)된다.

주의할 점은 대기 DB는 읽기용이 아니다. 오직 장애 대비용이다.

멀티AZ의 목적은 "가용성"이지 "성능"이 아니다.

3. 읽기 복제본 — 읽기 성능 확장

읽기 복제본(Read Replica)은 성능을 위한 복제본이다.

읽기 요청이 많을 때, 복제본을 여러 개 만들어 읽기를 분산한다.

  • 쓰기는 주 DB로, 읽기는 복제본으로 보낸다.
  • 복제본은 비동기로 복제되어 약간의 지연이 있을 수 있다.

정리하면 이렇다.

구성 목적 읽기 처리
멀티AZ 고가용성(장애 대비) 대기본은 읽기 불가
읽기 복제본 성능(읽기 분산) 복제본에서 읽기 가능

두 가지는 함께 쓸 수 있다.

4. Aurora — AWS의 고성능 DB

Aurora는 AWS가 직접 만든 관계형 DB 엔진이다.

MySQL, PostgreSQL과 호환되면서 성능과 가용성이 훨씬 좋다.

  • 스토리지가 자동으로 늘어난다.
  • 데이터를 3개 AZ에 6벌 복제해 매우 안전하다.
  • Aurora Serverless는 트래픽에 따라 용량이 자동으로 늘고 준다.

성능이 중요하고 예산이 되면 RDS보다 Aurora를 고려한다.

5. DynamoDB — 관리형 NoSQL

DynamoDB는 완전 관리형 NoSQL(키-값/문서) 데이터베이스다.

관계형 DB와는 성격이 완전히 다르다.

  • 스키마가 유연하다. 행마다 속성이 달라도 된다.
  • 수평 확장이 자유로워 초대형 트래픽도 밀리초 단위로 응답한다.
  • 서버를 신경 쓸 필요가 없다(서버리스).

기본 개념은 다음과 같다.

  • 테이블: 항목(item)의 모음.
  • 파티션 키: 데이터를 분산하는 기준. 잘 고르는 게 성능의 핵심이다.
  • 정렬 키: 파티션 안에서 정렬 기준(선택).

간단한 CLI 예시:

aws dynamodb put-item \
  --table-name Users \
  --item '{"userId": {"S": "u123"}, "name": {"S": "Lee"}}'

6. 언제 무엇을 쓰나

  • 복잡한 조인, 트랜잭션, 정형 데이터 → RDS/Aurora (SQL)
  • 초대형 규모, 단순 조회, 유연한 스키마 → DynamoDB (NoSQL)
  • 캐시로 DB 부하를 줄이고 싶다 → ElastiCache (Redis/Memcached)

정답은 하나가 아니다. 데이터 성격과 접근 패턴으로 고른다.

정리

  • RDS는 관리형 관계형 DB, Aurora는 그 고성능 버전이다.
  • 멀티AZ는 고가용성, 읽기 복제본은 읽기 성능 확장이다.
  • DynamoDB는 초대형 규모에 강한 관리형 NoSQL이다.
  • 데이터 성격에 따라 SQL과 NoSQL을 골라 쓴다.

다음 장에서는 트래픽을 분산하고 서버를 자동으로 늘리는 방법을 다룬다.

댓글 0