AZURE POSTGRESQL → STACKIT POSTGRESQL FLEX · HANDLEIDING

Azure PostgreSQL flexible server naar STACKIT PostgreSQL Flex

Een flexible server wordt één STACKIT PostgreSQL Flex-instance. StackToIT schrijft de instance met een flavor, opslag, een dagelijkse back-up, retentie en een toegangslijst die uit uw firewallregels komt. StackToIT noemt ook wat niet wordt overgenomen: de beheerderslogin, de database, de zones en, in het architectenrapport, de serverparameters. Deze handleiding volgt één demo-omgeving van invoer tot restore.

Van de Azure-server naar de STACKIT-instance

Een voor deze pagina opgestelde demo-omgeving, op 4 november 2026 beoordeeld door StackToIT: een General Purpose-server, versie 15, zone-redundante hoge beschikbaarheid, alleen privétoegang. Links: twee blokken van de invoer (de database- en serverparameterblokken zijn hier weggelaten). Rechts: het resourceblok van de STACKIT-Terraform die de engine schreef; de beoordelingsopmerkingen boven het blok in het bestand zijn hier weggelaten. De invoerblokken staan niet naast elkaar in main.tf, dus elk heeft een eigen paneel, letterlijk weergegeven.

Invoer: azurerm_postgresql_flexible_server.billingmain.tf
resource "azurerm_postgresql_flexible_server" "billing" {
  name                          = "psql-billing-gwc"
  resource_group_name           = azurerm_resource_group.data.name
  location                      = azurerm_resource_group.data.location
  version                       = "15"
  sku_name                      = "GP_Standard_D4s_v3"
  storage_mb                    = 131072
  administrator_login           = "billingadmin"
  administrator_password        = var.pg_admin_password
  backup_retention_days         = 14
  geo_redundant_backup_enabled  = false
  public_network_access_enabled = false
  zone                          = "1"

  high_availability {
    mode                      = "ZoneRedundant"
    standby_availability_zone = "2"
  }
}
Invoer: azurerm_postgresql_flexible_server_firewall_rule.officemain.tf
resource "azurerm_postgresql_flexible_server_firewall_rule" "office" {
  name             = "office"
  server_id        = azurerm_postgresql_flexible_server.billing.id
  start_ip_address = "203.0.113.10"
  end_ip_address   = "203.0.113.20"
}
STACKIT-Terraform van StackToITterraform/data.tf
resource "stackit_postgresflex_instance" "billing" {
  project_id = var.project_id
  name       = "psql-billing-gwc"
  version    = "15"
  flavor_id  = "4.32-replica"
  storage = {
    class = var.postgresflex_storage_class
    size  = 128
  }
  backup_schedule = "0 2 * * *"
  network = {
    acl = var.billing_allowed_cidrs
  }
  retention_days = 32
}
  • De flavor dekt de brongrootte

    De bron-SKU GP_Standard_D4s_v3 heeft 4 vCPU en 16 GiB. De run kiest 4.32-replica, de kleinste flavor met hoge beschikbaarheid in de eu01-catalogus die dat dekt: 4 vCPU en 32 GiB. Hoge beschikbaarheid wordt een replica-flavor, die de run beschrijft als drie nodes die elkaar spiegelen. De run beweert niet waar elke node draait of hoe een failover zich gedraagt.

  • Back-ups volgens de mogelijkheden van STACKIT

    Azure bewaart 14 dagen; de provider accepteert 32 tot 90, dus retention_days wordt 32. De run stelt 02:00 dagelijks in als standaardschema, en STACKIT documenteert alleen dagelijkse back-ups. Point-in-time-herstel op PostgreSQL Flex maakt een nieuwe gekloonde instance.

  • Versie en opslag worden overgenomen

    De run meldt dat PostgreSQL Flex versie 15 aanbiedt (het aanbod loopt van 14 tot 18). De 131072 MB opslag wordt size 128; de opslagklasse is een variabele zonder standaardwaarde, dus u kiest die zelf.

  • Firewallregels worden de ACL

    Het bereik 203.0.113.10 tot 203.0.113.20 wordt omgezet in vier CIDR's in de standaardwaarde van de ACL-variabele, dus de lijst bevestigt u zelf.

Wat het concept niet heeft overgenomen

Letterlijke regels uit de opmerkingen in terraform/data.tf. Dit is het werk dat overblijft nadat de instance bestaat.

