DB를 쓸지, Storage를 쓸지에 대한 판단 기준은 1회 저장할 때, 데이터가 1MB가 넘는지이다.
넘을경우, Storage를 고려해야 한다.
1. Realtime Database
- Key-Value DB같으면서도, Json 트리형태로 저장한다.
- 2개 이상의 장비에서 빠른 동기화가 필요한 경우에 사용하기 적합
- 다운로드 용량에 따른 가격정책
- 저장비용
- 1GB 무료, 1기가당 $5 (1회인지 월별인지 모르겠다)
- 네트워크
- 매월 10G 무료, 이후 1G당 $1
- 리소스가 넘어가면 리소스 추가사용 불능, 요금제 이동 필요
- 동시 쓰기요청 초당 10만개
- 기타 제약사항
- 유저 한명이 10만개 데이터에 대해 요청시, 해당요청을 처리할 때까지 DB자체가 다운될 수 있다.
- 상위 노드를 읽으면 하위 노드도 무조건 읽힌다.
- 따라서 한 노드 내에 1000개 이상의 노드가 포함되지 않도록 구성하는게 좋다.
- 따라서 데이터 구조의 평면화가 필요하다.
- 유저가 많아질 경우, 반드시 샤딩을 해야한다.
- 한번에 쓸 수 있는 이벤트 크기 1M
1MB를 초과해서 쓸 수 도 있으나, 이 경우 콜백은 일어나지 않음.
- 동시사용자 기본 100에서, 요금제 올리면 20만개.
2. Cloud Firestore
- MongoDB와 같은 document DB
- Json Document 형태로 저장
아래 조건은 지역별로 가격이 조금씩 다르다.
- 저장비용
- 네트워크
- 다운로드: 매월 10GB 무료, 이후 1GB당 $0.19 ~ 0.15
- 작업비용 (횟수에 따른 가격정책)
- 읽기: 일 5만회 무료, 이후 문서 10만개당 $0.038
- 쓰기: 일 2만회 무료, 이후 문서 10만개당 $0.115
- 삭제: 일 2만회 무료, 이후 문서 10만개당 $0.013
- 기타 제약사항
- 문서 최대크기 1MB
- 최대 심도 20
- 문서쓰기시간 초당 1개 (색인시 초당 500개), 초과시 지연발생
- 실시간 최대 동시연결수 100만개(초과시 지연발생)
- 프로젝트 당 여러 데이터베이스 불가
- https://cloud.google.com/firestore/quotas?hl=ko
3. Cloud Storage
DB가 아닌 "파일"을 저장하는 스토리지, AWS의 S3와 비교대상
- 저장비용
- 5GB 무료, 이후 GB당 $0.026 (이것도 월인지 1회인지..)
- 네트워크
- 다운로드 크기: 일일 1GB 무료, 이후 GB당 $0.12
- 작업비용
- 쓰기: 일일 2만회 무료, 이후 1만회당 $0.05
- 읽기: 일일 5만회 무료, 이후 1만회당 $0.004
- 기타 제약사항
요약
Realtime DB
유저의 프로필이나 장바구니같이,
작은 데이터를, 많이 읽기/쓰기 해야할 때 적합하다.
고도의 빠른 동기화가 필요한 경우에 적합하다.
FireStore
sns 글 하나, 블로그 글 하나 같이,
적당한 량에, 적당히 빠르게, 읽기/쓰기 할 때 적합하다.
Cloud Storage
동영상, 이미지 혹은 유저의 전체 데이터 백업 등, 큰 파일의 경우.
큰 데이터를, 적은 횟수로 읽기/쓰기 할 때 적합하다.
와 정리 깔끔하게 정말 감사합니다.