AlloyDB 개요

PostgreSQL용 AlloyDB는 하이브리드 트랜잭션 및 분석 처리를 비롯한 가장 까다로운 워크로드를 위해 설계된 완전 관리형 PostgreSQL 호환 데이터베이스 서비스입니다. AlloyDB는 Google이 구축한 데이터베이스 엔진과 클라우드 기반의 멀티노드 아키텍처를 결합하여 엔터프라이즈급 성능, 안정성, 가용성을 제공합니다.

AlloyDB 작동 방식

애플리케이션은 표준 PostgreSQL 프로토콜과 기법을 사용하여 AlloyDB 인스턴스에 연결됩니다. 그런 다음 애플리케이션은 PostgreSQL 쿼리 구문을 사용하여 데이터베이스와 상호작용합니다.

AlloyDB는 데이터의 가용성을 극대화하고 쿼리 성능과 처리량을 최적화하도록 설계된 클라우드 기반 구성요소 및 기능 계층 구조를 활용합니다. Google Cloud관리 도구를 사용하면 AlloyDB 배포의 상태를 모니터링하고 워크로드의 변화하는 요구사항에 가장 적합하도록 규모와 크기를 조정할 수 있습니다.

표준 PostgreSQL과의 AlloyDB 아키텍처 차이점

기존 PostgreSQL 배포에서는 쿼리를 처리하는 데이터베이스 엔진과 데이터가 있는 스토리지를 동일한 서버에 결합합니다. AlloyDB는 분리된 아키텍처를 사용합니다. 컴퓨팅 및 스토리지 레이어는 분리되어 있으며 개별 확장을 제공합니다.

일반적인 PostgreSQL 설정을 확장하려면 더 큰 서버로 업그레이드하여 수직으로 확장하거나 데이터를 복제하는 읽기 복제본을 사용하여 읽기를 위해 수평으로 확장해야 합니다.

Google의 분산 파일 시스템을 기반으로 구축된 AlloyDB의 분리된 설계는 다음과 같은 여러 이점을 제공합니다.

  • 독립적인 확장: 스토리지를 프로비저닝하거나 프로비저닝 해제하지 않고 쿼리 요구에 따라 컴퓨팅 리소스(특히 노드 및 인스턴스)를 확장하거나 축소할 수 있습니다. 가용성에 영향을 주지 않고 읽기 확장성을 위해 읽기 전용 노드를 스케일 아웃할 수도 있습니다. 데이터가 증가하면 컴퓨팅에 영향을 주지 않고 스토리지가 확장됩니다.
  • 성능 향상: AlloyDB는 최적화된 클라우드 네이티브 스토리지 엔진을 통해 지능형 캐싱 레이어와 고급 I/O 관리에서 비롯되는 빠른 트랜잭션 및 분석 쿼리 성능을 제공합니다.
  • 간소화된 관리: 관심사 분리를 통해 자체 관리형 PostgreSQL의 수동 작업인 복제, 백업, 패치를 비롯한 여러 데이터베이스 작업을 자동으로 관리할 수 있습니다.
  • 고가용성 및 내구성: 내구성 레이어의 중복 데이터 스토리지는 여러 가용성 영역에 걸쳐 있어 인스턴스 상태와 관계없이 데이터 손실 없이 자동 장애 조치 및 복구를 제공합니다.

이 근본적인 아키텍처 차이는 클러스터를 포괄적인 논리적 데이터베이스 컨테이너로 사용하고, 노드가 컴퓨팅 성능을 제공하고, 인스턴스가 애플리케이션 연결 지점 역할을 하는 AlloyDB의 리소스 계층 구조에 나타납니다. 이 모든 과정에서 데이터는 별도의 분리된 스토리지 레이어에 유지됩니다.

다음 다이어그램은 부하 분산된 읽기 풀 인스턴스가 여러 개 포함되어 까다로운 워크로드를 처리하도록 확장된 클러스터의 예를 보여줍니다.

기본 인스턴스와 읽기 풀 인스턴스가 포함된 클러스터를 보여주는 다이어그램

클러스터

특정 Google Cloud리전 내의 단일 AlloyDB 배포는 모든 리소스를 하나의 클러스터로 구성합니다. 여기에는 모든 데이터베이스, 로그, 기타 메타데이터가 포함됩니다. AlloyDB는 단일 Virtual Private Cloud (VPC) 내에 하나의 클러스터의 모든 리소스를 배포하고 Google에서 설계하고 AlloyDB에 최적화된 클라우드 기반 파일 시스템을 사용합니다.

