본문 바로가기

[쿠버네티스] AWS 구축/5. EC2에서 MySQL Master-Slave 구성

3. Slave 서버 설정 (복제본 서버)

Slave 서버는 Master의 데이터를 받아오며, 데이터 일관성을 위해 읽기 전용으로 설정한다.

 

1. mysqld.cnf 수정

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

 

[mysqld 섹션 설정]

[mysqld]
bind-address = 0.0.0.0
server-id = 2                       # Master와 다른 번호 부여
read_only = 1                       # 일반 사용자 쓰기 금지
super_read_only = 1                 # 관리자(root) 포함 쓰기 금지
# MySQL 재시작
sudo systemclt restart mysql

 

2. Master 정보 등록 (연결 설정)

Master 서버에서 확인했던 로그 정보를 입력한다.

sudo mysql -u root -p

-- Slave 서버의 MySQL 쉘에서 실행
CHANGE REPLICATION SOURCE TO 
  SOURCE_HOST='<MASTER_PUBLIC_IP>',       -- Master 서버의 공인 IP 주소
  SOURCE_USER='repl_user',                -- Master에서 생성한 복제 전용 계정명
  SOURCE_PASSWORD='1234',                 -- 복제 전용 계정의 비밀번호
  SOURCE_LOG_FILE='mysql-bin.000001',     -- [Master 서버 단계에서 메모한 File명]
  SOURCE_LOG_POS=713,                     -- [Master 서버 단계에서 메모한 Position 값]
  SOURCE_SSL=1;                           -- 통신 보안을 위한 SSL 암호화 활성화

 

3. 복제 시작 및 상태 확인

START REPLICA; -- 복제 프로세스 시작

SHOW REPLICA STATUS\G

 

  • 성공 지표: Replica_IO_Running: Yes 와 Replica_SQL_Running: Yes 확인
  • 주의: 만약 Connecting 상태에서 멈춰있다면 AWS 보안 그룹(Security Group) 3306 포트가 Master 서버에서 Slave IP에 대해 허용되어 있는지 확인한다.