[AWS] 6. AWS 기본: RDS (Relational Database Service) + Amazon Aurora + ElastiCache

발행: (2026년 1월 15일 오후 12:20 GMT+9)
11 min read
원문: Dev.to

I’m happy to translate the article for you, but I’ll need the text you’d like translated. Could you please paste the content (or the portion you want translated) here? Once I have the text, I’ll keep the source line unchanged and provide a Korean translation while preserving the original formatting and markdown.

Amazon RDS란 무엇인가?

  • RDS = Relational Database Service – SQL을 쿼리 언어로 사용하는 완전관리형 데이터베이스 서비스입니다.
  • AWS 클라우드에서 기본 인프라를 직접 관리하지 않고 관계형 데이터베이스를 생성, 실행 및 확장할 수 있습니다.

지원 엔진

엔진비고
PostgreSQL
MySQL
MariaDB
Oracle
Microsoft SQL Server
IBM DB2
Aurora (AWS‑proprietary)PostgreSQL 및 MySQL 드라이버와 호환

핵심 관리형 서비스 기능

  • 자동 프로비저닝 및 OS 패치
  • 연속 백업 → 시점 복구 (PITR)
  • 모니터링 대시보드 (CloudWatch)
  • 읽기 복제본 – 읽기 성능 향상
  • 다중 AZ 배포 – 재해 복구 (DR)
  • 업그레이드용 유지 관리 창
  • 수직 및 수평 확장
  • EBS 기반 스토리지

참고: 표준 RDS 인스턴스에 직접 SSH 접속은 할 수 없습니다.

Storage Auto‑Scaling

  • RDS는 사용 가능한 공간이 임계값 이하로 떨어지면 스토리지를 동적으로 늘릴 수 있습니다.
  • 최대 스토리지 임계값을 설정해야 합니다(상한선).
  • 모든 조건이 충족될 때 자동 확장이 트리거됩니다:
    1. 사용 가능한 스토리지가 정의된 임계값 이하로 떨어짐.

Network cost: AZ 간 데이터 전송에는 비용이 발생하지만 같은 리전 내 복제 트래픽은 무료입니다.

멀티‑AZ (동기식) 복제

  • 단일 DNS 이름을 제공하며 자동으로 대기 인스턴스로 장애 조치됩니다.
  • 가용성을 높이며 애플리케이션 변경이 필요하지 않습니다.
  • 읽기 확장을 위한 용도가 아닙니다.
  • 재해 복구(DR)를 위해 읽기 복제본과 결합할 수 있습니다.

무중단 수정

  1. 콘솔에서 Modify를 클릭합니다.
  2. RDS가 스냅샷을 생성합니다.
  3. 다른 AZ에 새로운 DB를 복원합니다.
  4. 두 인스턴스를 동기화합니다.

RDS Custom vs. Standard RDS

FeatureRDS (Standard)RDS Custom
OS & DB managementFully managed by AWSManaged by AWS plus full admin access
CustomizationLimited (parameter groups, option groups)Full OS & DB configuration, SSH/SSM access
Use‑caseTypical production workloadsNeed for OS‑level patches, custom binaries, or special DB configurations

Tip: De‑activate automation mode before customizing; take a snapshot first.

RDS Custom vs. Standard RDS

기능RDS (Standard)RDS Custom
OS 및 DB 관리AWS에서 완전 관리AWS에서 관리 플러스 전체 관리자 접근 권한
사용자 정의제한적 (파라미터 그룹, 옵션 그룹)전체 OS 및 DB 구성, SSH/SSM 접근
사용 사례일반적인 프로덕션 워크로드OS 수준 패치, 커스텀 바이너리, 혹은 특수 DB 구성이 필요할 때

Tip: 커스터마이징하기 전에 자동화 모드를 비활성화하고, 먼저 스냅샷을 찍으세요.

Amazon Aurora

  • 독점적이며 클라우드에 최적화된 엔진 (PostgreSQL 및 MySQL과 호환).
  • RDS에서 MySQL 대비 5배, PostgreSQL 대비 3배의 성능을 주장.
  • 스토리지가 10 GB 단위로 자동 확장되어 최대 256 TB까지 지원.
  • 최대 15개의 읽기 복제본을 제공하며 복제 지연 시간이 10 ms 미만.
  • 즉시 장애 조치(HA 네이티브).

Architecture Highlights

  • 3 AZ에 걸쳐 6개의 복사본:
    • 쓰기용 4개의 복사본
    • 읽기용 3개의 복사본
  • 피어‑투‑피어 복제 → 자체 복구.
  • 데이터가 수백 개의 볼륨에 걸쳐 스트라이프됨.

Features

  • 자동 장애 조치

팁: 중지된 RDS 인스턴스라도 스토리지 비용이 청구됩니다. 장기간 중지할 계획이라면, 스냅샷을 찍고 복원하는 방법을 사용하고 중지된 상태로 두지 마세요.

백업 복원

RDS / Aurora 백업 → 새 DB 인스턴스

  1. 온프레미스 데이터베이스의 백업을 생성합니다.
  2. 백업을 Amazon S3(객체 스토리지)에 저장합니다.
  3. 백업 파일을 MySQL을 실행하는 새 RDS 인스턴스에 복원합니다.

