Amazon Aurora

박재현·2023년 3월 7일
0

🔎 Amazon Aurora

  • 고성능 데이터베이스와 가용성 오픈 소스 데이터베이스의 간편성, 비용 효율성을 결합된 MySQL, PostgreSQL 호환 관계형 데이터베이스
  • 표준 MySQL 데이터베이스보다 최대 5배 빠르고, 표준 PostgreSQL 데이터베이스보다 3배 빠른 속도
  • 1/10의 비용으로 상용 데이터베이스의 보안, 가용성 및 안정성을 제공
  • 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같은 시간 소모적인 관리 작업을 자동화

💡 특징

  • MySQL, PosgreSQL 지원
  • 두가지 모드
    ✓ 다수 노드로 읽기, 쓰기가 가능한 Muti-Master
    ✓ 한 개의 쓰기 전용 노드와 다수의 읽기 전용 노드(Aurora Replicas) 구성의 Single-Master
  • 용량의 자동 증감: 10GB부터 시작하여 10GB 단위로 용량 증가 (최대 128TB)
  • 연산 능력: 96vCPU와 768GB 까지 증가 가능 (db.r5.24xlarge)
  • 데이터의 분산 저장: 각 AZ마다 2개의 데이터 복제본 저장 * 최소 3개 이상의 AZ => 최소 6개의 복제본
    ✓ 3개 이상을 잃어버기리 전엔 쓰기 기능이 유지됨
    ✓ 4개 이상을 잃어버리기 전엔 읽기 기능이 유지됨
    ✓ 손실된 복제본은 스스로 복구 (지속적으로 손실된 부분을 검사)
    ✓ Quorum 모델 사용

📌 Single-Master

  • 쓰기: 쓰기 전용 노드가 받아서 분산된 전체 Copy본에 전달
  • 읽기: 읽기 전용 노드가 받아 하나의 Storage Node에 접근해 데이터 받아옴
  • 한대의 Writer 인스턴스와 다수의 읽기 전용 인스턴스(Aurora Replicas)로 구성
  • 총 15개의 Replica 생성 가능
  • Async 복제
  • 하나의 리전안에 생성 가능
  • Writer가 죽을 경우 자동으로 Replica중 하나가 Writer로 Fail Over
    ✓ 데이터 손실 없이 Failover 시 메인으로 승격 가능
  • 고가용성(High Availability) 확보

📌 Multi-Master

  • 읽기, 쓰기를 담당하는 노드가 여러개이며 동시에 동작 가능
  • 최대 4개의 노드가 읽기/쓰기를 담당
    ✓ 각 노드는 독립적, 정지/재부팅/삭제 등에 영향을 받지 않음
  • 지속적인 가용성(Cotinuous Availability) 제공
  • Multitenant 혹은 Sharding이 적용된 어플리케이션에 좋은 성능


Aurora Global Database

  • 전 세계의 모든 리전에서 1초내 지연시간으로 데이터 엑세스 가능
  • 재해복구용도로 활용 가능
    ✓ 유사시 보조 리전중 하나를 승격하여 메인으로 활용
    ✓ 1초의 RPO(복구 지점 목표)
    ✓ 1분 미만의 RTO(복구 목표 시간)
  • 보조 리전에는 총 16개의 Read 전용 노드 생성 가능 (원래는 15개)

병렬 쿼리

  • 다수의 읽기 노드를 통해 쿼리를 병렬로 처리하는 모드
    ✓ 빠르고 부하 분산 (CPU, memory)
  • MySQL 5.6/5.7 에서만 지원
  • 몇몇 낮은 인스턴스(db.t2, db.t3등)에서는 지원하지 않음

Aurora 백업

  • 읽기 복제본(Read Replica) 지원
    ✓ MySQL DB의 Binary log 복제 (binlog)
    ✓ 단 다른 리전에만 생성이 가능
  • RDS와 마찬가지로 자동/수동 백업 가능
    ✓ 자동 백업의 경우 1~35일간 S3에 보관
    ✓ 수동 백업(스냅샷) 가능
    ✓ 백업 데이터를 복원할 경우 다른 데이터베이스를 생성

Aurora 데이터베이스 클로닝

  • 기존 데이터베이스에서 새로운 데이터베이스를 복제
    ✓ 스냅샷을 통해 새로운 데이터베이스 생성하는 것 보다 빠르고 저렴함
  • Copy-On-Write 프로토콜 사용
    ✓ 기존 클러스터 삭제되도 동작됨

Backtrack

  • MySQL만 가능
  • Aurora 생성 시 Backtrack 을 설정한 DB만 사용 가능
  • Multi-Master 상태에서는 Backtrack 불가능
  • 기존의 DB를 특정 시점으로 되돌리는 것(새로운 DB가 아닌 기존 DB)
    ✓ DB 관리의 실수를 쉽게 만회 가능 (ex. Where 없는 Delete)
    ✓ 새로운 DB를 생성하는 것 보다 빠름
    ✓ 앞 뒤로 시점을 이동할 수 있기 때문에 원하는 지점을 빠르게 찾을 수 있음
  • Backtrack Window
    ✓ Target Backtrack Window: 어느 시점으로 되돌려 DB 데이터를 저장할 것인지 미리 지정
    ✓ Actual Backtrack Window: 실제로 시간을 얼만큼 되돌릴 것인지
  • Backtrack 활성화 시 시간당 DB의 변화를 저장
    ✓ 저장된 용량만큼 비용 지불
    ✓ DB 변화가 많을 경우 많은 비용

0개의 댓글