Back to articles Azure / Databases

PostgreSQL flexible server: out of the delegated subnet, on to private endpoints

DN
Drazen Nikolic
6 min read

Anyone running Azure Database for PostgreSQL flexible server with VNet integration was stuck until now. The server sat in a delegated subnet, could not move to another network and could not use private endpoints. Since early November 2026 there is a way out without rebuilding.

The step is short but final. The order of tasks deserves a close look, so that ten minutes of interruption do not turn into half a day.

Why the move can pay off

Microsoft now calls Private Link the recommended alternative to VNet integration. The reasons are in the limitations of VNet integration:

  • A server in a delegated subnet cannot be moved to another VNet or subnet.
  • The subnet cannot be enlarged once resources are in it.
  • Nothing else may live in the delegated subnet, and Private Link is not available there.

With a private endpoint, the server sits outside your network and is reached through a private IP address. Several endpoints in different VNets are possible, as is access from on-premises over VPN or ExpressRoute. According to Microsoft, high availability, read replicas and major version upgrades also work with private endpoints.

More on this: Standard service endpoint: when it replaces private endpoints and when it does not

What happens during the switch

ItemAccording to Microsoft
Durationtypically up to 20 minutes in the Updating state
Interruptionserver unreachable for up to 10 minutes, open connections are closed
Backupskept, including geo-redundant ones
Public accessdisabled by default afterwards
Reachability afterwardsonly once a private endpoint or firewall rule is in place
Way backnone, the server cannot return to a VNet
Before and after diagram. Left: the PostgreSQL server sits in the delegated subnet of the app VNet. Middle: one-time, irreversible change with up to 10 minutes of interruption. Right: the server sits outside the VNet and is reached through a private endpoint in the app subnet, also from on-premises and from other VNets.
Based on Microsoft Learn, as of 3 Nov 2026.

The order within the maintenance window

  • Before: choose the subnet for the private endpoint and link the private DNS zone privatelink.postgres.database.azure.com to every VNet that needs access. With on-premises DNS servers, check the forwarding.
  • Before: check connection strings. Microsoft advises always using the fully qualified name because the IP address may change.
  • In the window: start the change and wait until the state moves from Updating to Ready.
  • Right after: create the private endpoint and check that the server name resolves to the private address.
  • Afterwards: test applications, backup tools and monitoring.
az postgres flexible-server migrate-network \
  --resource-group <resource_group> \
  --name <server>

az postgres flexible-server show \
  --resource-group <resource_group> \
  --name <server> \
  --query "state"

In the portal, the option under Networking is called “Public access (allowed IP addresses) and private endpoints”. The confirmation dialog spells out the consequences once more.

Three places where it goes wrong

Terraform is the most dangerous. If the configuration still contains delegated_subnet_id, Terraform plans a new server, because that value forces a replacement. In addition, the provider sets public_network_access_enabled to true when omitted and would reopen public access. Adjust both before the next apply and confirm in the plan that no replacement is scheduled.

Logical replication can break. Subscribers open the connection to the publisher themselves. The private path through the delegated subnet disappears, so every subscriber has to reach the private endpoint, through the same VNet, peering, VPN or ExpressRoute.

IP addresses hard-coded in applications, firewalls or scripts point nowhere after the change. That includes rules in firewalls at on-premises sites.

Finding affected servers

The Azure Resource Graph query lists every flexible server that still sits in a delegated subnet.

resources
| where type =~ 'microsoft.dbforpostgresql/flexibleservers'
| extend subnet = tostring(properties.network.delegatedSubnetResourceId)
| where isnotempty(subnet)
| project name, resourceGroup, location, version = tostring(properties.version), subnet
| order by version asc

The version column also shows which servers need a major version upgrade soon anyway. For PostgreSQL 14, paid Extended Support begins on 1 February 2027. Planning both changes together means coordinating with the application owners only once, even if it remains two maintenance windows.

More on this: PostgreSQL 14 on Azure: from 1 February 2027 every vCore costs extra

Is it worth it for every server?

No. A server used only by applications in the same VNet that does not need to grow keeps working with VNet integration at no disadvantage. The move becomes interesting when access from several VNets or from on-premises is needed, the subnet is too small or the network architecture is to be standardised on private endpoints. An architecture review sorts each server into one of these groups, and your team carries out the change in the maintenance window.

Frequently asked questions

How long is the server unreachable during the change?

According to Microsoft, typically up to 10 minutes, with the whole operation taking up to 20 minutes. After that the server stays unreachable until a private endpoint or firewall rule is in place.

Can I undo the change?

No. Microsoft describes the operation as irreversible, and the server cannot return to a VNet.

Are my backups kept?

Yes. All backups taken before the change remain available, including geo-redundant ones.

What does a private endpoint cost?

According to the US price list, 0.01 US dollars per hour, about 7.30 US dollars a month, plus 0.01 US dollars per GB of processed data in each direction.

Sources (as of 3 November 2026)

  1. Azure Update 574541: change from virtual network integration to a private endpoint capable network configuration (November 2026)
  2. Microsoft Learn: Change from virtual network integration to a private endpoint-capable network configuration
  3. Microsoft Learn: Network with private access (virtual network integration), Azure Database for PostgreSQL
  4. Microsoft Learn: Networking with Private Link, Azure Database for PostgreSQL

Which of your database servers should move?

In the initial call we look at which servers are affected and what has to be ready before the maintenance window.

Book an initial call