-
MySQL Replication과 AWS Aurora MySQLDB/Mysql 2025. 4. 8. 17:45728x90반응형
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반응형'DB > Mysql' 카테고리의 다른 글
🔐 MySQL Lock 이해하기 – 데이터 일관성과 성능 관리를 위한 필수 개념 (0) 2025.04.10 ✅ MySQL 테이블 간 관계 설정 – 물리적 FK vs 논리적 FK, 그리고 Lock 이슈까지! (0) 2025.04.10 🔍 MySQL 실행 계획(Execution Plan) (0) 2025.04.08 🎨 MySQL 인덱스 알아보자! (0) 2025.04.08 [mysql] Public Key Retrieval is not allowed 발생 (0) 2023.07.18