Udrul Linux- og PostgreSQL-infrastruktur

Fuldført

Dette undermodul fører dig gennem oprettelsen af de beregningsressourcer, der hoster dit program i Azure.

Der er flere metoder til at udrulle infrastruktur i Azure, herunder Azure Portal, Azure CLI og skabeloner for infrastruktur som kode (herunder Bicep og Terraform). I dette undermodul udruller du en forudkonfigureret Bicep-skabelon, der indkapsler de beregningsressourcer, der kræves til dit program. De vigtigste ressourcer er:

  • En virtuel maskine, der kører Linux (Ubuntu 24.04 LTS)
  • Azure Database til Postgres, der kører Postgres 16 eller nyere
  • En administreret identitet , der muliggør sikker adgang fra den virtuelle maskine til databasen
  • RBAC, herunder roller til at få adgang til databasen som administrator og mere restriktive roller for selve programmet
  • Et virtuelt netværk til både vm'en og databasen

Da dette eksempel er en udviklings-/testarbejdsbelastning, og vi vil holde tingene både omkostningseffektive og effektive, har vi valgt følgende konfiguration for dig:

  • Vm'en er en Standard-D2s_v4 (to vCP'er, 8 GB hukommelse). Det har Azure Premium SSD med 3.200 maksimale I/O-handlinger pr. sekund (IOPS) og 128 GB lagerplads. Den har en tilknyttet P10 128 GB Premium SSD-disk med 500 IOPS til operativsystemets disk. Du kan opgradere operativsystemets disk, så den svarer til VM'ens IOPS efter behov.

  • Databasen er en generel D2ds_v4 (to vCores, 8 GB RAM) med maksimalt 3.200 IOPS. Den har en P10 128 GB Premium SSD-disk med 500 IOPS. Du kan opgradere denne disk, så den svarer til beregnings-IOPS efter behov.

Når modulet er fuldført, sletter du disse ressourcer for at spare omkostninger. Du kan dog også slå den virtuelle maskine og databasen fra, når de ikke bruges til at spare beregningsomkostninger og kun betale for det lager, du bruger. Du kan også opskalere denne arbejdsbelastning efter behov.

Bicep-skabelonen i dette modul bruger AVM (Azure Verified Modules). AVM er et initiativ til at standardisere moduler med infrastruktur som kode. Microsoft vedligeholder disse moduler, og de indkapsler mange bedste fremgangsmåder til udrulning af ressourcer i Azure.

Sørg for, at du har et Azure-abonnement og Kommandolinjegrænsefladen i Azure

Hvis du ikke har et Azure-abonnement, kan du oprette en gratis konto, før du begynder.

Dette modul kræver Azure CLI version 2.0.30 eller nyere. Find versionen ved hjælp af følgende kommando:

az --version

Hvis du har brug for at installere eller opgradere, skal du se Installér Azure CLI-.

Log på Azure ved hjælp af kommandolinjegrænsefladen i Azure

Hvis du vil køre kommandoer i Azure ved hjælp af kommandolinjegrænsefladen i Azure, skal du først logge på. Log på ved hjælp af kommandoen az login :

az login

Opret en ressourcegruppe

En ressourcegruppe er en objektbeholder til relaterede ressourcer. Alle ressourcer skal placeres i en ressourcegruppe. Brug kommandoen az group create til at oprette en ressourcegruppe:

az group create \
    --name 240900-linux-postgres \
    --location westus2

Udrul Bicep-skabelonen ved hjælp af Kommandolinjegrænsefladen i Azure

Bicep er et domænespecifikt sprog (DSL), der bruger deklarativ syntaks til at installere Azure-ressourcer. I en Bicep-fil definerer du den infrastruktur, du vil udrulle til Azure. Du bruger derefter filen i hele udviklingslivscyklussen til gentagne gange at udrulle din infrastruktur. Dine ressourcer udrulles på en ensartet måde.

