AlloyDB 개요

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

AlloyDB 작동 방식

애플리케이션은 표준 PostgreSQL 프로토콜 및 기법을 사용하여 AlloyDB 인스턴스에 연결합니다. 그러면 애플리케이션은 PostgreSQL 쿼리 문법을 사용하여 데이터베이스를 사용합니다.

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

클러스터

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

노드 및 인스턴스

클러스터에는 여러 개의 nodes가 포함되어 있습니다. 노드는 애플리케이션이 클러스터의 데이터를 쿼리하는 데 사용하는 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 Identity Access and Management(IAM)를 사용하는 안전한 AlloyDB Auth Proxy와의 연결이 필요하도록 클러스터를 구성할 수 있습니다. 자세한 내용은 승인을 참고하세요.

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

암호화

AlloyDB는 기본적으로 Google의 암호화 메서드를 사용하여 모든 저장 데이터를 보호합니다. 대신 제공한 키를 사용하여 데이터를 암호화해야 하는 경우 클러스터를 만들 때 고객 관리 암호화 키 (CMEK)를 지정할 수 있습니다. 그러면 AlloyDB는 CMEK 키를 사용하여 해당 클러스터에 쓰여진 모든 데이터를 암호화합니다.

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

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

무중단 유지보수

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

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

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

확장 프로그램 지원

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

자체 호스팅 대안: AlloyDB Omni

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

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

다음 단계