목표: 호스트의 rds 를 생성 후 서브넷을 프라이빗으로 구성 후 클라이언트의 mysql 로 데이터 마이그레이션 (dump, crontab 을 이용)
1. db 생성
호스트의 rds 의 서브넷을 프라이빗라우팅 테이블에 연결 - vpn 을 통해서만 접속 할 수 있도록 구성.
클라이언트에서 우선 접속되어야 하아 확인해야 하므로 앤드포인트 확인과 클라이언트 프라이빗 ip 에게만 포트 개방
2. 연결 확인 - 172-31-50-5 (클라이언트의 ip) 에서 호스트의 rds 앤드포인트로 접속 ( database-1.cg5x8ymzexwa.ap-northeast-2.rds.amazonaws.com)
3. 호스트에서 생성한 db 를 mysqldump 를 이용해 클라이언트 db 서버로 마이그레이션
호스트의 db 생성 - kpop_music
호스트의 db 테이블과 내용 확인
- 덤프과정 -> mysql dump -> 터미널에 kpop_music.sql 생성 -> 클라이언트의 mysql 으로 마이그레이션
클라이언트의 mysql 에는 kpop_music 이름의 데이터베이스는 있어야 데이베베이스 내부 테이블이 마이그레이션 된다.
덤프 - 호스트의 rds 에서 sql 로 클라이언트의 인스턴스에 저장
mysqldump -h database-1.cg5x8ymzexwa.ap-northeast-2.rds.amazonaws.com -u root -p***** kpop_music > /home/ec2-user/kpop_music.sql
backup_db.sh 로 작성 후 저장
#!/bin/sh
## yyyy-mm-dd_hh:mm format
TIME=$(date "+%Y-%m-%d-%H")
mysqldump -h database-1.cg5x8ymzexwa.ap-northeast-2.rds.amazonaws.com -u root -p****** kpop_music > /home/ec2-user/kpop_music.sql
클라이언트의 mysql 로 이관
mysql -h localhost -u root -p****** kpop_music < /home/ec2-user/kpop_music.sql
import_db.sh로 작성 후 저장
#!/bin/sh
## yyyy-mm-dd_hh:mm format
TIME=$(date "+%Y-%m-%d-%H")
mysql -h localhost -u root -p****** kpop_music < /home/ec2-user/kpop_music.sql
크론텝으로 자동화
crontab -e -> 등록후 wq!
49 * * * * /home/ec2-user/backup_db.sh
50 * * * * /home/ec2-user/import_db.sh
-> 49분 마다 백업하고 50분에 마이그레이션
3. 확인 -> 클라리언트의 mysql 에서 확인
SITE-TO-SITE VPN 을 활용한 백업데이터센터 구축 -(1) (0) | 2024.03.10 |
---|