Amazon quick start를 이용해 30분만에 Mongodb 구성하기 (Construct Mongodb through Amazon quick start in 30 minutes)
안녕하세요.
이번 시간에는 AWS에서 무료로 제공되는 서비스인 amazon quick start를 이용하여 mongodb를 구성한 경험을 공유하고 합니다.
현재 이보다 더 편하게 사용할 수 있는 Mongodb atlas라는 DaaS 서비스가 있긴 하지만, 비용적인 문제와 mongodb가 실행되고 있는 instance로의 직접 접근이 제한되어 있습니다. 그래서 적당한 선(?)에서 개발자가 튜닝할 수 있는 환경을 구성할 순 없을까, 찾아보다가 이렇게 amazon quick start를 통해 무려 30분(사실 configuration setting 때문에 실 사용까지는 훨씬 오래 걸렸습니다만... 일단 뜨는 시간은 15분 ^^;) 만에 구성할 수 있었습니다.
1. 먼저 https://docs.aws.amazon.com/ko_kr/quickstart/latest/mongodb/welcome.html 에 접속합니다.
그러면 위와 같은 화면이 나오게 되는데요. 추가적으로 좌측 메뉴의 개요나 아키텍쳐를 통해 어떤식으로 db가 구축되는지 파악할 수 있습니다. 기본적으로 PSS 구조 (Primary - Secondary - Secondary)로 구성이 되며, 인스턴스 유형이나 스토리지는 어떻게 정해야되는지 등도 알 수 있습니다.
2. https://docs.aws.amazon.com/ko_kr/quickstart/latest/mongodb/deployment.html 에 접속(또는 1.에서 좌측 배포 단계 메뉴 클릭)합니다.
본격적으로 시작하기에 앞서 AWS 계정이 없으신 분은 계정을 생성하셔야 합니다. (단계 1.) 여기에서는 가입은 되어 있는 상태를 가정하고 바로 진행하도록 하겠습니다. 단계 2. 퀵 스타트 시작을 누릅니다.
3. vpc(virtual private network)를 새로 생성할지, 아니면 기존의 vpc를 활용할지에 따라 launch option이 나뉘어지는데요. 여기에서는 새로운 vpc로 띄우는걸 기준으로 진행해보도록 하겠습니다. 옵션 1의 파란 박스를 선택합니다.
4. 이제 aws에서 제공하는 template 기반으로 서비스를 쉽게 시작할 수 있는 cloudformation으로 들어오게 됩니다. amazon quick start 에서 이미 만들어져 제공되는 MongoDB image template이 있으며, 실질적으로 이를 이용해 빠르고 쉽게 MongoDB를 구성할 수 있게 됩니다. 다음을 눌러 스택 세부 정보 지정으로 넘어갑니다.
5. 다음과 유사한 형태로 구성하고자 하는 스택의 세부 정보를 지정해줍니다. 각 설정값이 무엇인지, 어떻게 설정해야 될지 모르겠다면 단계 2. 퀵 스타트 시작 (https://docs.aws.amazon.com/ko_kr/quickstart/latest/mongodb/step2.html) 에서 도움을 얻을 수 있으니, 참고하시고 진행하시면 됩니다.
6. 나머지 스택 옵션 구성을 하고, 검토 단계에서 하단에 IAM 리소스 관련 승인을 해주고 난 뒤에, 스택 생성을 눌러줍니다.
7. 최종적으로 이렇게 cloudformation에서 stack을 구성하는 event가 마무리되면 mongodb 구성은 끝입니다.
replicaSet(Primary or Secondary) 중 아무 인스턴스에 접속해서 'mongo'를 쳐서 접속하면 정상적으로 띄워져 있음을 확인 할 수 있습니다.
이상으로 Amazon quick start를 이용해 MongoDB를 구성하고 배포해보았습니다. 서문에서 언급했다시피 실제로 사용하려면 서비스에 알맞는 여러가지 configuration을 별도로 지정해줘야 하는데, 이를 감안하면 quick start를 이용한 방식은 그다지 좋은 방식은 아닙니다. 더불어 처리하는 데이터가 많아졌을 때 sharding을 이용한 scale out도 힘들다는 단점이 있죠.
이와 관련된 더 좋은 방법으로는 dockerized image를 이용해서 jenkins나 aws codedeploy와 같은 배포 도구를 이용해 일괄적으로 구성하는 방법이 있을 것입니다. 하지만 처음 MongoDB replica set을 구성하거나, 실 서비스를 위한 configuration이 아직 정립된 것이 없다면 굳이 docker나 배포 도구까지 이용하는 것 보다 aws quick start를 이용해서 말 그대로 quick하게 시작해보는 것은 충분히 좋은 선택이라고 생각합니다.
감사합니다.