Storage 옵션 비교

storage options

Cloud Datastore

수평으로 확장 가능한 NoSQL DB

  • 유형 :  NoSQL 문서
  • 트랜잭션 : Yes (ACID 트랜잭션 지원)
  • 복잡한 쿼리 : No (SQL과 유사한 쿼리)
  • 용량 : 테라바이트 이상
  • 단위 크기 : 1MB/항목
  • 권장 용도
    • 반구조화(Semi-Structure) 애플리케이션 데이터
    • 내구성 높은 key-value 데이터
  • 사용 사례
    • 입문용
    • App Engine
  • 기타 설명
    • 완전 관리형(분산 아키텍처를 사용해 확장을 자동 관리)
    • 내장형 중복 가능
    • 스키마 없는 액세스 (기본 데이터 구조를 고려할 필요 없음)
    • 로컬 개발 도구
    • 무료 일일 할당량 포함
    • RESTful 인터페이스를 통해 어디서나 액세스

Bigtable

관리형 NoSQL

  • 키워드 : 구조화된, SQL쿼리를 지원하지 않는, 금융
  • 유형 : NoSQL 광역폭
  • 트랜잭션 : 단일 행
  • 복잡한 쿼리 : X
  • 용량 : 페타바이트
  • 단위 : ~10MB/cell, ~100MB/row
  • 권장 용도
    • “Flat” 데이터
    • 집중적인 읽기/쓰기
    • 이벤트
    • 분석적 데이터
  • 사용 예시 : 광고, 금융, IoT 데이터
  • 기타 설명
    • 복제 스토리지
    • 가동 여부와 관계 없이 상시 데이터 암호화
    • 역할 기반 ACL
    • 구글 애널리틱스, G메일 등의 주요 애플리케이션 실행
  • Bigtable 엑세스 패턴
    • 애플리케이션 API
    • 스트리밍
    • 일괄 처리

Cloud Storage

BLOB(binary large-object) 스토리지

  • 키워드 : 불변 blob 이미지, 페타바이트의 용량
  • 유형 : Blobstore
  • 트랜잭션 : X 
  • 복잡한 쿼리 : X 
  • 용량 : 페타바인트 이상
  • 단위 : 5TB/object
  • 권장 용도
    • 구조화 or 구조화되지 않은 바이너리
    • 객체 데이터
  • 사용 예시
    • 이미지, 대용량 미디어 파일
    • 백업
  • 기타 설명
    • 고성능, 인터넷 규모
    • 용량을 관리할 필요가 없음
    • 저장 데이터 암호화
    • 데이터를 Storage로 가져오는 여러가지 방법
      • 온라인 전송(CLI, 드래그앤드롭)
      • Storage Transfer Service(일정에 따른관리형 일괄 전송)
      • Transfer Appliance
    • 다른 GCP 제품들과 호환
      • BigQuery : 테이블 가져오기 및 내보내기
      • Cloud SQL : 테이블 가져오기 및 내보내기
      • App Engine : 객체 스토리지, 로그, Datastore, 백업
      • Compute Engine : 시작 스크립트, 이미지, 일반 객체 스토리지

Cloud SQL

관리형 RDBMS

  • 키워드 : 트랜잭션, SQL, 테라바이트
  • 유형 : OLTP용 관계형 SQL
  • 트랜잭션 : Yes
  • 복잡한 쿼리 : O
  • 용량 : 테라바이트
  • 단위 : DB엔진에 의해 결정됨
  • 권장 용도 : 웹 프레임워크, 기존 애플리케이션
  • 사용 예시 : 사용자 신용정보, 고객 주문
  • 기타 설명 : 
    • MySQL 및 PostgreSQL 데이터베이스를 서비스로 제공
    • 자동 복제
    • 관리형 백업
    • 수직 확장(읽기 및 쓰기) 및 수평 확장(읽기)
    • 다른 GCP 제품과 호환
      • App Engine : App Engine 애플리케이션을 따르도록 Cloud SQL 인스턴스를 구성 가능
      • Compute Engine : Cloud SQL 인스턴스를 선호 영역에 구성할 수 있음
      • 외부 서비스 : 표준 도구를 사용하여 데이터베이스를 관리할 수 있음

Cloud Spanner

수평으로 확장 가능한 RDBMS

  • 키워드 : 트랜잭션, SQL, 페타바이트, 수평적 확장성 ⇒ Cloud SQL 보다 크다!
  • 유형 : OLTP용 관계형 SQL
  • 트랜잭션 : Yes
  • 복잡한 쿼리 : O
  • 용량 : 페타바이트
  • 단위 : 10,240MiB/row 
  • 권장 용도 : 대규모 데이터베이스 애플리케이션(약 2TB 이상)
  • 사용 예시 : 높은 I/O, 글로벌한 일관성이 필요할 때마다
  • 기타 설명
    • 수평적 확장성이 필요하기 때문에, Cloud SQL이 요구 사항에 안 맞으면 Cloud Spanner를 사용하는 게 좋다.

BigQuery

확장성 뛰어나고, 비용 효율적인, 서버리스 클라우드 데이터 웨어하우스

  • 키워드 : 서버리스, 대화형 쿼리, 오프라인 분석
  • 유형 : OLTP용 관계형 SQL
  • 트랜잭션 : No
  • 복잡한 쿼리 : O
  • 용량 : 페타바이트
  • 단위 : 10MB/row
  • 권장 용도 : 대화형 쿼리, 오프라인 분석
  • 사용 예시 : 데이터 웨어하우징
  • 기타 설명 : 
    • 완전관리형
    • SQL 인터페이스
    • 빠른 속도(구글 인프라의 처리능력을 사용하기 때문)
    • 프리티어

Decisioin Tree

Storage Decision Tree