반응형
최근 학부연구생으로 활동하고 있는 연구실에 모니터링 앱 제작팀에 합류하게 되었다. 안드로이드 개발자 한분에서 작업하시다가 인수인계를 받았는데, todo list 1순위가 데이터 저장 서버구축에 관한 내용이였다.
FireBase cloud database 사용을 후보에 두고 계시던데, FireBase를 다뤄본적이 없어 FireBase에 대해 조사해본 후 사용하기 적합한지, 적합하지 않은지 판단해보려고 한다. 적합하지 않다면 어떤 db를 사용하면 좋을지 알아보려고 한다.
간략한 요구사항
- 기기 하나당 1초당 70회 정도의 데이터가 생성되며 데이터의 크기가 (8bit) 크지 않다.
- 24시간 기준으로 계산을 해보면 24 * 60 * 60 * 70 = 약 600만개의 데이터가 생성된다.
- 꼭 건건히 요청하지 않아도 되고 chunk 단위로 묶어서 전송하는 것도 가능하다.
- 기기가 항상 인터넷에 연결되어 있는 상황이 아니다.
FireBase의 장점
- server less 이기 때문에, 서버 개발에 대한 지식이 없어도 비교적 쉽게 사용 할 수 있다.
- 사용량이 적을때는 무료로 사용 할 수 있다. (전체 데이터량 50GB 미만)
FireBase의 단점
- 유료, 무료에 상관없이 FireBase 데이터베이스 서버 위치에 따라 속도지연이 빈번하게 발생함. (한국의 데이터베이스 서버를 사용하고 있을때, 미국에서 앱을 사용한다면 속도지연이 발생함.)
- 기본적으로 FireBase에서는 색인(index)를 사용하지 않고, 하나의 쿼리를 실행할때 문서 전체를 load하기 때문에 대용량 데이터를 처리하는데 적합하지 않다.
- 무료 사용량을 초과하는 경우 다른 데이터베이스 사용량에 비하여 비싼편이라고 함.
FireBase에 대한 생각 정리
- 기본적으로 클라우드 기반의 데이터베이스는 저장된 data 용량 뿐만 아니라 트랜잭션 단위(insert, select, update...) 등등 마다도 과금이 되기 때문에 데이터크기가 크거나 요청수가 많을 경우에 사용하기 적합하지 않을 것 같다.
- 클라우드 서버를 구축하고, 클라우드 서버에 온프레미스로 구축할 수 있는 db를 사용하는 것이 현명할 듯 하다.
- 다만, 해당 프로젝트 끝나고 상용단계에서 유지보수가 필요 할 경우 앱개발자, 서버개발자(특히 클라우드, 해당db에 지식이 있는)가 요구된다.
시계열 데이터베이스 사용시 얻을 수 있는 이점
- 특정 주기마다 측정되는 시계열데이터를 다루는데 최적화되어있다.
- 데이터가 저장되는 기간(유효기간)을 쉽게 설정 할 수 있다.
- 대부분 시각화 할 수 있는 툴을 제공하여 큰 노력 없이 시각화 할 수 있다.
시계열 데이터 db
경험이 많으신 개발자분들께 위 요구사항을 어느정도 말씀 드린후 조언을 구하여 아래 3가지 db를 추천받았다.
- influx db : 시계형 nosql db
- timescale db : 시계열 관계형 db
- mongo db + 샤딩 : nosql db (지인이 근무하는 모 대기업에서 사용하고 있음. 하루 약 100GB, 총 100TB이상 관리)
밴치마크 비교 사이트
( timescale, influx 사에서 직접 측정한 것 이기때문에 어느정도 주관이 포함되었을 수도 있음에 유의)
시계열 데이터 db에 대한 생각 정리
- 관계형데이터 베이스, SQL 문법에 익숙한 나로써는 timescale db를 사용하는 것이 가장 빠르게 도입할 수 있을 것 같다고 생각했다.
- 그런데 밴치마크 성능도 timescale db가 가장 우수하게 나타났다.
- 다만 2017년도에 새롭게 개발된 db이기 때문에, 한국어 래퍼런스 자료가 많지 않을 것 같다.
- 삼성, 보쉬, IBM, 지맨스, 등등 큰 회사들이 사용하고 있는 걸로 보아 괜찮은 db인 것 같긴하다.
timescale db 클라우드
- timesacal db도 클라우드 서비스를 제공하고 있다.
- aws, gcp, azure 3개 중에 선택하여 사용 할 수 있다.
- grafana와 쉽게 연동해서 사용 할 수 있는 서비스도 제공하는 것 같다.
- 2core CPU, 4GB RAM, 20GB STORAGE 개발서버 기준 한달에 약 15000원 정도의 금액으로 이용가능하다. (aws ec2 프리티어 서버 띄워놓는거랑 비슷하게 나오는 것 같다.)
반응형
'기타 > 연구실 프로젝트' 카테고리의 다른 글
[timescale db] Mac 타임스케일 디비 설치하기 (1) | 2021.03.23 |
---|