노드 및 인스턴스

클러스터에는 여러 개의 노드가 포함되어 있습니다. 노드는 애플리케이션이 클러스터의 데이터를 쿼리하는 데 사용하는 PostgreSQL 호환 데이터베이스 엔진을 실행하는 데 전용으로 사용되는 가상 머신 인스턴스입니다. AlloyDB는 노드를 인스턴스로 구성하며 각 인스턴스에는 VPC의 비공개 고정 IP 주소가 있습니다. 실제로 애플리케이션은 PostgreSQL 프로토콜을 사용하여 이러한 IP 주소의 인스턴스에 연결됩니다. 그런 다음 인스턴스가 SQL 쿼리를 노드에 전달합니다.

AlloyDB에는 두 가지 종류의 인스턴스가 있습니다.

  • 기본 인스턴스: 모든 클러스터에는 데이터에 대한 읽기 또는 쓰기 액세스 포인트를 제공하는 기본 인스턴스가 하나 있습니다. 기본 인스턴스는 고가용성 (HA) 또는 기본일 수 있습니다.

    • HA 기본 인스턴스: HA 기본 인스턴스에는 활성 노드와 대기 노드라는 두 개의 노드가 있습니다. AlloyDB는 활성 노드의 가용성을 모니터링하고 필요한 경우 대기 노드를 활성 노드로 자동 승격합니다.

    • 기본 인스턴스: 고가용성이 필요하지 않은 비프로덕션 환경에서는 기본 인스턴스를 선택적으로 사용할 수 있습니다. 기본 인스턴스에는 대기 노드 없이 노드가 하나만 있습니다. 자세한 내용은 베이직 인스턴스를 사용하여 비용 절감을 참고하세요.

  • 읽기 풀 인스턴스: 클러스터에는 선택적으로 하나 이상의 읽기 풀 인스턴스가 있을 수 있으며, 각 인스턴스에는 하나 이상의 읽기 전용 노드가 포함될 수 있습니다(클러스터 전체 최대 20개). AlloyDB는 읽기 풀 인스턴스로 전송된 모든 요청을 자동으로 부하 분산하여 인스턴스의 노드로 라우팅합니다.

더 간단한 사용 사례의 경우 클러스터에 기본 인스턴스만 있고 읽기 풀이 없으며 애플리케이션이 모든 쿼리에 기본 인스턴스를 사용합니다. 더 많은 작업이 필요한 경우 클러스터에 읽기 풀 인스턴스를 추가할 수 있습니다. 그런 다음 읽기 요청을 전송하도록 보고 또는 분석 애플리케이션을 구성합니다. 이 기법은 기본 인스턴스의 부하를 줄이고 여러 노드에 부하를 분산하여 확장성을 개선합니다.

애플리케이션의 요구사항이 변경되면 언제든지 읽기 풀 인스턴스의 노드 수를 추가, 삭제 또는 조정할 수 있습니다. 또한 필요할 때마다 최소한의 다운타임으로 인스턴스의 구성 노드의 메모리와 vCPU 수를 조정할 수 있습니다. AlloyDB는 인스턴스가 아닌 클러스터의 유연한 스토리지 계층에 데이터를 저장하므로 인스턴스를 확장해도 데이터 손실 위험이 없습니다.

주요 특징

AlloyDB는 앞에서 설명한 멀티 노드 아키텍처에 내재된 수직 및 수평 확장 이점 외에도 여러 면에서 기본 PostgreSQL 설치와 차별화됩니다. 다음 섹션에서는 AlloyDB의 주요 기능을 자세히 살펴봅니다.

자동 및 적응형 데이터베이스 기능

