Computer Engineering/Server

RDS DB 데이터 이전(MySQL)

말하는호구마 2021. 2. 9. 16:03

RDS DB이관을 진행했다.

 

처음 RDS를 생성할 때 너무 신나서 했더니 개발용 RDS를 생성하였고.... r5.large요금을 사용해버렸다...

그 결과 이틀만에 18000원이라는 과금을 하게 되었고... 요금제를 변경하려고 했지만 변경할 수 있는 가장 저렴한 요금제가 t3.micro였다.

 

큰 차이가 없을 것 같아서 그대로 진행하려했지만 하루에 4천원꼴의 과금이 발생하였고 2주 프로젝트 기간을 생각한다면....

물론 큰 돈은 아니지만 모의 프로젝트에 그만한 돈을 쓰기 아까웠다.

그리하여 멘토님의 조언대로....DB이관을 결심하였다.

 

중간에 실수를 하게 되면 다른 팀원들의 개발 환경에 영향을 미칠까 최대한 안하려고 했지만 어쩔 수 없었다.

내가 진행했던 프로세스의 환경은 이러하였다.

 

  • RDS --> RDS
  • MySQL --> MySQL
  • 이미 테이블에 많은 데이터가 있었기 때문에 모든 데이터를 이동
  •  

1.새로운 RDS생성

일단 이동하고 나서 사용할 RDS가 필요하였다.

이전과 같은 조건들을 주되 꼭 테스트 버전으로 생성하려고 신경을 썼다.

테스트 버전에서만 t2.micro를 사용할 수 있기 때문이다.

 

 


2.MySQL data export

이전의 RDS에는 MySQL workbench가 연결 되어있다.

AWS에서 RDS snapshot을 이용하여 백업하는 방법도 있었지만 Parameter group을 건드려 본 경험이 없기 때문에 빠르게 할 수 있도록 MySQL workbench를 사용하는 방법을 사용하였다.

 

이전에 연결해둔 connection에서 export 를 진행한다.

맨 위의 탭 Server -> data export

 

내가 원하는 스키마와 테이블들을 선택하고 파일로 export 시켜준다.

 

 


3. MySQL data import

이제 새로 생성한 RDS를 workbench에 연결 시키고 export와 비슷하게 

Server -> data import 를 선택해준다.

아까 저장했던 파일 디렉토리를 통해 파일을 가져오고 import를 하게되면

 

 

안.된.다.

 

권한오류가 나는데 이를 고치려면 아까 저장했던 sql파일의 몇 부분들을 수정해야한다.

super권한을 줘야하지만 aws에서 관리하는 권한이라고 한다.

 

이 4줄을 없애주어야 한다.

나는 쫄보라서 주석처리했다.

 

처음 세개는 문서 앞단에서 찾아볼 수 있지만 마지막껀 꽤나 밑에 있다

(내 경우이는 700줄대에 있었다...)

 

사실 하나씩 처리하다보면 어디서 오류가 나는지 알 수 있고 workbench에서 친절하게 라인 수도 알려준다.

 

 

위의 처리를 하고 나면 정상적으로 import 가 수행된다.

 


4. 기존의 RDS 삭제

 

증오의 개발용 RDS를 삭제하자!!!!!!

 

 

AWS에 과금한 돈이 제법 되는데,,,

큰 금액들 아니지만 실제 돈이 빠져나가니 문제를 해결할 때마다 뼈 깊이 이해하면서 넘어가는 것 같다....

AWS 유료 강의 들었다고 생각하자....☺️