< Cloud Storage, Datastore, Cloud Bigtable, Cloud SQL, and Cloud Spanner >
Google Cloud provides a full suite of storage service options
Google Cloud는 전체 스토리지 서비스 옵션 제품군을 제공함
- Google Cloud로 개발할 때 선택할 수 있는 비용 효율적인 스토리지 서비스의 전체 제품군이 있음 :
- 모든 사람에게 맞는 크기는 없으며, 스토리지 및 데이터베이스 솔루션 선택은 애플리케이션과 워크로드에 따라 달라짐
Cloud Storage
클라우드 스토리지
- Cloud Storage는 데이터를 제공, 분석 및 보관할 수 있는 개발자 및 기업용 통합 개체 스토리지 :
- 데이터의 일부를 검색하기 위한 범위가 지정된 GETS를 포함하여 HTTP 요청을 통해 개체에 액세스함
- 유일한 키는 개체 이름
- 객체 메타데이터가 있지만 객체 자체는 구조가 없는 바이트로만 취급
- 시스템 규모로 인해 정적 콘텐츠를 제공하거나 사진 및 비디오와 같은 사용자 업로드 콘텐츠를 수락할 수 있음
- Cloud Storage는 가용성, 내구성, 확장성, 일관성을 위해 구축되었음
- 이미지와 비디오, 개체와 얼룩, 구조화되지 않은 데이터를 저장하는 데 이상적인 솔루션 (다양한 유형의 데이터 저장 가능)
Firestore in native mode
기본 모드의 Firestore
- Firestore는 자동 확장, 고성능 및 손쉬운 애플리케이션 개발을 위해 구축된
빠르고 완전 관리되는 서버리스 NoSQL 문서 데이터베이스 :
- 확장을 위해 구축되었으며
애플리케이션 로드에 대한 응답으로 자동 수평 확장 및 축소를 통해 Google Cloud의 강력한 인프라를 활용함
- 데이터에 대한 보안 액세스 제어가 내장되어 있으며 구성 언어를 통해 데이터 유효성 검사를 처리할 수 있음 - 기본 모드의 Firestore는 다음과 같은 기능을 제공 :
1) 강력하게 일관된 스토리지 계층
2) 컬렉션 및 문서 기반 데이터 모델
3) 실시간 업데이트 및 오프라인 기능
4) 모바일 및 웹 클라이언트 라이브러리
Datastore (Firestore in Datastore mode)
Datastore (Datastore 모드의 Firestore)
- Datastore라고 하는 Firestore in Datastore 모드는 애플리케이션을 위한 확장성이 뛰어난 NoSQL 데이터베이스 :
- 분할 및 복제를 자동으로 처리하여 애플리케이션의 로드를 처리하도록
자동으로 확장되는 고가용성 및 내구성 데이터베이스를 제공
- Datastore는 ACID 트랜잭션, SQL과 유사한 쿼리, 색인 등과 같은 수많은 기능을 제공
- Datastore는 데이터와 함께 원활하고 자동으로 확장되므로 애플리케이션이 더 많은 트래픽을 수신할 때 고성능을 유지
- Datastore는 애플리케이션 데이터가 반구조적이거나 계층적이며 내구성 있는 키-값 데이터를 대규모로 저장해야 할 때 이상적
- Datastore의 일반적인 사용 사례에는 제품 카탈로그, 사용자 프로필, ACID 속성을 기반으로 하는 트랜잭션이 있음
- Datastore는 관계형 데이터베이스가 아니며 분석 데이터에 대한 효과적인 솔루션도 아님
- Datastore는 이전에 Cloud Bigtable의 확장으로 구현되었지만 지금은 Firestore를 사용하여 구현
- Datastore 모드의 Firestore는 Datastore와 역호환되지만 Datastore 모드를 사용할 때는
기본 모드의 데이터 모델, 실시간 업데이트, 모바일 및 웹 클라이언트 라이브러리 기능을 사용할 수 없음
- Datastore 모드의 Firestore는 강력한 일관성 쿼리, 트랜잭션 개선, 항목 그룹에 대한 쓰기에 대한 초당 1개 제한 제거를
포함하여 원본 Datastore에 대한 개선 사항을 제공
- 결국 기존 Datastore 인스턴스는 Datastore 모드의 Firestore로 자동 마이그레이션되며
애플리케이션의 기존 Datastore 코드에 기능 변경이 필요하지 않음
Cloud Bigtable
클라우드 빅테이블
- Bigtable은 고성능 NoSQL 데이터베이스 서비스 :
- 수십억 개의 행과 수천 개의 열로 확장할 수 있는 드문드문 채워진 테이블
- Bigtable은 테라바이트에서 페타바이트의 데이터를 저장할 수 있음
- Bigtable은 빠른 키-값 조회 및 정의된 키 범위 스캔을 위해 구축되었음
- 첫 번째 열(키)의 값만 검색하여 연속 행의 모든 열 집합에 액세스할 수 있는 스프레드시트와 유사
- 개별 행에 대한 업데이트는 원자적
- Bigtable의 빠른 조회 및 쓰기 속도로 인해 사용자 행동에 좋음
- Bigtable은 운영 및 분석 애플리케이션을 지원하며 대량의 단일 키 데이터 및 MapReduce 작업을 저장하는 데 이상적
- Bigtable은 일관된 10ms 미만의 지연 시간을 제공
- Bigtable은 원활한 확장성을 제공
- 배포 구성에 대한 변경이 즉시 이루어지므로 재구성 중에 다운타임이 발생하지 않음
- Cloud Bigtable은 오픈소스 산업 표준 HBase API를 지원
- 대용량 플랫 데이터 센서 판독값이나 사물 인터넷, iot 장치 데이터에 사용
Cloud SQL
클라우드 SQL
- Cloud SQL은 Google Cloud의 관계형 데이터베이스 서비스 :
- MySQL, PostgreSQL 또는 SQL Server 호환 애플리케이션에 집중할 수 있도록
Google에서 데이터베이스의 복제, 장애 조치 및 백업을 관리할 수 있는 관리형 서비스
- Cloud SQL을 사용하면 복제 및 백업을 쉽게 구성하여 데이터를 보호할 수 있음
- 기본 인스턴스를 하나 이상의 읽기 전용 복제본에 복제할 수 있음
- 읽기 전용 복제본은 기본 인스턴스의 변경 사항을 거의 실시간으로 반영하는 기본 복제본임
- 자동 장애 조치를 활성화하여 데이터베이스를 고가용성으로 만들 수 있음
- 백업을 사용하면 Cloud SQL 인스턴스를 복원하여 손실된 데이터를 복구하거나 인스턴스 문제를 복구할 수 있음
- 손실 또는 손상으로부터 보호해야 하는 데이터가 포함된 모든 인스턴스에 대해 자동 백업을 활성화 가능
- Cloud SQL 프록시는 프록시라고 하는 로컬 클라이언트가 로컬 환경에서 실행되도록 하여 작동
- 애플리케이션은 데이터베이스에서 사용하는 표준 데이터베이스 프로토콜을 사용하여 프록시와 통신
- 프록시는 보안 터널을 사용하여 서버에서 실행되는 동반 프로세스와 통신
- Cloud SQL 프록시는 IP 주소를 허용하거나 SSL을 구성할 필요 없이 Cloud SQL 2세대 인스턴스에 대한 보안 액세스를 제공
- 프록시는 Cloud SQL API를 사용하여 GCP에 인증
- 프록시를 사용하기 전에 API를 활성화해야 하며 프록시에 유효한 사용자 계정을 제공
- Cloud SQL은 웹 프레임워크, 구조화된 데이터가 필요한 애플리케이션, OLTP(온라인 트랜잭션 처리) 워크로드와 GCP로
마이그레이션하는 데 필요한 최소한의 리팩토링으로 MySQL/PostgreSQL/SQL Server를 사용하는 애플리케이션에 이상적
Cloud Spanner
클라우드 스패너
- Cloud Spanner는 강력한 일관성과 수평 확장성을 모두 제공하는 Google Cloud의 완전 관리형 관계형 데이터베이스 서비스 :
- 미션 크리티컬 OLTP 애플리케이션용으로 설계
- Cloud Spanner는 고가용성을 위해 동기식 자동 복제를 제공 (+ 수평적 확장성)
- Spanner는 다중 지역 복제를 위해 구축되었으며 업계에서 가장 높은 SLA 중 하나인 99.999%를 제공 (최적으로 처리 가능)
- Spanner는 고가용성, 강력한 일관성, 트랜잭션 읽기 및 쓰기가 필요한 관계형, 정형 및
반정형 데이터가 있는 애플리케이션에 이상적
- Cloud SQL과 달리 Spanner는 모든 테이블에 기본 키가 있어야 하며
자식 행이 부모 행에 인접한 테이블에 삽입되는 인터리브 테이블도 지원
이렇게 하면 부모와 자식 간에 조인이 수행될 때 쿼리 성능이 향상됨