Opmerkingsregels in het conceptterraform/data.tf
# NOT CARRIED (azurerm_postgresql_flexible_server.billing): administrator_login = billingadmin, administrator_password — the administrator login is not generated: create the users with stackit_postgresflex_user (pinned provider).
# NOT CARRIED (azurerm_postgresql_flexible_server.billing): public_network_access_enabled = false — the public-network access switch has no counterpart: clients reach the STACKIT instance through its ACL (network.acl) either way.
# NOT CARRIED (azurerm_postgresql_flexible_server.billing): zone = 1, high_availability.standby_availability_zone = 2 — the availability zone and the high-availability standby zone are not generated (pinned provider).
# NOT CARRIED (azurerm_postgresql_flexible_server_database.invoices): name = invoices, charset = UTF8, collation = en_US.utf8 — create the database with stackit_postgresflex_database (pinned provider) and restore its data.
# LEDGER backup retention: 14 days → retention_days = 32 — TRANSFORMED
# LEDGER network exposure: private → instance endpoint restricted by ACL — REVIEW
# LEDGER high availability: standby / multi-node → flavor_id = "4.32-replica" (a replica flavor: three nodes that mirror each other; no STACKIT page states the zone of each node or how a failover works, so a zone failure or an automatic takeover is not claimed) — TRANSFORMED
ACL-variabele van het conceptterraform/variables.tf
variable "billing_allowed_cidrs" {
  type        = list(string)
  description = "CIDRs allowed to reach azurerm_postgresql_flexible_server.billing. Default: the address ranges of the source server's firewall rules, as CIDRs."
  default     = ["203.0.113.10/31", "203.0.113.12/30", "203.0.113.16/30", "203.0.113.20/32"]
}
  • Gebruikers en databases declareert u zelf

    De beheerderslogin wordt niet gegenereerd, en de database evenmin. De opmerkingen noemen stackit_postgresflex_user en stackit_postgresflex_database als de te gebruiken resources.

  • Privé wordt beperkt door een ACL

    Een STACKIT-instance heeft een eigen hostnaam en IPv4-adres en is standaard bereikbaar vanuit vooraf gedefinieerde STACKIT-adresbereiken; de ACL voegt uw eigen bereiken toe. Een private scope bestaat als opt-in voor ingeschakelde accounts en kan nog veranderen, dus de blootstelling van een private Azure-server verandert, tenzij u die scope verkrijgt.

  • Serverparameters vereisen handmatige controle

    De demo stelt log_min_duration_statement in op 500. Het concept bevat daarvoor geen regel; de instelling staat alleen in het architectenrapport als openstaande kritieke instelling, dus som uw serverparameters op en controleer ze stuk voor stuk handmatig.

Hoe de instellingen in deze run worden gekoppeld

Azure-instellingSTACKIT-conceptWie handelt
version = 15version = 15Bevestig de engineversie aan de hand van de catalogus
sku_name GP_Standard_D4s_v3flavor_id 4.32-replicaData Architect bevestigt grootte en aantal nodes
storage_mb 131072storage size 128, klasse uit een variabeleKies de opslagklasse
backup_retention_days 14retention_days 32, schema 0 2 * * *Accepteer de nieuwe retentie
geo_redundant_backup_enabled falseNiet gegenereerd; openstaande instellingData Architect bevestigt dat de back-uplocatie overeenkomt
public_network_access_enabled falsenetwork.acl uit de variabeleNetwork Architect bepaalt de scope
Firewallregel officeVier CIDR's in de standaardwaarde van de ACLBevestig de bereiken
administrator_login, database invoicesNiet gegenereerdDeclareer gebruikers en database

Klassen zoals de run ze bepaalde: REPLATFORM met zekerheidsniveau MEDIUM voor de server. De database, de regel en de parameter maken deel uit van de servereenheid.

