개발 공부/AWS

[AWS] SAA 공부 (6)-1 RDS - Amazon Aurora

sngynhy 2025. 3. 25. 17:35

Amazon Aurora

AWS에서 제공하는 클라우드 네이티브 관계형 DB 서비스

  • PostgreSQL 및 MySQL과 호환
    • Aurora DB에 호환 가능한 드라이버가 있으며 위의 DB와 연결 가능
    • 보다 더 높은 성능과 가용성 (MySQL보다 5배, PostgreSQL보다 3배)
  • 클라우드에 최적화
  • 스토리지 자동 확장 (10GB -> 128TB)
  • 복제본을 통한 자동 복구
  • Read Replica 최대 15개 생성 가능
  • Multi AZ > 즉각적인 장애 조치
  • 비용이 높은 편이지만 효율적인 스케일링으로 비용 절감 가능

높은 가용성과 읽기 스케일링

  • 세 개의 AZ에 걸쳐 사용자가 DB에 접근할 때마다 6개의 사본을 저장 (하나의 AZ에 2개의 사본 생성)
    • 쓰기에는 6개의 사본 중 4개만 있으면 됨
    • 읽기에는 6개의 사본 중 3개만 있으면 됨 (읽기 가용성이 높음)
    • 자가 복구 기능
      • 일부 데이터가 손상되거나 문제 발생 시 백엔드에서 P2P 복제를 통한 자가 복구 진행
    • 단일 볼륨에 의존하지 않고 수 백 개의 볼륨을 사용 > 리스크 감소
  • 쓰기를 받는 인스턴스는 한 개 (Primary DB) > Multi-AZ와 유사
  • Primary DB가 작동하지 않으면 평균 30초 이내로 장애 조치 시작
  • Primary DB를 제외한 Read Replica를 최대 15개까지 생성 가능
    • 읽기 전용 복제본을 많이 두고 읽기 워크로드 스케일링
    • Primary에 문제 발생 시 읽기 전용 복제본 중 하나가 Primary DB로 승격
  • 리전간 복제 지원

📌 공유 스토리지 볼륨 > 복제, 자가 복구, 자동 확장

Aurora DB Cluster

작동 방식

  • Writer 인스턴스 (Primary Instance)
    • 읽기/쓰기 작업 모두 수행
    • DNS 이름으로 항상 Primary DB를 가리킴
    • 장애 조치 후에도 Writer 인스턴스와 상호작용하게 되며 올바른 인스턴스로 자동 리다이렉트 됨
  • Reader 인스턴스 (Read Replica)
    • 읽기 전용 복제본
    • 연결 로드 밸런싱에 도와 모든 읽기 전용 복제본과 자동으로 연결
    • 클라이언트가 Reader 인스턴스에 연결될 때마다 읽기 전용 복제본 중 하나로 연결
    • 📌 로드 밸런싱이 연결 레벨에서 일어나는 것 기억하기!

 

Aurora 고급 개념

Aurora Replicas - Auto Scaling

트래픽에 따른 Replica Auto Scaling 설정 (읽기 전용 복제본 자동 추가/제거) > 읽기 부하를 효율적으로 관리

  1. 자동적으로 Reader 인스턴스는 새로운 Replica들을 위해 확장
  2. 새 레플리카들은 트래픽을 받기 시작
  3. 읽기는 더 많이 분배되는 방식으로 전체적인 CPU 사용량을 낮춤

Aurora - Custom Endpoints

Aurora 인스턴의 부분 집합을 사용자 지정 엔드폰인트로 지정하여DB 접근에 더 유연하게 관리할 수 있게 해주는 기능

  • 클러스터 내 특정 DB 인스턴스를 그룹화하여 해당 그룹에만 접근 가능한 고유 엔드포인트를 만듦
  • 트래픽 분산특정 애플리케이션 전용 접근을 쉽게 구현
  • 사용자 지정 엔드포인트 정의 이후에는 Reader 인스턴스를 더 이상 사용하지 않음

Aurora Serverless

자동 확장형 DB 서비스서버 관리없이 애플리케이션의 트래픽 변화에 따라 자동으로 인스턴스 생성 및 종료

  • 미리 용량 확보하지 않아도 됨
  • 간헐적이고 예측 불가능한 업뮤량에 대응

Global Aurora

  • Aurora Cross Rigion Read Replicas
    • 재해 복구
    • 간단한 실행
  • Aurora Global Database (recommended)
    • 읽기/쓰기 모두 수행하는 한 개의 리전과 최대 5개의 보조 읽기 전용 리전 생성 가능
    • 응답 지연 1초 이하
    • 보조 리전 당 최대 16개의 읽기 전용 복제본 사용 가능
    • 한 리전에 DB 중단이 일어날 경우 재해 복구를 위해 다른 리전의 레플리카 승격 > 1분 이내
    • 📌 평균적으로 Aurora Global DB에서 한 리전에서 다른 리전으로 데이터를 복제하는 데에는 1초 이하의 시간이 걸림

Aurora Machine Learning

  • SQL 인터페이스를 통해 사용자의 응용프로그램에 머신러닝 기반의 예측 추가 가능
  • Aurora와 AWS 머신러닝 서비스 간의 통합 
    • Amazon SageMaker > 모든 머신러닝 모델을 사용할 수 있도록 허용
    • Amazon Comprehend > 감정 분석
  • 사용 사례
    • 이상 행위 탐지, 광고 타켓팅, 감정 분석, 상품 추천 등 (모두 Aurora 안에 있음)
  • 머신러닝 서비스와의 통합을 위해 별로의 학습은 필요하지 않음
    • 사용자가 애플리케이션의 SQL 쿼리문을 통해 상품 추천 요청을 보냄
    • Aurora가 머신러닝 서비스로 데이터(사용자 프로필, 구매이력 등)를 보냄
    • 머신러닝 서비스는 Aurora에게 직접적으로 예측 결과 전달
    • Aurora는 쿼리 결과를 애플리케이션으로 반환