[AWS] Amazon Aurora & Auto Scaling

01. Amazon RDS?

Amazon Relational Database Service

  • 관계형 데이터베이스를 더욱 쉽게 설치, 운영 및 확장할 수 있는 웹 서비스.
  • 경제적이고 크기 조절이 가능한 용량을 제공하고 공통 데이터베이스 관리 작업을 관리합니다.

Amazon EC2 VS Amazon RDS

 

Amazon  RDS 특이점

  • 백업, 소프트웨어 패치, 자동 장애 감지 및 복구를 관리합니다.
  • 자동화된 백업을 설정하거나 고유한 백업 스냅샷을 수동으로 생성할 수 있고 복원도 할 수 있습니다.
  • 기본 인스턴스 및 문제 발생 시 장애 조치를 수행할 수 있는 동기식 보조 인스턴스가 있어 가용성을 높일 수 있습니다.
  • 읽기 전용 복제본을 사용하여 읽기 조정을 높일 수도 있습니다.

RDS 선택 가능한 엔진

 

02. Amazon Aurora?

MySQL, PostgreSQL과 호환되는 완전 관리형 관계형 데이터베이스 엔진

  • 고급 상용 데이터베이스의 속도와 안정성을 오픈 소스 데이터베이스의 단순성 및 비용 효율성과 결합 하였습니다.
  • 기존 애플리케이션을 거이 변경 없이 MySQL 기준 최대 5배, PostgreSQL 기준 최대 3배 성능향상 가능합니다.
  • 고성능 스토리지 하위시스템이 포함되며 클러스터 볼륨 크기는 최대 128TiB까지 증가할 수 있습니다.
  • 구성 및 관리의 어려운 측면 중 하나인 데이터베이스 클러스터링 및 복제를 자동화하고 표준화 합니다.
Amazon Aurora DB 클러스터

리전 및 가용 영역

  • 리전은 다른 AWS 리전에서 격리되도록 설계되었습니다. 이를 통해 가장 강력한 내결함성 및 안정성을 달성할 수 있습니다.
  • 가용 영역은 지정된 AWS 리전에 격리된 위치입니다.
  • 각 Aurora DB 클러스터는 스토리지 복사본을 3개의 개별 AZ에 호스팅합니다.
스토리지
 
  • SSD(Solid State Drive)를 사용하는 단일 가상 볼륨인 클러스터 볼륨에 저장합니다.
  • 클러스터 볼륨은 동일한 AWS 리전에 속한 세 가용 영역의 데이터 사본으로 구성되어 있습니다.
  • 가용 영역에서 데이터가 자동으로 복제되기 때문에 데이터 손실 가능성 줄어 오히려 내구성이 크게 높아집니다.
  • 데이터 용량이 늘어날수록 클러스터 볼륨도 자동 확장됩니다.
  • 최대 확장 가능한 용량은 DB엔진 버전에 따라 128 테라 또는 64 테라입니다.
  • 3개의 가용 영역에 여러 개의 복사본을 보관하고 있기 때문에 디스크 결함으로 인한 데이터 손실 가능성이 최소화됩니다.

데이터의 고가용성 (High-Availability, 정상적인 사용)

  • 기본 DB 인스턴스에 데이터가 기록되면 Aurora에서 가용영역의 데이터를 볼륨과 연결된 6개의 스토리지 노드에 동기적으로 복제합니다.
  • 이 방법은 데이터 중복을 제공하고, I/O 중지를 없애고, 시스템 백업 중에 지연 시간 스파이크를 최소화합니다.

인스턴스의 고가용성

  • 단일 마스터 복제를 사용하는 클러스터의 경우 기본 인스턴스를 생성한 후 최대 15개의 일기 전용 복제본을 생성할 수 있습니다.
  • 일상적인 작업 중에 리더 인스턴스에서 SELECT 쿼리를 처리하여 읽기 집약적 응용 프로그램의 일부 작업을 오프로드 할 수 있습니다.
  • 기본 인스턴스에 문제가 발생시 리더 인스턴스 중 하나가 기본 인스턴스 역할을 인수합니다. (FailOver)

클러스터의 내결함성 (Fault Tolerance, 운영 유지)

  • 클러스터 볼륨은 단일 AWS 리전에 속하는 다중 가용 영역을 모두 아우르는 의미 입니다.
  • 각 가용 영역에는 클러스터 볼륨 데이터 사본이 복사됩니다.
  • 단일 마스터 복제를 사용하는 인스턴스에 결함이 발생하면 아래 2가지 방법 중 하나를 선택하여 자동 장애 조치합니다.
  • 기존 Aurora 복제본을 새 기본 인스턴스로 승격 OR 새로운 기본 인스턴스 만들기
03. RDS 용 VPC 생성
 
VPC 구성도
 
 VPC 구성