Gyul-Box 프로젝트를 진행하면서, 제주도 지역의 동마다의 주거 공간들을 데이터베이스에 넣어야 했다.
배포를 진행한 후에 많은 양의 데이터를 집어넣으려 했지만, 많은 데이터의 통신은 AWS 과금 발생의 위험이 있다는 팀원의 조언이 있었다.
팀원과 상의 후 내린 결론은
MySQL 데이터베이스에 일단 많은 양의 데이터를 로컬에서 넣어준 뒤, AWS RDS로 마이그레이션하기로 결정했다.
마이그레이션하는 과정을 따라가보자.
1. RDS 인스턴스 생성
RDS 인스턴스를 생성한다.
default인 보안 그룹 설정에서 사용하는 DB 벤더 유형을 적용하고, 모든 트래픽의 IPv4 접근들을 허용한다.
- 백업한 데이터를 RDS 데이터베이스로 가져올 때, connect 에러가 발생하기 때문
2. 데이터베이스 백업 및 덤프
먼저, 명령 프롬프트(cmd)를 관리자 권한으로 실행한다.
C:\Program Files\MySQL\MySQL Server 8.0\bin>의 경로로 이동한다. (MySQL 폴더의 경로는 다를 수 있음)
mysqldump -u <local_user> -p <database_name> > backup.sql
위 명령어를 실행한다.
<local_user> : 로컬에서 데이터베이스에 접근할 때 사용하는 이름 (ex. root)
<database_name> : 로컬에서 생성한 스키마 이름
명령어를 실행하고 나면, 비밀번호를 요구하는데 정상적으로 성공하면 아무런 로그가 뜨지 않는다.
3. RDS 데이터베이스로 데이터 가져오기
mysql -h <RDS_host> -P <RDS_port> -u <RDS_user> -p <database_name> < backup.sql
위 명령어를 곧바로 실행한다.
<RDS_host> : RDS 인스턴스의 엔드포인트
<RDS_port> : RDS 포트 번호
<RDS_user> : RDS 생성 시, 사용한 이름 (ex. admin)
<database_name> : 로컬에서 생성한 스키마 이름, 마이그레이션할 데이터베이스 이름
4. 마지막으로, 데이터 마이그레이션이 잘 되었는지 RDS 인스턴스 확인 (MySQL workbench 이용)
1. Connection Name : 사용하고 싶은 커넥션 이름
2. Hostname : RDS 인스턴스의 엔드포인트
3. Port : RDS 인스턴스 생성 시, 설정한 포트 번호
4. Username : RDS 인스턴스 생성 시, 설정한 마스터 이름
이후, RDS 인스턴스 생성 시 설정한 마스터 암호를 입력하고 Connection Successfully를 확인하면 연결 완료
SELECT 쿼리문으로 특정 컬럼의 데이터를 조회해보면, 데이터가 잘 옮겨진 것을 확인할 수 있다.
'Develop' 카테고리의 다른 글
TCP/IP 4계층 모델 (0) | 2023.07.12 |
---|---|
네트워크 기초 (0) | 2023.07.12 |
CORS(Cross-Origin Resource Sharing) (0) | 2022.12.12 |
서버와 클라이언트 (0) | 2022.12.12 |
SSR과 CSR (0) | 2022.10.28 |