Spanner Omni 개요

Spanner Omni는 온프레미스 데이터 센터, 퍼블릭 클라우드, 노트북에 Google의 분산 데이터베이스 기술을 배포할 수 있는 다운로드 가능한 Spanner 버전입니다. Paxos 기반 복제, 자동 샤딩, 소프트웨어 정의 TrueTime API를 사용하여 수평 확장성, 고가용성, ACID 규정 준수, 강력한 외부 일관성을 비롯한 핵심 Spanner 기능을 제공합니다.

Spanner Omni는 관계형, 그래프, 벡터, 키-값 데이터 모델을 전체 텍스트 및 운영 분석 기능과 통합합니다. Spanner와 마찬가지로 Spanner Omni는 GoogleSQL, PostgreSQL, Spanner Graph 언어를 지원합니다. 다양한 환경에서 교차 환경 복원력, 애플리케이션 이식성, 일관된 개발 스택을 달성할 수 있습니다. Spanner Omni는 다음과 같은 배포 옵션을 지원합니다.

  • 가상 머신
  • Linux 컨테이너
  • Kubernetes 클러스터

Spanner Omni의 미리보기 버전에는 엔터프라이즈 보안 및 데이터 보호 기능을 제외한 Spanner의 핵심 기능이 포함되어 있습니다. 전체 기능이 포함된 버전을 사용해 보려면 Google에 문의하세요.

주요 특징

Spanner Omni는 다음과 같은 기능을 제공합니다.

  • 배포 유연성: Linux 또는 macOS에서 Spanner Omni를 실행합니다. Spanner Omni는 퍼블릭 클라우드 환경(예: Google Cloud (Google Kubernetes Engine(GKE) 및 Cloud Storage) 및 Amazon Elastic Kubernetes Service(Amazon EKS) 및 Amazon Elastic Compute Cloud(Amazon EC2)), 온프레미스, 노트북을 지원합니다.

  • 높은 확장성: Spanner Omni는 데이터를 자동으로 샤딩하고 샤드를 분산하여 읽기 및 쓰기를 위한 탄력적 확장을 달성할 수 있습니다.

  • 고가용성: Spanner Omni는 여러 배포 토폴로지를 제공합니다. Spanner Omni는 영역 또는 클러스터 장애 발생 시 고가용성을 제공하기 위해 다중 영역 및 멀티 클러스터 배포를 제공합니다.

  • 강력한 외부 일관성: Spanner Omni는 모든 환경에 배포할 수 있는 소프트웨어 기반 TrueTime을 사용하여 전역 트랜잭션 일관성을 제공합니다.

  • 상호 운용 가능한 멀티 모델: Spanner Omni는 여러 데이터 모델 (관계형, 키-값, 그래프, 벡터)과 기능 (전체 텍스트 검색, 분석 처리)을 지원하며 다양한 데이터 모델에서 교차 모델 쿼리 및 ACID 규정 준수 트랜잭션을 제공합니다.

  • 익숙한 인터페이스: 대화형 쿼리를 위한 SQL 셸이 포함된 Spanner CLI를 사용하여 데이터와 상호작용합니다. Spanner Omni는 기존 애플리케이션을 마이그레이션할 수 있는 GoogleSQL, PostgreSQL 언어, GQL을 지원합니다.

배포 토폴로지

Spanner Omni는 리전, 영역, 서버의 계층 구조를 사용하여 배포 구성을 정의합니다. Spanner Omni는 다음과 같은 배포 구성을 제공합니다.

  • 단일 서버 - Spanner Omni는 단일 머신에서 실행됩니다. 이 토폴로지는 단일 머신에서 실행되므로 로컬 개발에 적합한 옵션입니다. 이 토폴로지를 업그레이드하면 다운타임이 발생합니다.

  • 단일 영역 (또는 영역별) - 모든 Spanner Omni 서버가 하나의 영역에 속합니다. 이 배포 구성에는 서버를 최소 3개 사용합니다. 최적의 가동시간을 위해 이 토폴로지는 단일 영역 장애로 인해 중단이 발생할 수 있으므로 가용성 목표가 낮습니다.

  • 다중 영역 (또는 리전) - Spanner Omni는 여러 영역에 서버를 분산합니다. 모든 영역이 단일 위치에 있습니다. 다중 영역 배포의 경우 영역을 최소 3개 사용합니다. 각 영역에는 서버가 하나 이상 있어야 합니다. 각 영역에서 서버 3개를 사용하는 것이 좋습니다. 이 배포 구성은 단일 영역 배포보다 높은 가용성을 제공합니다.

  • 멀티 클러스터 (또는 멀티 리전) - Spanner Omni 서버는 여러 클러스터의 여러 영역에 있습니다. 고가용성을 위해 2개 이상의 클러스터에서 3개의 영역을 사용하고 각 영역을 3개 이상의 서버로 구성합니다.

시스템 요구사항

성능을 최적화하려면 서버 배포에 다음 최소 권장 요구사항을 사용하세요.

환경 OS 또는 플랫폼 하드웨어 권장사항
온프레미스 Linux (RHEL 9, Ubuntu 22) vCPU당 4GB RAM, 20GB 이상의 디스크 공간
클라우드 (Google Cloud 및 AWS) VM 또는 Kubernetes 포드 VM 또는 Kubernetes 포드당 4개의 vCPU, 16GB RAM
개발자 (노트북, 데스크톱) macOS (M1, M2, M3) 4GB RAM, 10GB 디스크 공간

스토리지의 경우 ext4 파일 시스템이 있는 전용 솔리드 스테이트 드라이브 (SSD) 스토리지를 사용하는 것이 좋습니다.

연결 및 개발

Spanner Omni에 연결하고 애플리케이션을 개발하려면 다음 도구를 고려하세요.

  • 클라이언트 라이브러리: Spanner Omni 엔드포인트를 지정하여 기존 Spanner 클라이언트 라이브러리(Java 및 Go)를 사용할 수 있습니다. 예를 들어 Java에서 setExperimentalHost("http://localhost:15000")를 설정합니다.

  • PGAdapter: 이 프록시를 사용하면 기존 PostgreSQL 애플리케이션이 표준 PostgreSQL 유선 프로토콜을 사용하여 Spanner Omni PostgreSQL 언어 데이터베이스에 연결할 수 있습니다.

  • 진단: 전용 spanner admin diagnostics create 명령어 는 문제 해결을 위해 로그, 트레이스, 스레드 스택을 수집합니다.