Den Bicep-fil, du bruger til at udrulle beregningsressourcerne for denne enhed, findes i gitHub-lageret deploy/vm-postgres.bicep . Den indeholder en virtuel maskine, et virtuelt netværk, en administreret identitet og en netværkssikkerhedsgruppe (NSG) for vm'en. Du kan læse mere om Bicep i Hvad er Bicep?.

  1. Klon eksempel-lageret til din lokale computer:

    git clone https://github.com/Azure-Samples/linux-postgres-migration.git
    
  2. Gå til mappen linux-postgres-migration :

    cd linux-postgres-migration
    
  3. Installér Bicep-skabelonen:

    az deployment group create \
        --resource-group 240900-linux-postgres \
        --template-file deploy/vm-postgres.bicep
    

Når installationen er fuldført, bekræfter JSON-outputtet, at ressourcerne er installeret.

I de næste afsnit skal du konfigurere og udforske RBAC-roller og regler for netværkssikkerhed på din udrullede infrastruktur ved hjælp af Azure Portal. Når du bruger Azure Portal, kan du kode rollerne og reglerne i Bicep-skabelonen. Azure Portal indeholder en visuel grænseflade, der gør det nemmere at forstå relationerne mellem ressourcer og de tilladelser, der er tildelt til dem.

Åbn ressourcegruppen på Azure Portal

  1. Åbn Azure-portalen.

  2. Vælg Ressourcegrupper i servicemenuen.

  3. Vælg ressourcegruppen i ruden Ressourcegrupper240900-linux-postgres.

I øverste højre del af ruden vises status for udrulningen af din Bicep-skabelon i området Udrulninger . Når installationen er fuldført, vises Lykkedes.

Få vist den virtuelle maskines netværkssikkerhedsgruppe

  1. Vælg den virtuelle maskine, vm-1.

  2. Vælg Netværksindstillinger i afsnittet Netværk.

Netværksindstillingerne viser, at netværkssikkerhedsgruppen (240900-linux-postgres-nsg) er knyttet til det samme undernet for det virtuelle netværk (240900-linux-postgres-vnet) som den virtuelle maskine.

NSG er også synlig i ressourcegruppen. Den indeholder et sæt indgående og udgående sikkerhedsregler, der styrer trafikken til og fra den virtuelle maskine.

Vend tilbage til ressourcegruppen

Øverst på siden skal du vælge brødkrummelinket for at vende tilbage til ressourcegruppen (Home > Resource groups > 240900-linux-postgres).

Bemærk, at den 240900-linux-postgres-identity brugertildelte administrerede identitet er angivet i ressourcegruppen.

Du kan få mere at vide om systemtildelt og brugertildelt administrerede identiteter i Hvad er administrerede identiteter for Azure-ressourcer?.

Føj en indgående sikkerhedsregel til netværkssikkerhedsgruppen

Føj en indgående sikkerhedsregel til NSG for at tillade SSH-trafik fra din aktuelle IP-adresse til den virtuelle maskine.

I et produktionsscenarie vil du ofte bruge just-in-time-adgang, Azure Bastion eller en VPN (f.eks. Azure eller en mesh VPN) til at begrænse adgangen til din virtuelle maskine.

  1. Vælg 240900-linux-postgres-nsg.

  2. Vælg Indstillinger>Indgående sikkerhedsregler.

  3. Vælg Tilføj.

  4. Under Kilde skal du vælge Min IP-adresse.

  5. Under Tjeneste skal du vælge SSH.

  6. Vælg Tilføj.

Vis administratoren af Azure Database for PostgreSQL-fleksibel server

  1. Find og vælg Azure Database for PostgreSQL Flexible Server. Den hedder postgres-xxxxx, hvor xxxxx er en entydig streng, som Bicep-skabelonen har defineret. Strengen forbliver konsistent på tværs af udrulninger til dit abonnement og din ressourcegruppe.

  2. Vælg Sikkerhedsgodkendelse>.

I dette scenarie bruger du kun Microsoft Entra-godkendelse. Den 240900-linux-postgres-identity brugertildelte administrerede identitet er angivet under Microsoft Entra-administratorer.

