Azure Database for PostgreSQL Flexible Server
What does zop.dev create for Azure Database for PostgreSQL Flexible Server?
zop.dev provisions a PostgreSQL Flexible Server (sku GP_Standard_D2s_v3, PostgreSQL 13, storage_mb from 32768 to 33553408) with an optional read replica, firewall rule, 4 Key Vault secrets, and a db-init job. Unlike the MySQL variant, storage_scaling defaults to off, so a filling disk is a real failure mode.
| Field | Value |
|---|---|
| Cloud | azure |
Azure Database for PostgreSQL Flexible Server is Microsoft’s managed PostgreSQL offering. zop.dev provisions the server with the same credential, schema, and backup automation as its MySQL counterpart.
Server, replica, firewall rule, and Key Vault secrets
Flexible server plus optional read replica, database, firewall rule, four Key Vault secrets, and a db-init job.
PostgreSQL 13, storage_mb, and zone 2
sku_name default GP_Standard_D2s_v3; postgres_version default 13; storage_mb 32768-33553408; storage_scaling off by default; storage_tier P4; backup_retention_days 7; zone 2; enable_ssl; collation; administrator_login default psqladmin; read_replica; multi_ds.storage_scaling is off by default here
Unlike the MySQL variant, storage scaling defaults to off.
Same automation, different storage posture
The credential and schema automation matches the MySQL variant: 4 Key Vault secrets at
distinct privilege levels, a db-init job building the schemas, firewall rule and multi_ds
support. The storage default flips, though. storage_scaling is off. A PostgreSQL server
provisioned on defaults will not grow its own disk, and PostgreSQL behaves badly at 100
percent full. Either turn scaling on at creation or treat disk-usage alerting as part of the
provision, because the MySQL habit of letting auto-grow catch it does not transfer here.
What is pinned before the first query
Three settings are effectively decided at creation. administrator_login (default psqladmin)
cannot change for the server’s lifetime. The availability zone defaults to zone 2, placement
worth knowing when reasoning about zone-level failures alongside your AKS node pools. And
postgres_version defaults to 13: upgradable later, never downgradable, and each major
upgrade is a deliberate operation with an extension-compatibility check, so starting newer is
cheaper than catching up.
The storage range is deceptive
storage_mb spans 32768 to 33553408 (32 GB to roughly 32 TB), with a storage_tier default
of P4. Tier and size interact: the tier caps IOPS, so a database can have disk to spare and
still be I/O-bound. When a Postgres workload slows without the disk filling, the tier is the
setting to check before the query plans.
The replica doubles more than reads
A read replica is a second full server billing at its own SKU: capacity, storage, the lot. It
scales read traffic and shortens recovery stories, but it is not a backup:
backup_retention_days (default 7) is what answers point-in-time recovery, and the replica
faithfully replicates yesterday’s mistake along with yesterday’s data.