Master-Slave 구조
데이터 복제
복제 방식
Binlog의 목적
1. 복제: Master에서 발생한 데이터 변경 사항을 Slave로 전송.
2. 데이터 복구: 장애 복구 시 재생하여 데이터 복원.
3. CDC(Change Data Capture): 데이터 변경 사항을 외부 시스템으로 전달.
Binlog 갱신 방식
문제점
Aurora의 분산 스토리지 계층
DB 클러스터
Binlog의 목적
Binlog 갱신 방식
최적화
구분 | MySQL 온프레미스 | Aurora |
---|---|---|
아키텍처 | Master-Slave 구조 | Writer-Reader 구조 + 분산 스토리지 |
복제 방식 | Binlog 기반 복제 | 분산 스토리지 계층에 직접 복제 |
Binlog 사용 | 필수적(복제와 CDC에 필요) | 선택적(복제를 위해 사용되지 않음) |
Binlog 성능 | I/O 오버헤드 발생 | 향상된 binlog로 I/O 성능 최적화 |
쓰기 처리 | Master 노드에서만 처리 | Writer 인스턴스에서 처리 |
읽기 처리 | Slave 노드에서만 처리(복제 지연 발생 가능) | Reader 인스턴스에서 처리(복제 지연 없음) |
데이터 일관성 | 복제 지연 발생 가능 | Writer와 Reader의 데이터 일관성 보장 |
확장성 | Slave 추가로 제한적 확장 | 최대 15개의 Reader 인스턴스 추가 가능 |
분산 스토리지 계층
병렬 처리와 binlog 기록 지연
변경 데이터 수집 지연
쓰기 성능과 binlog의 상충
스토리지 계층과 binlog의 독립성
Amazon Aurora 데이터 스트리밍(AWS DMS)
AWS Lambda 트리거
Aurora 확장된 로그 기능
특징 | Aurora의 binlog | 온프레미스 MySQL의 binlog |
---|---|---|
기록 시점 | 데이터가 스토리지 계층에 적용된 후 기록 | 트랜잭션 커밋 시점에 즉시 기록 |
CDC 용도로 적합성 | 부적합 (기록 지연) | 적합 (변경 사항을 즉시 반영) |
복제 목적 | 분산 스토리지로 대체 가능 | 복제에 필수적으로 사용 |
실시간성 | 낮음 | 높음 |
Aurora는 InnoDB 스토리지 엔진을 사용하지만, 기본 MySQL과는 스토리지 처리 방식이 다름.
기본 MySQL(InnoDB)
Aurora
AZ(Amazon 가용 영역)
예를 들어:
특징 | Aurora 스토리지 계층 | InnoDB (기본 MySQL) |
---|---|---|
데이터 저장 위치 | 분산 스토리지 계층 (다중 AZ) | 로컬 스토리지 (디스크 또는 SSD) |
복제 방식 | 분산 스토리지 계층에서 자동 복제 | Master-Slave binlog 기반 복제 |
데이터 손실 가능성 | 6개의 복제본 중 3개 이상이 손실되지 않는 한 없음 | Master 또는 Slave 손실 시 |
확장성 | 자동 확장 (최대 128TB) | 디스크 크기에 따라 수동 확장 필요 |
읽기/쓰기 분리 | Writer-Reader 구조에서 분리 처리 | Master에서만 쓰기 처리, Slave는 읽기 전용 |
고가용성 | 자동 장애 복구 | 수동 장애 복구 (Replication 구성 필요) |
데이터는 Reader 노드나 Writer 노드에 저장되지 않음.
저장 경로
분산 스토리지 계층의 특징
데이터는 Reader 노드(Master-Slave 아키텍처의 Slave 노드) 자체에 저장됩니다.
저장 경로
복제 지연