모든 AlloyDB 노드를 지원하는 완전한 PostgreSQL 호환 데이터베이스 엔진에는 인스턴스에서 처리하는 쿼리의 구조와 빈도를 지속적으로 분석하고 이 정보를 사용하여 스키마 개선을 제안하거나 최적화를 자동으로 적용하는 여러 기능이 있습니다.

  • 색인 어드바이저는 사용 패턴을 기반으로 새 색인을 사용하여 데이터베이스 스키마를 최적화할 기회를 찾는 데 도움을 줍니다.

  • 열 기반 엔진은 열 형식으로 메모리에 데이터를 저장하여 분석 쿼리의 성능을 가속화할 수 있습니다. 이를 통해 AlloyDB는 필요할 때 고급 처리 기술을 사용하여 많은 양의 테이블 데이터를 효율적으로 스캔할 수 있습니다.

  • PostgreSQL의 오래된 데이터 자동 진공 기능의 적응형 변형은 진공 관련 매개변수를 워크로드의 모양에 가장 적합하게 자동으로 조정합니다.

  • 자동 메모리 및 스토리지 관리 시스템은 AlloyDB가 실행되는 Google 빌드 클라우드 기반 환경을 활용하여 필요에 따라 메모리와 스토리지를 지속적으로 할당하고 해제하여 클러스터가 최적의 성능과 리소스 효율성으로 실행되도록 합니다.

고가용성

기본적으로 AlloyDB 클러스터는 두 개의 서로 다른 영역에 있는 기본 인스턴스의 중복 노드를 통해 자동 장애 조치와 함께 가용성 (HA)을 제공합니다.

HA가 필요하지 않은 비프로덕션 환경에서 작동하는 클러스터는 기본 단일 영역 기본 인스턴스를 대신 사용할 수 있습니다.

노드가 2개 이상 포함된 읽기 풀 인스턴스를 추가하면 데이터에 대한 부하 분산된 멀티 영역 고가용성 액세스 포인트가 추가로 생성됩니다. 모든 읽기 풀 인스턴스는 기본 인스턴스와 독립적으로 실행됩니다.

리전별 고려사항에 대한 자세한 내용은 지역 및 리전을 참조하세요.

데이터 백업 및 재해 복구

AlloyDB에는 조정 가능한 보관 기간 내의 특정 시점을 기반으로 새 클러스터를 만들 수 있는 지속적 백업 및 복구 시스템이 있습니다. 따라서 데이터 손실 사고에서 빠르게 복구할 수 있습니다.

또한 AlloyDB는 주문형으로 또는 정기적인 일정에 따라 클러스터 데이터의 완전한 백업을 생성하고 저장할 수 있습니다. 언제든지 백업에서 백업 생성 시점의 원본 클러스터의 모든 데이터가 포함된 새 AlloyDB 클러스터로 복원할 수 있습니다.

자세한 내용은 백업 정보를 참고하세요.

재해 복구의 추가 방법으로 별도의 Google Cloud리전에 보조 클러스터를 만들어 리전 간 복제를 달성할 수 있습니다. AlloyDB는 지정된 기본 클러스터에서 각 보조 클러스터로 데이터를 비동기식으로 스트리밍합니다. 필요한 경우 언제든지 보조 클러스터를 기본 및 읽기 풀 인스턴스가 있는 모든 기능을 갖춘 AlloyDB 클러스터로 승격할 수 있습니다.

자세한 내용은 리전 간 복제 정보를 참고하세요.

보안 및 액세스 제어

액세스 제어에 Google Cloud ID 액세스 및 관리(IAM)를 사용하는 보안 AlloyDB 인증 프록시와의 연결이 필요하도록 클러스터를 구성할 수 있습니다. 자세한 내용은 승인을 참조하세요.

AlloyDB는 인증을 위해 표준 PostgreSQL 사용자 역할 시스템을 사용하며 AlloyDB에 특화된 몇 가지 추가 역할을 도입합니다. 자세한 내용은 AlloyDB 사용자 역할 관리를 참고하세요.

암호화

AlloyDB는 기본적으로 Google의 암호화 방법을 사용하여 모든 저장 데이터를 보호합니다. 대신 사용자가 제공하는 키를 사용하여 데이터를 암호화해야 하는 경우 클러스터를 만들 때 고객 관리 암호화 키 (CMEK)를 지정하면 됩니다. 그러면 AlloyDB에서 CMEK 키를 사용하여 해당 클러스터에 기록된 모든 데이터를 암호화합니다.

CMEK는 백업에도 적용됩니다. 주문형 백업을 만들거나, 백업 일정을 구성하거나, 백업에서 복원할 때 CMEK 키를 지정할 수 있습니다.

자세한 내용은 CMEK 정보를 참조하세요.

무중단 유지보수

