Public Cloud에서 사용되고 있는 NoSQL 데이터베이스 종류와 간단한 특징을 알아보자.
추가로 설명하는 부분들은 아무래도 개인적인 의견이고, 주니어 개발자의 관점이기 때문에 틀린 부분이 있을 수 있습니다. 잘못된 정보가 있다면 언제든 댓글 남겨주시면 감사하겠습니다!😄
대표인 퍼블릭클라우드 3사 Amazon DaynamoDB, Azure Cosmos DB, Google Cloud Firestore 를 비교해봅시다.
Amazon DynamoDB
DB관리와 분산되어있는 데이터베이스 클러스터를 저렴한 가격에 스케일링 할 수 있습니다.
DB를 운영하는데 드는 시간이 절약된다는 점과 NoSQL의 장점으로 꼽았던 스케일아웃을 자유롭게 할 수 있다는 의미 같네요.
Azure Cosmos DB
NoSQL 매니징 풀패키지 서비스. 빠른 시간에 구축하고 예측가능한 퍼포먼스를 보여주며, 고사용성, 유연한 스케일링, 전세계 분산망, 쉬운 개발 등을 장점으로 꼽네요.
서비스 프로그램을 많이 만들어본 Microsoft의 노하우를 담아 포장을 예쁘게 잘 해두었다는 말로 들리네요. 직접 써봐야 그런 점을 더 느낄 수 있을 것 같습니다.
Google Cloud Firestore
NoSQL document database. 모바일과 웹앱용 쿼리 데이터를 글로벌 스케일로 손쉽게 저장하고 동기화할 수 있게 도와줍니다.
구글이 만드는 모든 서비스들이 그렇듯이, 굉장히 제공하는 서비스가 심플하면서도 기능면에서도 만족스러웠습니다. 토이 프로젝트를 하면서 써본 결과, 적용하기는 쉬운데 사용량이 많아질 경우 과금이 급격히 늘어나는 점이 있더라구요. 서비스 만들기 위해서 좀 많이(?) 테스트를 하다보니 어느새 무료 제공량을 초과해 막혔던 경험이 기억나네요.
개발자들 설문조사를 바탕으로 비교해보면...
AWS DynamoDB의 경우 AWS의 대표적인 고객사인 Netflix에서 열심히 사용하고 있고, Medium이나 Amazon 등 비교적 우리가 익숙한 회사들이 보이는 것을 보면 일반 사용자들을 대상으로하는 웹 서비스에서 많이 사용하고 있는 듯 보이네요. MySQL이나 PostgreSQL 같이 RDBMS와도 연동이 잘 되어있는 것을 보면 SQL와 NoSQL을 통합해서 적절히 활용해야하는 대규모 회사들에게 매력적으로 보일듯 합니다.
Cosmos DB의 경우 Best-of-breed라는 표현이 들어있는데요, 통합시스템이 아닌 특정한 시스템에 딱 맞게 제작되어진 품종이라는 뜻이에요. NoSQL을 활용하기 가장 편하게 만들어뒀다는 의미가 아닐까요? 선택한 이유들만 살펴보면 아무래도 뭔가 불편한 부분들을 알아서 척척 자동화해주고, 가려운 부분을 긁어주는 서비스를 제공하고 있는 것 같네요. 자사 클라우드인 Azure와 당연히 연동이 될 것이고, 기업들이 대표적으로 많이 사용하고 있는 Java, Node.js, MongoDB, Hadoop 등과 연동되는 것을 보면 어느정도 규모가 있는 기업들에게도 충분히 매력적인 서비스를 제공하고 있나 봅니다.
Cloud FireStore는 통합해서 사용할 수 있는 툴들에서 개발 언어가 압도적으로 많이 보이네요. 개발자를 위해 만들었다는 냄새가 풀풀 풍기는 것을 느낄 수 있습니다... 😅
전세계를 대상으로 축구 선수 AI 분석 서비스를 제공하고 있는 한국 스타트업 Bepro도 보이네요! 반갑네요.
주니어 개발자로서 뭔가 실험해보기에는 Cloud FireStore가 친근하게 느껴집니다만,
고객사들은 클라우드 시장에서 압도인 점유율을 자랑하는 AWS 서비스를 많이 이용하고 있을테니 DynamoDB도 살펴볼 필요가 있겠네요. CosmosDB는 직접 기업에 적용해서 유지보수하고 있는 엔지니어가 아니라면 제대로 활용해볼 수 있을지(?) 아직까지는 의문입니다.
대체할 수 있는 제품들?
Google Cloud Datastore
비관계형데이터를 저장하고 관리하는 NoSQL, 스키마없는 데이터베이스를 지원합니다. 필요시 자동으로 확장되며 강력한 SQL같은 쿼리 뿐만 아니라 트렌잭션을 지원합니다.
MongoDB
MongoDB는 JSON이랑 비슷한 형태의 documents 타입의 구조적이고 역동적이면서 동시에 유연한 스키마를 제공합니다. MongoDB 역시 사용하기 쉽고 확장 가능하고, 복사와 자동 분산(auto-sharding) 기능을 제공합니다.
Amazon SimpleDB
개발자는 웹 서비스 요청을 통해 데이터 항목을 저장하고 쿼리하고 나머지는 Amazon SimpleDB가 처리합니다. Amazon SimpleDB는 자동으로분산된 데이터 복제본을 생성 및 관리하며, 고가용성 및 데이터 내구성을 가능하게 합니다. Amazon SimpleDB는 여러 데이터 세트를 생성 및 저장하고 데이터를 쉽게 쿼리하며 결과를 반환할 수 있는 간단한 웹 서비스 인터페이스를 제공합니다. 데이터는 자동으로 인덱싱되므로 필요한 정보를 쉽게 찾을 수 있고, 나중에 새로운 데이터가 추가되면 스키마를 미리 정의하거나 스키마를 변경할 필요가 없습니다. 그리고 스케일아웃은 새로운 서버를 구축하기 보다는 새로운 도메인을 만드는 것만큼 간단하죠.
아니..다 똑같은 이야기 아닌가? 쨌든 개발자들이 간단하게 테스트할 수 있는 간단한 DB도 제공한다! 같네요.
MySQL
말하지 않아도 대부분 알겠죠... SQL 데이터베이스 서버의 대표주자니까요.
Amazon S3
AWS에서는 "어디서나 원하는 양의 데이터를 저장하고 검색할 수 있도록 구축된 객체 스토리지" 라고 정의합니다.
Reference
- Stackshare, NoSQL Database as a Service
'📒 Tech Note > DB' 카테고리의 다른 글
[SQL] 문자열 합치기 (CONCAT 함수) (0) | 2020.08.02 |
---|---|
NOSQL이랑 친해지기 - MongoDB Compass 실습 (5/5) (0) | 2020.07.14 |
NOSQL이랑 친해지기 - MongoDB 설치 및 환경설정 (4/5) (0) | 2020.07.14 |
NOSQL이랑 친해지기 - SQL과 NoSQL를 비교해보자 (2/5) (0) | 2020.07.14 |
NoSQL이랑 친해지기 - 개념 이해하기 (1/5) (0) | 2020.07.14 |