Den 240900-linux-postgres-identity administrerede identitet er i øjeblikket den eneste administrator for serveren. Du kan eventuelt tilføje din egen brugerkonto som administrator. Men i dette scenarie skal du bruge den administrerede identitet, der allerede er på plads.

I et kommende afsnit skal du bruge identiteten fra den virtuelle maskine til at administrere serveren via Kommandolinjegrænsefladen i Azure. Du kan også bruge denne identitet til at give adgang til serveren for dit program.

I et produktionsscenarie vil du sandsynligvis bruge en kombination af administrerede identiteter, Microsoft Entra ID og detaljeret RBAC for at gøre det muligt for din programarbejdsbelastning at få sikker adgang til data og administrere ressourcer i Azure. Du skal følge princippet om mindst mulige rettigheder.

Læs mere om disse scenarier i Microsoft Entra-godkendelse med Azure Database til PostgreSQL – Flexible Server og Brug Microsoft Entra ID til godkendelse med Azure Database for PostgreSQL – Flexible Server.

Gennemse Azure Database for PostgreSQL Flexible Server-firewallregler

Vælg Indstillinger>Netværk.

Hvis du administrerede serveren fra din lokale computer i stedet for den virtuelle maskine, skal du føje din IP-adresse til firewallreglerne.

Du kan oprette en firewallregel for din aktuelle IP-adresse ved at vælge Tilføj aktuel klient-IP-adresse (xxx.xxx.xxx.xxx)>Gem. Denne regel giver dig adgang til udviklings-/testserveren ved hjælp af værktøjer på din lokale computer. Men da du bruger en virtuel maskine til at få adgang til databasen, opretter du ikke en firewallregel på nuværende tidspunkt.

I produktionen vil du sandsynligvis isolere denne server fra det offentlige internet helt ved at fjerne indstillingen Tillad offentlig adgang til denne ressource via internettet ved hjælp af en offentlig IP-adresse .

I modsætning til den virtuelle maskine har du ikke knyttet Azure Database til PostgreSQL til noget virtuelt netværk. Du bevarer muligheden for at få adgang til Azure Database for PostgreSQL via det offentlige internet, hvilket er nyttigt til udviklings-/testscenarier.

Hvis du vil give både sikkerhed og fleksibilitet, skal du aktivere adgang fra den virtuelle maskine via dens virtuelle netværk ved hjælp af et privat slutpunkt. Det private slutpunkt gør det muligt for den virtuelle maskine at få adgang til databasen uden at udsætte den for det offentlige internet. Læs mere om private slutpunkter i Azure Database for PostgreSQL – Flexible Server networking with Private Link.

Her er det private slutpunkt blevet oprettet for dig ved hjælp af Bicep.

Gennemse rolletildelingerne for den virtuelle maskines systemtildelingerede administrerede identitet

  1. Gå tilbage til ressourcegruppen, 240900-linux-postgres og vælg vm-1.

  2. VælgSikkerhedsidentitet> i tjenestemenuen.

    Her kan du bekræfte, at den system-tildelte administrerede identitet er knyttet til den virtuelle maskine.

  3. Under Systemtildeling skal du vælge Azure-rolletildelinger.

    Her kan du bekræfte, at rollen Læser er tildelt den administrerede identitet, der er tildelt systemet. Rollen er begrænset til 240900-linux-postgres ressourcegruppen.

Tilladelserne i denne identitet giver dig mulighed for at bruge Kommandolinjegrænsefladen i Azure i vm'en til at få vist ressourcer i ressourcegruppen. Med denne mulighed behøver du ikke at kode specifikke ressourcedetaljer hårdt i dine scripts.

På et senere tidspunkt skal du tildele en ekstra rolle til VM'ens administrerede identitet, så vm'en kan få direkte adgang til en Azure Blob Storage-konto.

Derefter skal du udforske og konfigurere den udrullede infrastruktur.

Ressourcer