[Mysql] 로컬에서 AWS EC2로 DB 마이그레이션

김지엽·2023년 11월 6일
3
post-thumbnail
post-custom-banner

1. 개요

이번에 nestjs 프로젝트를 AWS EC2로 배포하면서 mysql 로컬 DB에 저장되어 있는 데이터를 EC2에 설치된 mysql DB로 옮겨야 하는 상황이 발생했다.

이전에 비슷한 경험으로 구름IDE를 이용했을때 구름IDE에 설치된 mysql DB 데이터를 로컬 mysql DB로 옮기는 작업을 한 적이 있다. 하지만 다른 점이 있다면 구름IDE 서비스처럼 로컬로 바로 파일을 보낼수는 없다는 것이였다.

방법을 찾아본 결과 scp를 통해 파일을 전송해 데이터를 이동시키기로 하였다. 과정은 다음과 같다.

  1. 로컬 DB 데이터 백업
  2. scp를 통해 AWS EC2 인스턴스로 백업 파일 전송
  3. AWS EC2 인스턴스에서 백업 진행

2. 데이터 이동

- 로컬 DB 데이터 백업

먼저 로컬 DB 데이터를 백업한다.

$ mysqldump -u root -p "database이름" > "백업파일경로/파일이름".sql

다음과 같이 정상적으로 백업 파일이 생성됐는지 확인한다.

- scp 백업 파일 전송

scp를 통해 AWS EC2 인스턴스로 이전에 백업한 데이터를 전송해야 한다.

$ scp -i "keypair 경로" "백업 파일 경로" "EC2 유저"@"EC2 퍼블릭 IPv4 DNS 주소":~/"EC2에서 저장할 경로"

다음과 같다면 정상적으로 성공이다.

그리고 파일이 정상적으로 전송됐는지 확인한다.
먼저 ssh를 통해 EC2 인스턴스에 접속한다.

$ ssh -i "keypair 경로" "EC2 유저"@"퍼블릭 IPv4 주소"

- EC2 인스턴스에서 백업 진행

먼저, 백업을 진행해줄 database를 생성한다.

$ mysql -u root -p

$ create database "데이터베이스 이름"

$ exit

이제 생성한 데이터베이스로 아까 전송한 백업 파일을 덮어씌운다.

$ sudo mysql -u root -p "생성한 데이터베이스 이름" < "백업 파일 경로"

데이터가 성공적으로 백업되었는지 확인한다.

참고

scp로 aws ec2파일 업로드
mysql backup

profile
욕심 많은 개발자
post-custom-banner

1개의 댓글

comment-user-thumbnail
2023년 12월 8일

감사합니다 !

답글 달기