GCP Cloud Engineer - 42

2024-04-16

  • Cloud
  • GCP

Firestore

  • Cloud Firestore 개요:

    • Cloud Firestore는 클라우드 기반의 완전 관리형 서버리스 고속 NoSQL 문서 데이터베이스입니다.

    • ㅁ 모바일, 웹, IoT 앱용 데이터의 저장, 동기화, 쿼리를 간소화합니다.

    • ㅁ 실시간 동기화와 오프라인 작동 기능을 제공하는 클라이언트 라이브러리가 포함되어 있습니다.

    • ㅁ Firebase 및 GCP와의 통합을 통해 서버리스 앱 빌딩을 가속화합니다.

  • 성능 및 보안:

    • ㅁ 자동 멀티 리전 복제와 strong consistency로 데이터 보호와 일관성을 보장합니다.

    • ㅁ ACID 트랜잭션을 지원하여, 트랜잭션의 일부 작업이 실패할 경우 전체 트랜잭션을 롤백합니다.

  • 확장성 및 호환성:

    • ㅁ 페타바이트 규모의 데이터 및 글로벌 확장성을 지원합니다.

    • ㅁ Datastore 모드에서는 기존 Cloud Datastore와 호환됩니다.

    • ㅁ 쿼리에 대해 strong consistency를 제공하며, 트랜잭션이 항목 그룹 수나 초당 권한 부여에 제한되지 않습니다.

  • 아키텍처 및 옵션:

    • ㅁ 새로운 스토리지 레이어와 실시간 업데이트를 갖춘 문서 데이터 모델을 사용합니다.

    • ㅁ 기본 모드에서는 Cloud Firestore의 새로운 기능에 전적으로 액세스할 수 있으며, Datastore 모드는 이전 버전과의 호환성을 제공합니다.

  • 적합한 시나리오:

    • ㅁ 스키마 변경이 필요하거나, 트랜잭션 일관성이 중요하지 않은 경우 Cloud Firestore가 적합합니다.

    • ㅁ 큰 규모의 확장성과 낮은 유지보수 오버헤드를 필요로 하는 애플리케이션에 이상적입니다.

    • ㅁ 트랜잭션 일관성이 필수적이지 않다면, Cloud Bigtable을 고려할 수 있습니다.


Cloud Bigtable

  • Cloud Bigtable 개요:

    • Cloud Bigtable은 지연 시간이 매우 짧은 페타바이트 규모의 완전 관리형 NoSQL 데이터베이스입니다.

    • ㅁ Google의 검색, 애널리틱스, 지도, Gmail 등의 핵심 서비스를 지원하는 데이터베이스입니다.

  • 확장성 및 성능:

    • ㅁ 처리량에 맞게 원활하게 확장되며, 특정 액세스 패턴에 적응하는 방법을 학습합니다.

    • IoT, 사용자 분석, 재무 데이터 분석 등에 적합하며, 높은 읽기 및 쓰기 처리량을 지원합니다.

  • 통합 및 API 지원:

    • ㅁ Hadoop, Dataflow, Dataproc와 같은 빅데이터 도구와 쉽게 연동됩니다.

    • ㅁ 업계 표준의 오픈소스 HBase API를 지원하여 개발자가 쉽게 사용할 수 있습니다.

  • 데이터 구조 및 저장:

    • ㅁ 데이터는 정렬된 키-값 매핑으로 구성되며, 대규모로 확장 가능한 테이블에 저장됩니다.

    • ㅁ 테이블은 행과 열로 구성되며, 각 행은 row key로 색인되고, 열은 column family로 그룹화됩니다.

    • ㅁ 태블릿으로 알려진 연속된 행의 블록으로 데이터를 분할하여 쿼리 워크로드를 분산시킵니다.

  • 시간적 데이터 관리:

    • ㅁ 각 행/열 교집합에는 서로 다른 타임스탬프에 여러 셀 또는 버전이 포함될 수 있어, 데이터의 시간에 따른 변화를 추적할 수 있습니다.
  • 비용 및 클러스터 관리:

    • ㅁ 가장 작은 Cloud Bigtable 클러스터에는 3개의 노드가 있으며, 초당 30,000개의 작업을 처리할 수 있습니다.

    • ㅁ 노드 사용 여부와 관계없이 노드가 작동하는 동안 해당 노드에 대해 비용을 지불합니다.


