오늘 Parse.com으로 부터 아래와 같은 메일을 한장 받았다.
“We’re happy to announce that we’ve partnered with MongoLab and ObjectRocket to give you a discount on database hosting. Both companies have deep experience in helping Parse customers migrate to a fully managed MongoDB solution, and are the perfect partner for scaling your app. You’ll need to act fast, as both these discounts are only valid if you start in the next 30 days.“
내용인 즉슨 Parse 서버에 있는 데이터를 MongoLab 이나 ObjectRocket 클라우드 서비스로 마이그레이션을 하라는 얘기였다. 그리고 지금부터 한달안에 마이그레이션하면 디스카운트 해준다고… ㅎㅎㅎ 나는 이 디스카운트에 낚여서 오늘 본의 아니게 미뤄뒀던 알리브로 마이그레이션 작업을 하게됐다.
Parse.com 서버 마이그레이션
마이그레이션에 대한 자세한 내용은 공식 가이드 문서를 참고하면 되는데 사실 영어라 눈에 잘 들어오지도 않고 처음 파스닷컴 문 닫는다고 발표했을때 살짝쿵 멘붕이라 주의깊게 읽어보지도 않았다. 좌우지간 오늘은 가이드에서 얘기하는 첫번째 스탭을 밟아보겠다.
1. DB 마이그레이션를 위한 준비
공식 가이드 문서를 열어보면 제일 먼저 눈에 들어오는게 아래와 같은 그림이다.
여기서 파스닷컴의 현재상황은 Step 0으로 표현된다. 무슨 말인고하니 파스닷컴은 API 서버 역할 뿐만 아니라 “Parse Hosted DB” 라고 표시된 DB 서버를 가지고 있었다는 얘기다. 그래서 첫번째 DB 마이그레이션 단계가 바로 이 파스닷컴에서 서비스 해주던 DB를 딴데로 옮기라는 뜻이다.
그래서 처음엔 어디로 옮겨야되나? 막막했다. 막막함에 일단 그림에 나와 있는데로 아무생각없이 내 로컬 PC에 MongoDB를 설치했다. 그리고 파스닷컴의 API 서버가 내 몽고디비를 바라보도록 하면 되는건가? 싶었는데, 그러면 내 로컬PC가 항상 켜져있어야된다. 어랏! 그럼 안되지!! 처음 가이드 문서를 대충읽었을때 여기서 막혀버렸다. 도대체 어쩌라는 건지.. ㅎㅎㅎ
오늘 다시 읽어보니 그림에서 “Self Hosted” DB는 로컬에 MongoDB를 설치하라는 얘기가 아니라 파스닷컴에서 서비스하던 데이터를 니가 책임져라! 라는 뜻이었다. 즉, 몽고랩이나 오브젝트로켓 같은 클라우드 서비스로 옮기라는 뜻이다. 파스닷컴은 몽고랩이 샌드박스 하나는 공짜니까 몽고랩을 추천한것 같다. 여튼 2~3년전에 한번 가입한거 같았는데 계정을 잃어버려서 새로 만들었다.
2 몽고랩(MongoLab) 계정 만들기
몽고랩은 500MB 짜리 샌드박스 하나를 무료로 만들수있다. 이 샌드박스에 데이터베이스를 만들고 Users 탭에서 유저를 하나 생성한다. 그러면 아래와 같은 명령어로 몽고랩 DB 서버에 접속해서 Shell 명령어로 조회를 해볼수있다. 참고로 내가 만든 데이터베이스 이름은 rlibro 다.
$> mongo ds015878.mongolab.com:15878/rlibro -u <dbuser> -p <dbpassword>
쉘로 접속할때는 위와 같은 명령어를 쓰지만 프로그램에서 데이터를 조작할때는 아래와 같은 MongoDB URI를 이용한다.
$> mongodb://<dbuser>:<dbpassword>@ds015878.mongolab.com:15878/rlibro
3. 파스닷컴(Parse.com) DB를 몽고랩에 마이그레이션하기
이제 가이드 문서의 그림처럼 Step1을 진행해보자. 파스닷컴 대쉬보드로 가서 App Settings > General 메뉴에서 Migrate 버튼을 클릭한다.
그림처럼 몽고랩 URI를 넣어주고 마이그레이션을 시작하면 파스닷컴의 모든 데이터를 몽고랩 DB로 싱크시켜준다. 그리고 Finalize 버튼을 클릭하면 더이상 파스닷컴 서버의 DB를 사용하지 않고 몽고랩 서버의 DB를 사용하게 된다. 즉 아래 그림처럼 된다.
여기까지가 파스닷컴에서 메일로 노티까지 해가면 마이그레이션하라는 첫번째 단계가 되겠다. 다음 단계는 파스닷컴의 API 서버를 대체해줄 Parse-Server를 로컬에 설치해서 몽고랩 DB와 연결하는 단계다. 이건 다음에 정리~!!
참고 및 이미지 출처
- https://github.com/ParsePlatform/parse-server/wiki/Migrating-an-Existing-Parse-App
- https://learnappmaking.com/how-to-migrate-parse-app-parse-server-heroku-mongolab/