DB/Mysql
MySQL Replication과 AWS Aurora MySQL
hoonylab
2025. 4. 8. 17:45
728x90
반응형
MySQL Replication(복제)란?
MySQL Replication은 하나의 MySQL 서버에서 발생한 변경 사항을 다른 서버로 실시간 혹은 지연 복제하는 기능입니다. 이를 통해 읽기 부하 분산, 백업, 고가용성 아키텍처 구현이 가능합니다.
🔗 기본 구조
MySQL Replication은 아래와 같은 구조로 동작합니다.
Primary Server (Master) → Binary Log 생성
↓
Replica Server (Slave) → I/O Thread → Relay Log → SQL Thread
🛠️ 복제 방식
- Statement-Based Replication (SBR): SQL 문장을 그대로 복제
- Row-Based Replication (RBR): 변경된 행 자체를 복제
- Mixed: 상황에 따라 SBR과 RBR을 자동 전환
⚙️ Replication 설정 방법
1. Master 설정
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_format = ROW
2. 복제 사용자 생성
CREATE USER 'repl'@'%' IDENTIFIED BY 'repl_password';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
3. Slave 설정 및 복제 시작
CHANGE MASTER TO MASTER_HOST='Master_IP',
MASTER_USER='repl',
MASTER_PASSWORD='repl_password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=12345;
START SLAVE;
📊 상태 점검
SHOW SLAVE STATUS\G
Slave_IO_Running과 Slave_SQL_Running이 YES여야 정상입니다.
🧪 실무 팁
- pt-table-checksum과 pt-table-sync로 데이터 불일치 탐지
- GTID 모드 사용 시 복구가 간편
🌍 GTID 기반 복제
gtid_mode = ON
enforce-gtid-consistency = ON
log_slave_updates = ON
CHANGE MASTER TO MASTER_AUTO_POSITION = 1;
START SLAVE;
AWS Aurora MySQL이란?
Aurora MySQL은 Amazon RDS의 고성능 버전으로, MySQL과 호환되면서도 최대 5배 빠른 성능과 뛰어난 복제 기능을 자랑합니다.
📌 구조 및 특징
- Writer(Primary Node)는 단일
- 최대 15개의 Reader 인스턴스 추가 가능
- 스토리지는 3개 AZ에 자동 복제되어 고가용성 보장
🧩 Aurora 복제 방식
- 스토리지 레벨 동기화 (Binlog 사용 X)
- Failover 시 Reader가 자동 승격
- Replication 지연이 거의 없음
🔄 외부 복제 구성
1. Aurora → 외부 MySQL
파라미터 그룹에서 binlog 활성화 후 Position 기반 복제 설정
2. 외부 MySQL → Aurora
DMS 또는 mysqldump로 마이그레이션 가능
3. Aurora 내부 리더 구성
Reader Endpoint로 로드 밸런싱 자동 처리
📊 비교: MySQL vs Aurora
항목 | MySQL Replication | Aurora MySQL |
---|---|---|
복제 방식 | Binary Log 기반 | 스토리지 레벨 |
지연 | 수 ms ~ 수 초 | 수 ms 수준 |
Failover | 수동 설정 | 자동 |
관리 | 직접 관리 | 완전관리형(RDS) |
✅ 마무리
MySQL Replication과 AWS Aurora MySQL은 각각의 환경에 맞게 선택해 활용할 수 있습니다. 직접 구축해보고 비교해보시면 어떤 아키텍처가 더 적합한지 판단하시기 쉬울 거예요. 복제를 적극 활용하여 안정적인 데이터베이스 운영을 시작해보세요!
728x90
반응형