AlloyDB 유지보수 작업은 데이터베이스의 중단을 최소화하도록 설계되었습니다. 기본 인스턴스와 보조 인스턴스의 다운타임은 1초 미만이며 읽기 풀은 다운타임 없이 계속 사용할 수 있습니다. 이는 교체 서버를 준비하고 준비가 되면 활성 서버와 빠르게 교체하여 달성됩니다. 이 과정에서 데이터베이스에 대한 활성 연결이 일시적으로 삭제됩니다. 이 프로세스 전반에 걸쳐 데이터베이스를 평소와 같이 계속 사용할 수 있습니다.

이 교체 프로세스를 통해 다운타임이 최소화되지만 Google Cloud 콘솔과 Google Cloud CLI에 표시된 대로 전체 작업에 몇 분이 걸릴 수 있습니다.

이러한 유지보수 작업에는 Google에서 실행하는 주기적인 유지보수 작업과 플래그 구성, 인스턴스 크기 조절과 같이 사용자가 수동으로 실행하는 작업이 포함됩니다. 다운타임이 길어지더라도 업데이트를 즉시 적용하려면 FORCE_APPLY 데이터베이스 플래그를 사용하세요.

AlloyDB AI

AlloyDB AI는 AI 및 ML 기능 모음을 AlloyDB 데이터베이스에 직접 통합합니다. 이전에는 AI 애플리케이션을 빌드하려면 운영 데이터베이스에서 전문 AI/ML 플랫폼으로 데이터를 이동하는 복잡한 데이터 파이프라인과 ETL 프로세스가 필요했습니다. 이 방법은 데이터 전송으로 인한 지연 시간 증가, 서로 다른 시스템 관리로 인한 운영 오버헤드 증가, 중복 스토리지와 같은 문제를 야기했습니다. AI 기능을 데이터베이스에 직접 통합함으로써 AlloyDB AI는 광범위한 외부 데이터 이동의 필요성을 없애줍니다.

AI 애플리케이션의 개발을 용이하게 하기 위해 AlloyDB AI는 다음 확장 프로그램을 제공합니다.

  • vector (AlloyDB AI용으로 맞춤설정된 pgvector 버전): 시맨틱 검색을 위한 벡터 임베딩을 저장하고 색인을 생성합니다. 하이브리드 쿼리 및 유사성 검색 실행을 지원합니다. 벡터 검색을 시작하려면 벡터 검색 실행을 참고하세요.
  • alloydb_scann: ScaNN 알고리즘으로 구동되는 매우 효율적인 최근접 이웃 색인을 구현하여 고성능 근사 최근접 이웃 검색을 제공합니다. 자세한 내용은 ScaNN 색인 만들기를 참고하세요.
  • google_ml_integration: 임베딩 생성, 시맨틱 순위 지정, AI 기반 필터 및 조인, 텍스트 생성 및 요약과 같은 작업을 위해 AlloyDB에서 ML 모델을 호출할 수 있는 AI 쿼리 엔진에 대한 액세스를 제공합니다. 모델 엔드포인트 관리를 사용하면 OpenAI 또는 Anthropic의 외부 모델을 비롯한 AI 모델을 등록하고 호출할 수 있습니다. 자세한 내용은 모델 엔드포인트 등록AI 연산자로 시맨틱 쿼리 평가를 참고하세요.
  • alloydb_ai_nl: 자연어를 사용하여 데이터베이스와 상호작용할 수 있습니다. 이를 통해 애플리케이션 개발자는 최종 사용자의 자연어 질문에 대한 정확하고 안전한 SQL 쿼리를 생성하여 SQL을 사용하지 않는 사용자가 데이터에 액세스할 수 있도록 지원합니다. 자세한 내용은 자연어 개요를 참고하세요.

AlloyDB AI 기능의 사용 사례 목록은 생성형 AI 애플리케이션 빌드를 참고하세요.

확장 프로그램 지원

AlloyDB는 여러 인기 있는 PostgreSQL 확장 프로그램을 지원합니다. 전체 목록은 지원되는 데이터베이스 확장 프로그램을 참고하세요.

자체 호스팅 대안: AlloyDB Omni

Google Cloud내에서 AlloyDB를 실행하는 대신 Google에서는 AlloyDB Omni를 제공합니다. 이 간소화된 다운로드 가능한 버전의 AlloyDB를 사용하면 어디서든 자체 Linux 기반 컴퓨팅 환경에서 강력한 데이터베이스 엔진을 실행할 수 있습니다.

자세한 내용은 AlloyDB Omni 정보를 참고하세요.

다음 단계