본문으로 건너뛰기
17.3 Azure Database for PostgreSQL — Flexible Server

17.3 Azure Database for PostgreSQL — Flexible Server

Azure Database for PostgreSQL — Flexible Server는 Microsoft Azure의 매니지드 PostgreSQL. 옛 Single Server(legacy)의 후속이며 현재 권장합니다. 자유도 RDS와 유사하면서 VNet 통합과 Entra ID 인증이 강점.

인스턴스 tier

Tier사용처
Burstable (B series)개발·소규모
General Purpose (D series)일반 OLTP
Memory Optimized (E series)메모리 집약

vCPU 196, 메모리 2672GB까지.

스토리지

옵션메모
Premium SSD표준
Premium SSD v2provisioned IOPS·throughput 별도 — 최근 권장

Storage Auto-grow 활성화로 디스크 풀 자동 회피합니다.

핵심 기능

기능메모
HAzone-redundant high availability — 동기 standby
Read replica비동기, 같은/다른 region
자동 백업7~35일 PITR, 외부 region 백업 옵션
VNet integrationPrivate 네트워크 — public endpoint 비활성 가능
Entra ID (AD) 인증비밀번호 없는 인증
Customer-managed keys자체 키로 encryption at rest
Maintenance window명시 가능

HA 옵션

    flowchart LR
  W["client (writer)"]
  AZ1["primary in zone 1"]
  AZ2["standby in zone 2<br/>(동기)"]
  W --> AZ1
  AZ1 -- "동기 streaming" --> AZ2

  classDef pri fill:#ede9fe,stroke:#6d28d9,color:#3b0764
  classDef std fill:#d1fae5,stroke:#047857,color:#064e3b
  class AZ1 pri
  class AZ2 std
  

HA 활성 시 2개 zone에 instance — 자동 failover. RDS Multi-AZ와 유사.

Same-zone HA도 있음 (single AZ region에서) — 비용 ↓.

VNet 통합

Public access enabled = false
VNet = your-vnet
Subnet = pg-subnet

private endpoint 또는 VNet-injected — 인터넷 노출 없이 운영. 보안 강화의 표준입니다.

Entra ID 인증

# Microsoft Entra ID(AD)로 토큰 얻음
TOKEN=$(az account get-access-token --resource https://ossrdbms-aad.database.windows.net --query accessToken -o tsv)
psql "host=myserver.postgres.database.azure.com user=user@example.com password=$TOKEN sslmode=require"
-- Entra ID 사용자 추가
SELECT * FROM pgaadauth_create_principal('alice@example.com', false, false);

비밀번호 회전 자동, 통합 ID — 엔터프라이즈 친화.

확장

100+ 확장 지원합니다. 콘솔 또는 parameter로 enable:

azure.extensions = 'pg_partman,pg_stat_statements,pgvector,postgis'

지원 목록:

SELECT * FROM pg_available_extensions ORDER BY name;

백업·복구

Backup retention: 7~35일
백업 위치: locally redundant / zone redundant / geo redundant

geo redundant는 다른 region에 복사 — DR.

PITR:

Azure Portal → Server → "Restore"
→ point in time selection
→ 새 서버 생성

운영과 같은 패턴 — 새 서버로 복원해 데이터 가져옴.

모니터링

도구메모
Azure MonitorCPU·메모리·디스크·연결 등
Query Performance InsightRDS Performance Insights와 유사
Log Analytics로그 통합 분석
자체 postgres_exporterVNet 안에서 가능

pg_stat_statements·auto_explain·pgaudit 모두 지원합니다.

한계

한계메모
슈퍼유저 권한 없음azure_pg_admin 권한
OS 직접 접근 못 함로그는 콘솔
일부 확장 미지원pg_repack 등 (자체 storage 권한 필요)
메이저 업그레이드콘솔 — in-place 가능 (PG 14→15→16 등)

비용 모델

항목비용
Computetier·vCore·시간
StorageGB·month
IOPS·throughputPremium SSD v2 별도
백업DB 크기 무료, 초과 + geo redundant 별도
HA약 2배
Reserved Capacity (1·3년)30~50% 절감

작은 시작 — pgcli·psql

az postgres flexible-server connect \
  --name myserver \
  --admin-user pgadmin \
  --query "SELECT version();"

az CLI로 직접 쿼리·관리합니다.

자주 쓰는 운영 명령

# server 시작·정지 (비용 절감)
az postgres flexible-server stop --resource-group rg --name myserver
az postgres flexible-server start --resource-group rg --name myserver

# parameter 변경
az postgres flexible-server parameter set \
  --resource-group rg --server-name myserver \
  --name shared_buffers --value 4GB

# read replica
az postgres flexible-server replica create \
  --resource-group rg --replica-name myserver-rep1 \
  --source-server myserver

RDS vs Flexible Server

측면RDSFlexible Server
운영 부담낮음낮음
HAMulti-AZZone-redundant HA
확장100+100+
인증IAMEntra ID
모니터링Performance InsightsQuery Performance Insight
비용 (대략 같은 사양)비슷
자유도비슷VNet 통합 + 시작·정지 가능 (RDS는 hibernate)

대부분 Azure 인프라가 있으면 자연스러운 선택.

정리

  • Azure Database for PostgreSQL Flexible Server = Azure 매니지드 PG
  • HA·read replica·자동 백업·VNet·Entra ID 인증
  • 100+ extension 지원, pg_repack 등 일부 미지원
  • 서버 stop·start 가능 — 개발 환경 비용 절감
  • in-place 메이저 업그레이드 지원
  • VNet integration·Entra ID가 엔터프라이즈 친화

다음 절(17.4)에서는 Google Cloud의 옵션 — Cloud SQL과 AlloyDB를 봅니다.