본문 바로가기

Archive/GCP

[GCP] Cloud SQL과 Other DB들

반응형

그동안 GCP에 대한 이론공부에만 몰두하느라 최근 일주일 간 블로그 포스팅을 하지 못했다.. 어느정도 진도를 나갔기 때문에 그동안 공부했던 내용을 복습하는 차원에서 다시 순차적으로 포스팅해보려 한다.

 

저번시간에 포스팅한 내용은 GCS(Google Cloud Storage)에 관한 내용이였다. GCS는 Unstructured data(비정형 데이터)에 적합한 클라우드 서비스였다. 이번에 포스팅할 내용들은 Cloud SQL과 기타 다른 DB(데이터베이스)들에 대한 내용이다. 여기서 다른 DB란, Cloud Spanner, Cloud Firestore, Cloud Bigtable, Cloud Memorystore을 말한다. 뿐만 아니라 앞으로 이 포스팅에서 등장하는 서비스들은 모두 Structured Data(정형화된 데이터)에 적합한 것임을 기억하자!

 

<Cloud SQL>

1. 정의 : Cloud SQL에는 크게 두 가지가 존재하는데 Cloud MySQLCloud PostgreSQL을 제공하고 있다. 말 그대로 Relational(관계형) DBMS인 MySQL과 PostgreSQL을 GCP에서 유지하고 관리해주는 완전 관리형(Fully-managed) 데이터베이스 서비스이다.

 

따라서 MySQL과 PostgreSQL에 대해서 각각 알아보자. 각자 많은 특징들이 있지만 개인적으로 서로 두개의 공통점보다는 차이점을 위주로 특징을 정리하였다.

 

2. 종류

ㄱ. MySQL

     - 20년 1월 30일부로 2세대 인스턴스만 지원하며 필요에 따라 레퍼지토리 크기가 자동으로 증가하는 옵션 제공

     - CSV 형태의 파일을 가져오거나 내보내기가 가능

     - 자동 백업 및 특정시점 복구가 가능

     - 사용자가 정의하는 함수를 사용 불가

MySQL

ㄴ. PostgreSQL

     - 객체관계형 DB이기 때문에 사용자가 임의로 만들 수 있음

     - 특정 시점 복구 불가

     - CSV 형태의 파일을 가져오거나 내보내기가 불가능

PostgreSQL

 

이번엔 기타 다른 데이터베이스들의 특징들에 대해서 알아보자.

<Other DB들>

1.Cloud Spanner

- Horizontal Scalability(수평적 확장 = Scale out = 서버를 추가)이 필요할 때 사용) -> 따라서, 관계형 DB의 장점과 비관계형(Non-relational) DB의 수평적 확장 두개의 장점을 결합한 것이다.

  # Vertical Scalability(수직적 확장 = Scale up = 서버를 더 좋은 H/W로 바꾸거나 CPU, RAM, DISK등을 증설)을 말한다.

- Use case : 소매산업에서 Financial app이나 Inventory(재고) app을 개발할 때 유용

- 스키마가 있고 SQL 지원, 강한 일관성(Consistency), 높은 가용성, 수평적 확장, 자동 복제(호스트 컴퓨터에서 다른 컴퓨터로 복사) 지원

 

2.Cloud Firestore ( ** Severless )

- 매우 확장이 가능한 NoSQL DB가 필요할 때 적합

- 데이터를 저장하고 동기화(sync)하고 쿼리하는 것을 쉽게 단순화 시켜줌

- Live synchronization(동기화)와 오프라인을 지원

- 보안의 특징이 있음

- ACID 트랜젝션 준수

- Multi-Region Replication(복제)

- Powerful Query engine 장착

- Use case : 전역(Global scale)로 Mobile, Web, IoT(사물인터넷) App 개발시 적합

- Mode(모드)가 2종류가 있는데 사실 Native Mode = Datastore Mode의 upgrade 버젼이라고 보면 된다.

  • Datastore Mode : 데이터스토어 App과 호환이되고 강한 일관성을 지니고 entity 그룹에 대한 제한이 없다. 
  • Native Mode : 매우 일관적인 Storage layer이 있으며 Collection&Document data model이 있다. 그리고 실시간(Real-time)업데이트가 가능하고 Mobile과 Web app들을 개발하는데 Datastore Mode보다 적합하다.

Firestore을 선택하는 과정

3.Cloud Bigtable ( 데이터의 Process 단계에 적합한 서비스이며 Apache와 통합됨 )

- 트랜잭션 일관성이 필요 없을 때 이용 

- 낮은 지연(latency)시간으로 높은 읽기, 쓰기 처리량을 지원하며 맵리듀스 작업에 적합

   #맵리듀스 : 구글에서 대용량 데이터 처리를 분산 병렬 컴퓨팅에서 처리하기 위한 목적으로 제작한 소프트웨어 프레임워크

- 좋은 확장성 : 클러스터를 계속 확장해 많은 읽기, 쓰기 처리 가능

- 간단한 관리 : 데이터 복제시 2번째 인스턴스에 추가만 하면 자동 복제

- Downtime 없이 클러스터 크기 조절 가능

  #Downtime : 시스템을 이용할 수 없는 시간

- Use case : 구조화 되지 않은 Key-Value 데이터에 매우 높은 처리량, 확장에 필요한 app에 적합

  • 시계열 데이터 - 다양한 서버 CPU, 메모리 사용량
  • 마케팅 데이터 - 구매 내역 및 고객 선호도
  • 재무 데이터 - 거래내역, 주식 가격, 통화 환율
  • 사물 인터넷 데이터 - 에너지 측정기, 가전제품 사용량 보고서
  • 그래프 데이터 - 사용자들이 서로 연결되는 방법에 대한 정보

- 하둡, Cloud Dataflow, Dataproc과 통합 가능, HbaseAPI(Apache)도 지원

- Familiy Column 기능 제공, 저장된 데이터가 어떻게 바뀌는지 기록을 담는 타임스태프 기능 제공

 

Bigtable를 선택하는 과정

 

4.Cloud MemoryStore

- Use case : 신속히 실시간으로 데이터를 처리하는 사례를 위한 신속한 인메모리 저장소 제공

- 간단한 캐싱 사용부터 실시간 분석까지 필요한 성능 제공

- 높은 가용성, 장애조치(Failover), 패칭, 모니터링 업무 자동화

 

Cloud Memorystore의 특징들(eng.ver)

 

 

 

반응형