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 구성
서브넷 구성
- 3개 서브넷 구성
- ID-sn_a, ap-northeast-2a, 10.0.1.0/24
- ID-sn_b, ap-northeast-2b, 10.0.2.0/24
- ID-sn_c, ap-northeast-2c, 10.0.3.0/24