home
Rds aurora의 쿼럼 모델
RDS Aurora의 쿼럼 모델
Amazon Aurora under the hood: quorums and correlated failure | Amazon Web Services
- 분산 스토리지가 좋은 아이디어이지만 잘 실행하기 어려운 이유
- 동기식 복제 → 모든 복사본이 승인해야한다.
- 비동기식 복제는 지연 시간 → 데이터가 복제되어 내구성을 가지기 전에 실패가 발생하면 데이터 손실이 발생
- 그래서 Aurora는 쿼럼 모델을 사용
쿼럼 모델
- 정의
- 데이터의 여러 복사본 중 일부분(부분집합)에서 읽기와 쓰기를 수행하는 시스템
- 리더리스의 정족수와 유사
- 하지만 다음과 같은 차이가 있음
- 쿼럼: 데이터베이스의 읽기/쓰기 작업의 일관성 보장, 읽기 쿼럼과 쓰기 쿼럼을 별도로 정의
- 리더리스 정족수: 리더 없이 분산 시스템의 합의를 이루기 위한 목적, 일반적으로 단일 정족수 값 사용
- 전체 복사본 수를 V, 쓰기 쿼럼을 Vw, 읽기 쿼럼을 Vr로 표시
- 데이터의 여러 복사본 중 일부분(부분집합)에서 읽기와 쓰기를 수행하는 시스템
- 핵심 규칙
- 규칙 1: 읽기 세트(Vr)와 쓰기 세트(Vw)는 최소 하나의 복사본에서 반드시 겹쳐야 함
- 규칙 2: 쓰기 쿼럼(Vw)은 전체 복사본 수의 절반보다 커야 함 (Vw > V/2)
Aurora 쿼럼
- AZ(가용 영역) 전체 장애 대응
- Aurora는 3개의 AZ에 걸쳐 6개의 복사본을 분산 저장 (각 AZ당 2개)
- 한 개의 AZ가 완전히 실패하더라도(2개 복사본 손실) 시스템은 계속 운영 가능
- 남은 복사본 = 4
- Vw(4개 필요) 조건을 여전히 만족
- Vr(3개 필요) 조건을 여전히 만족
- 심지어 한 AZ이 손실되고, 추가 1개의 복사본이 손실되더라도 남은 복사본은 3개이기에 Vr=3을 만족하므로 최신 데이터를 읽을 수 있음
- 이를 기반으로 새로운 복사본을 만들어 Vw=4를 만족하게 할 수 있다.
- 2/3 쿼럼의 한계 극복
-
2/3 쿼럼
AZ1: 1개 복사본 AZ2: 1개 복사본 AZ3: 1개 복사본 총 3개 복사본, 2개의 승인 필요
- 일반적인 2/3 쿼럼은 한 개의 장애만 처리 가능
- 하지만 실제로는 장애가 독립적이지 않을 수 있음
- AZ 전체 실패 + 다른 장애가 동시에 발생하면 2/3 쿼럼은 데이터 손실 위험
-
- 극단적 상황 대비
- AZ 장애가 장기화될 경우 3/4 쓰기, 2/4 읽기의 저하된 모드로 전환 가능
- 이를 통해 남은 AZ들에서 추가 장애가 발생해도 시스템 운영 가능
- AZ 복구 후 다시 6복사본 체제로 복귀