Aurora 클러스터 → 새 클러스터 (S3에서)

  1. Percona XtraBackup(또는 다른 도구)를 사용해 온프레미스 DB를 백업합니다.
  2. 백업 파일을 Amazon S3에 저장합니다.
  3. 파일을 MySQL을 실행하는 새 Aurora 클러스터에 복원합니다.

기존 Aurora DB 클러스터 복제

  • 스냅샷 & 복원보다 빠릅니다. copy‑on‑write 프로토콜을 사용하기 때문입니다.
  • 새 클러스터는 초기에는 동일한 데이터 볼륨을 공유합니다(데이터 복사가 없음).)
  • 새 클러스터가 업데이트될 때 추가 스토리지가 할당되고 데이터가 복사되어 두 클러스터가 독립적으로 유지됩니다.
  • 사용 사례: 프로덕션 워크로드에 영향을 주지 않고 프로덕션에서 “스테이징” 데이터베이스를 생성합니다.

암호화

저장 시 암호화

  • 데이터베이스 마스터와 복제본은 AWS KMS로 암호화됩니다 (런치 시 정의해야 함).
  • 마스터가 암호화되지 않은 경우, 읽기 복제본은 암호화될 수 없습니다.
  • 기존 암호화되지 않은 DB를 암호화하려면:
    1. DB 스냅샷을 생성합니다.
    2. 암호화를 활성화한 상태로 스냅샷을 복원합니다.

전송 중 암호화

  • TLS는 기본적으로 활성화되어 있습니다; 클라이언트 측에서 AWS TLS 루트 인증서를 사용하십시오.

인증 및 접근 제어

  • IAM 인증: 전통적인 사용자명/비밀번호 대신 IAM 역할을 사용합니다.
  • 보안 그룹: RDS/Aurora 인스턴스에 대한 네트워크 접근을 제어합니다.
  • SSH 접근: RDS Custom을 제외하고는 제공되지 않습니다.

감사 및 모니터링

  • 감사 로그를 활성화하고 CloudWatch Logs로 전달하여 보존 기간을 연장합니다.

RDS Proxy

  • RDS/Aurora용 완전관리형 데이터베이스 프록시.
  • 이점:
    • DB 연결을 풀링하고 공유하여 CPU/RAM 부하와 연결 타임아웃을 감소시킵니다.
    • 서버리스, 자동 스케일링, 고가용성(다중 AZ).
    • 장애 조치(failover) 시간을 최대 **66 %**까지 단축합니다.
  • 지원 대상:
    • RDS (MySQL, PostgreSQL, MariaDB, MSSQL Server)
    • Aurora (MySQL, PostgreSQL)
  • 대부분의 애플리케이션에서 코드 변경이 필요 없습니다.
  • IAM 인증을 적용하고 자격 증명을 AWS Secrets Manager에 안전하게 저장합니다.
  • 절대로 공개 접근이 불가능 – VPC 내부에서만 접근해야 합니다.

관리형 캐싱: ElastiCache

서비스목적주요 기능
ElastiCache관리형 Redis 또는 Memcached- 인‑메모리, 고‑성능 캐시
- 기본 데이터베이스에 대한 부하 감소
- 애플리케이션을 무상태화하는 데 도움
AWS 책임OS 유지 관리, 패치, 최적화, 설정, 모니터링, 장애 복구, 백업
애플리케이션 영향캐싱 레이어를 통합하기 위해 코드 변경 필요
IAM 지원Redis에 대한 IAM 인증 (Memcached는 해당 없음)

ElastiCache에 대한 IAM 정책

  • 오직 AWS API‑레벨 보안(예: 클러스터 생성/수정)에만 사용됩니다.

Redis

  • AUTH: Redis 클러스터를 생성할 때 비밀번호/토큰을 설정하여 보안 그룹 외에 추가 보안 계층을 제공합니다.
  • Encryption in transit: SSL/TLS를 지원합니다.

Common Use Cases

  • Gaming leaderboards: 실시간 순위 매김을 위해 고유하고 정렬된 요소를 제공하는 Sorted Sets를 사용합니다.

Memcached

  • SASL 기반 인증을 지원합니다 (고급).

캐싱 전략

전략설명
Lazy Loading데이터를 읽을 때 캐시하고, 캐시된 데이터가 오래될 수 있습니다.
Write‑Through쓰기가 캐시와 기본 DB 모두를 업데이트하여 오래된 데이터를 방지합니다.
Session StoreTTL(수명) 기능을 가진 임시 세션 데이터를 저장합니다.

인용: “컴퓨터 과학에서 어려운 것은 두 가지뿐이다: 캐시 무효화와 이름 짓기.”

중요한 포트

서비스포트
FTP21
SSH / SFTP22
HTTP80
HTTPS443
PostgreSQL (RDS)5432
MySQL / MariaDB (RDS)3306
Oracle (RDS)1521
Microsoft SQL Server (RDS)1433
Aurora (PostgreSQL‑compatible)5432
Aurora (MySQL‑compatible)3306

모든 번호를 외울 필요는 없습니다; “중요한” 포트(예: HTTPS 443)와 “RDS 데이터베이스” 포트(예: PostgreSQL 5432)를 구분할 수 있으면 됩니다.

Back to Blog

관련 글

더 보기 »