AWS 서비스 환경을 개발 환경으로 옮기기
앞에서 배운 mysql dump를 활용하여 실제 운영되는 서비스 데이터를 Dev 환경에 가져오려고 합니다.
Product RDS는 Private Subnet 안에 존재하기에, Public Subnet을 거쳐서 연결이 필수입니다.
그러기에 SSH 터널링을 해주어야 하는데, 이 과정은 여러번 설명하기도 했기에 넘어가겠습니다.
MacOS에서 진행하였씁니다.
약 1000만개의 데이터를 옮기는데, 1분 정도 걸려서 Dump 후 개발환경에 반영하였습니다.
Production RDS 연결 및 데이터 Dump 파일 생성하기
- ssh connection
1
2
# ssh-connection
$ ssh -i {pem 경로} -N -L {port}:{aws-clustser-read-url}:{port} ubuntu@{public-ip}
- 터널링을 완료하였으니, instance 환경에서 테스트가 가능합니다.
- Mysql에 연결하여 봅니다.
1
$ mysql -h 127.0.0.1 -P {port} -u {id} -p
- 이제 실제 데이터들을 Dump하여 봅니다.
- –single-transaction 실서비스에 영향을 주지 않기 위해 Lock을 걸지 않았습니다.
1
mysqldump --single-transaction --set-gtid-purged=OFF --quick --column-statistics=0 -h 127.0.0.1 -P {port} -u {id} {database} {table} > {file_name}.sql
Dump file → Dev
- dev 환경에 연결하여 줍니다.
1
$ mysql -h {aws-rds-url} -P {port} -u {id} -p
- 연결을 잘해주었다면, database를 조회하여 봅니다.
- 원하는 DB를 선택 후 다운로드한 dump 파일을 실행시켜줍니다.
1
2
3
$ show databases;
$ use database-name;
$ source ./dump-file.sql