De stappen in volgorde

  1. Beoordeel de Terraform

    Voer stacktoit assess uit op de map met de azurerm-code en lees de openstaande vragen die de run toont. De demo heeft één variabele zonder waarde, het beheerderswachtwoord; de run meldt die en geeft aan dat die niets tegenhoudt.

  2. Werk de vier pakketten af

    De run groepeert de openstaande instellingen in vier werkpakketten met elk een eigenaar: Data, Identity, Network en Platform Architect. Ze bevatten de back-uplocatie, de scope van de resourcegroep en de beheerderslogin, de blootstelling en de firewallbereiken, en de standby-zone en namen.

  3. Voeg gebruikers en de database toe

    Declareer de gebruikers en de database zoals beschreven in de volgende sectie, met de eigenaar ingesteld op een gedeclareerde gebruiker. De provider genereert het wachtwoord van elke gebruiker en markeert het als gevoelig.

  4. Dump en restore

    Azure documenteert hiervoor pg_dump en pg_restore, met het directoryformaat voor parallelle verwerking. pg_dump verwerkt één database tegelijk en dumpt geen rollen. Maak de rollen aan als gebruikers op de nieuwe instance in plaats van een roldump af te spelen, en controleer daarna de grants.

  5. Wijs clients naar de nieuwe host

    Verbindingsstrings gebruiken de hostnaam van de instance en poort 5432, en STACKIT adviseert de ACL te controleren als een verbinding een time-out geeft. De run voegt toe dat PostgreSQL Flex verbindingen altijd versleutelt met TLS 1.3, dus clients moeten dat ondersteunen en het nieuwe servercertificaat vertrouwen.

Gebruikers, database en de verplaatsing, handmatig

  • Eerst de gebruikers

    Declareer één stackit_postgresflex_user per applicatielogin met project_id, instance_id, username en roles; het eigen voorbeeld van de provider gebruikt de rol login. Het wachtwoord is een alleen-lezen, gevoelig attribuut dat de provider vult, dus het belandt in de state.

  • Dan de database

    stackit_postgresflex_database neemt een naam en een eigenaar, de username van een gedeclareerde gebruiker. In de demo is dat de database invoices, met de applicatiegebruiker als eigenaar.

  • Dump in het directoryformaat

    Azure documenteert pg_dump -Fd -j met een aantal cores voor grotere databases, en pg_restore -Fd -j -d naar de doeldatabase, met fouten naar errors.log geschreven en achteraf gecontroleerd. Dit is een gangbare werkwijze die u zelf uitvoert; StackToIT voert geen van beide commando's uit.

  • Clientversies zijn belangrijk

    Azure geeft aan dat de tools dezelfde of een nieuwere hoofdversie moeten hebben dan de servers waaruit u exporteert en waarin u importeert. Met versie 15 aan beide kanten voldoen tools van versie 15 of nieuwer.

  • Rollen zonder wachtwoorden

    Op een flexible server vereist pg_dumpall -r de optie --no-role-passwords, omdat de wachtwoorden van rollen daar niet te lezen zijn. Een roldump bevat dus geen wachtwoorden; de STACKIT-gebruikers krijgen de wachtwoorden die de provider genereert.

  • Een restore maakt een nieuwe instance

    STACKIT herstelt een back-up of een tijdstip door een kloon te maken in een nieuwe instance in hetzelfde project. Houd er rekening mee dat een restore de hostnaam wijzigt waarmee clients verbinden.

Vragen van databaseteams

Wordt geo-redundante back-up overgenomen?

Het concept stelt geen back-uplocatie in, en de provider heeft er geen attribuut voor. De run laat de instelling open en vraagt een medewerker te bevestigen dat de STACKIT-back-ups, die in de regio blijven, volstaan.

Kunnen we een dump met rollen uit Azure herstellen?

Azure documenteert het dumpen van rollen met pg_dumpall en de optie --no-role-passwords op flexible servers. Maak op STACKIT gebruikers aan met de providerresource en stel grants zelf in; ga er niet van uit dat een afgespeelde roldump werkt.

Hoeveel downtime vergen dump en restore?

Dat hangt af van de omvang van de data en de wijzigingsfrequentie, die de bron niet vermeldt. De run vermeldt dat in de notities over dataverplaatsing, noemt alleen de ingerichte 131072 MB, wat niet de omvang van de data is, en laat de methode aan u over.

Is de instance bereikbaar zoals de private Azure-server?

Niet standaard. Die is bereikbaar vanuit de bereiken in de ACL en vanuit vooraf gedefinieerde STACKIT-bereiken. Bepaal de ACL en vraag u af of u de private scope nodig hebt, voordat u iets toepast.

Bronnen

Uw volgende stap: STACKIT.

Vertel ons over uw omgeving, dan laten wij zien wat StackToIT daarvoor oplevert: doelarchitectuur, Terraform-artefacten en een gestructureerd migratieplan.

Laat uw gegevens achter, onze specialisten nemen contact met u op.

Liever zelf een e-mail sturen? connect@stacktoit.com

Wij gebruiken uw gegevens alleen om dit verzoek te beantwoorden en een mogelijke pilot te bespreken. Privacyverklaring