Memorystore

  • Memorystore 개요:

    • Redis용 Memorystore는 완전 관리형 인메모리 데이터 저장소 서비스입니다.

    • ㅁ 확장 가능하고 안전하며, 높은 가용성을 제공하는 Google 관리 인프라를 기반으로 합니다.

  • 성능 및 이점:

    • ㅁ Google Cloud에서 실행되는 애플리케이션은 복잡한 Redis 배포를 관리할 필요 없이 활용 가능합니다.

    • ㅁ 성능 극대화를 위한 확장성, 가용성, 안전성을 제공합니다.

    • ㅁ 코드 작성에 더 많은 시간을 투자하여 훌륭한 앱 빌딩에 집중할 수 있습니다.

  • 관리 및 자동화:

    • ㅁ 고가용성, 장애 조치, 패치, 모니터링과 같은 복잡한 작업을 자동화합니다.
  • 고가용성 및 가용성 SLA:

    • ㅁ 고가용성 인스턴스는 2개의 영역에 복제되며, 99.9% 가용성의 SLA를 제공합니다.
  • 확장성 및 처리량:

    • ㅁ 최저 등급과 최소 크기에서 시작하여 필요에 따라 인스턴스를 확장할 수 있습니다.

    • ㅁ 최대 300GB의 인스턴스와 12Gbps의 네트워크 처리량을 지원합니다.

  • Redis 프로토콜 및 호환성:

    • ㅁ Redis 프로토콜과 완벽하게 호환되어, 코드 변경 없이 애플리케이션을 오픈소스 Redis에서 Memorystore로 이전할 수 있습니다.

    • ㅁ 기존 도구와 클라이언트 라이브러리가 계속 작동하므로 새로운 도구를 익힐 필요가 없습니다.


모르는 단어

ACID transaction

Atomicity(원자성):

트랜잭션의 모든 작업이 완전히 수행되거나, 아니면 전혀 수행되지 않아야 함을 의미합니다. 즉, 트랜잭션 중 하나라도 실패하면 전체 트랜잭션이 취소됩니다.

Consistency(일관성): 트랜잭션이 데이터베이스를 한 상태에서 다른 일관된 상태로 변환해야 함을 의미합니다. 즉, 트랜잭션 시작 전과 후에 데이터베이스의 모든 규칙이 충족되어야 합니다.

Isolation(고립성): 동시에 실행되는 트랜잭션들이 서로 영향을 미치지 않아야 함을 의미합니다. 즉, 한 트랜잭션의 중간 결과는 다른 트랜잭션에게 보이지 않습니다.

Durability(지속성): 성공적으로 완료된 트랜잭션의 결과는 영구적으로 반영되어야 함을 의미합니다. 즉, 시스템 장애가 발생하더라도 완료된 트랜잭션의 변경 사항은 유지되어야 합니다.

스키마

데이터베이스에서 "스키마"는 데이터의 구조와 조직을 정의하는 데 사용되는 프레임워크를 의미합니다.

스키마는 테이블, 필드, 인덱스, 관계 등 데이터베이스의 모든 구조적인 세부사항을 정의합니다.

각 테이블은 어떤 필드를 가질 것인지, 각 필드의 데이터 타입은 무엇인지, 어떤 필드가 기본 키 또는 외래 키로 사용될 것인지 등을 명시합니다.

스키마 변경이 필요하다는 것은, 데이터의 구조나 조직을 변경해야 한다는 것을 의미합니다.

예를 들어, 새로운 테이블을 추가하거나, 기존 테이블의 필드를 수정하거나 삭제하거나, 필드의 데이터 타입을 변경해야 할 수 있습니다.

이러한 변경은 데이터베이스의 성능과 용량, 데이터의 일관성과 품질 등에 영향을 미칠 수 있습니다.

GCP Cloud ...

GCP Cloud ...