"Azure Database for PostgreSQL"를 탐색하세요.
Azure Database for PostgreSQL Azure PostgreSQL 워크로드에 대한 완전 관리형 데이터베이스 서비스입니다. 서비스 아키텍처, 컴퓨팅 계층 및 관리되는 기능을 이해하면 AI 애플리케이션에 대한 구성 및 용량 계획에 대한 정보에 입각한 결정을 내릴 수 있습니다.
Azure Database for PostgreSQL란?
Azure Database for PostgreSQL 오픈 소스 PostgreSQL 데이터베이스 엔진을 기반으로 하는 완전 관리형 관계형 데이터베이스 서비스입니다. 이 서비스는 기존 PostgreSQL 애플리케이션 및 도구와의 완전한 호환성을 제공하는 PostgreSQL 커뮤니티 버전을 실행합니다. Microsoft 하드웨어 프로비저닝, 소프트웨어 패치, 백업 관리 및 고가용성 구성을 비롯한 기본 인프라를 관리합니다.
이 서비스는 관리되는 플랫폼의 이점을 유지하면서 데이터베이스 구성을 세부적으로 제어합니다. 유지 관리 기간을 사용자 지정하고, 고가용성 옵션을 구성하고, 워크로드 요구 사항에 맞게 컴퓨팅 리소스를 조정할 수 있습니다.
벡터 작업과 함께 관계형 데이터 스토리지가 필요한 AI 애플리케이션의 경우 PostgreSQL은 트랜잭션 안정성, JSONB를 사용한 유연한 데이터 모델링 및 벡터 유사성 검색 기능을 포함하는 확장 에코시스템의 강력한 조합을 제공합니다.
아키텍처 및 배포 옵션
Azure Database for PostgreSQL 컴퓨팅과 스토리지를 독립적인 구성 요소로 구분합니다. 데이터베이스 엔진은 Linux 가상 머신에서 실행되며 데이터 파일은 Azure 관리되는 스토리지에 상주합니다. 이러한 분리를 통해 컴퓨팅 및 스토리지 리소스를 독립적으로 스케일링할 수 있으며 로컬 중복 스토리지 복제본을 통해 기본 제공 데이터 내구성을 제공합니다.
이 서비스는 다양한 워크로드 특성과 일치하는 세 가지 컴퓨팅 계층을 제공합니다. 각각 다른 CPU 및 메모리 구성을 제공합니다.
버스트 가능: 필요할 때 기준선 위로 버스트할 수 있는 기능을 사용하여 기준 CPU 성능을 제공합니다. 지속적인 전체 CPU 용량이 필요하지 않은 개발 환경, 소규모 애플리케이션 및 워크로드에 가장 적합합니다. B 시리즈 가상 머신은 일시적인 워크로드에 대한 비용 효율적인 옵션을 제공합니다.
범용: 프로덕션 워크로드에 대해 균형 잡힌 컴퓨팅 및 메모리 리소스를 제공합니다. D 시리즈 가상 머신은 예측 가능한 응답 시간이 필요한 애플리케이션에 일관된 성능을 제공합니다. 일반적인 웹 애플리케이션 및 백 엔드 서비스에 대한 범용을 선택합니다.
메모리 최적화: 메모리 내 데이터 세트의 이점을 활용하는 워크로드에 대해 높은 메모리 대 vCPU 비율을 제공합니다. E 시리즈 가상 머신은 캐싱이 많은 워크로드, 복잡한 분석 쿼리 및 대규모 작업 집합을 메모리에 유지해야 하는 애플리케이션에서 탁월합니다. 메모리 내 계산을 수행하는 AI 애플리케이션은 종종 이 계층의 이점을 누릴 수 있습니다.
잠시 다시 시작하여 배포 후 컴퓨팅 계층을 변경할 수 있으므로 워크로드가 진화함에 따라 리소스를 조정할 수 있습니다.
관리되는 서비스 기능
Azure Database for PostgreSQL는 별도의 데이터베이스 관리 노력이 필요한 운영 작업을 자동으로 처리합니다.
서비스는 데이터베이스의 백업을 자동으로 만들고 가용성 영역을 지원하는 지역의 영역 중복 스토리지 또는 그렇지 않은 지역의 로컬 중복 스토리지에 저장합니다. 기본 백업 보존 기간은 7일이며 복구 요구 사항에 따라 최대 35일까지 연장할 수 있습니다. 백업에는 전체 스냅샷과 트랜잭션 로그가 모두 포함되며, 보존 기간 내에 특정 시점으로 복원할 수 있습니다. Azure AES 256비트 암호화를 사용하여 기본적으로 플랫폼 관리형 키 또는 고객 관리형 키를 사용하여 추가 제어를 위해 모든 백업을 암호화합니다.
지정 시간 복원을 사용하면 백업 보존 기간 내에 언제든지 데이터베이스를 복구할 수 있습니다. 복원 작업은 데이터가 지정된 타임스탬프로 복구된 새 서버 인스턴스를 만듭니다. 이 인스턴스는 실수로 인한 데이터 수정 또는 기록 데이터베이스 상태에 대한 테스트로부터 복구하는 데 유용합니다.
Azure Database for PostgreSQL 다시 사용할 수 있는 연결 풀을 유지 관리하여 새 데이터베이스 연결 설정의 오버헤드를 줄이는 경량 연결 풀러인 기본 제공 PgBouncer가 포함되어 있습니다. 서버 구성을 통해 PgBouncer를 사용하도록 설정하고 표준 PostgreSQL 포트 5432 대신 포트 6432에 연결할 수 있습니다. 연결 풀링은 개별 메시지 저장 또는 각 유추 요청에 대한 컨텍스트 검색과 같이 수명이 짧은 데이터베이스 호출을 많이 수행하는 AI 애플리케이션에 유용합니다.
중요합니다
PgBouncer는 범용 및 메모리 최적화 컴퓨팅 계층에서만 사용할 수 있습니다. 버스트 가능 계층은 기본 제공 PgBouncer 기능을 지원하지 않습니다.
연결 최적화 전략은 "성능, 인덱싱 및 크기 조정 최적화" 모듈에서 자세히 설명합니다.
지원되는 PostgreSQL 버전 및 확장
Azure Database for PostgreSQL 여러 주 PostgreSQL 버전을 동시에 지원합니다. 이 서비스는 일반적으로 PostgreSQL의 커뮤니티 지원 타임라인에 따라 현재 주 버전 및 여러 이전 버전을 지원합니다. 새 서버를 만들 때 사용 가능한 버전을 확인하거나 기존 서버에서 server_version 설정을 쿼리할 수 있습니다.
PostgreSQL의 확장 메커니즘을 사용하면 핵심 데이터베이스 엔진 이외의 기능을 추가할 수 있습니다. 확장은 핵심 PostgreSQL 코드를 수정하지 않고도 새 데이터 형식, 함수, 연산자 및 인덱스 형식을 추가할 수 있습니다. 몇 가지 확장은 AI 애플리케이션과 관련이 있습니다.
pgvector: 벡터 데이터 형식 및 유사성 검색 작업을 사용하도록 설정합니다. 관계형 데이터와 함께 임베딩을 저장하고 근사 최근접 이웃 검색을 수행할 수 있습니다. "Azure PostgreSQL을 사용하여 벡터 검색 구현" 모듈은 pgvector에 대해 자세히 설명합니다.
pg_trgm: 삼각 기반 텍스트 유사성 함수를 제공합니다. 퍼지 텍스트 매칭, 자동 완성 기능, 그리고 정확히 일치하지 않아도 유사한 문자열을 찾는 데 유용합니다.
hstore: 단일 PostgreSQL 값 내에 키-값 쌍 집합을 저장하기 위한 키-값 데이터 형식을 추가합니다. JSONB의 완전한 유연성이 필요하지 않은 반구조적 데이터에 유용합니다.
서버 인스턴스에서 CREATE EXTENSION 확장을 사용할 수 있는지 확인한 후 명령을 사용하여 확장을 사용하도록 설정할 수 있습니다.
개발자 의사 결정 지점
애플리케이션에 대한 Azure Database for PostgreSQL 구성할 때 다음 주요 결정을 고려합니다.
컴퓨팅 계층 선택: 워크로드의 CPU 및 메모리 요구 사항에 따라 선택합니다. 일관된 성능보다 비용 최적화가 더 중요한 개발, 테스트 및 개념 증명 작업을 위한 버스트 가능으로 시작합니다. 안정적이고 예측 가능한 리소스 요구 사항이 있는 프로덕션 워크로드에는 범용 인스턴스를 사용하십시오. 애플리케이션이 큰 메모리 내 캐시의 이점을 활용하거나 복잡한 분석 쿼리를 수행할 때 메모리 최적화를 선택합니다. 배포 후 CPU 및 메모리 사용률을 모니터링하고 필요한 경우 계층을 조정할 수 있습니다.
확장 평가: 애플리케이션 디자인 초기에 사용 가능한 확장을 검토합니다. 애플리케이션에 벡터 유사성 검색(pgvector), 전체 텍스트 검색 또는 PostGIS(지리 공간적 기능)가 필요한지 여부를 결정합니다. 디자인을 커밋하기 전에 Azure Database for PostgreSQL 필요한 확장을 사용할 수 있는지 확인합니다. 데이터베이스 유지 관리 전략의 일부로 확장 업그레이드를 계획합니다.