Distribuera Linux- och PostgreSQL-infrastruktur
Den här lektionen vägleder dig genom skapandet av de beräkningsresurser som är värdar för ditt program i Azure.
Det finns flera metoder för att distribuera infrastruktur i Azure, inklusive mallarna Azure Portal, Azure CLI och infrastruktur som kod (inklusive Bicep och Terraform). I den här lektionen distribuerar du en förkonfigurerad Bicep-mall som kapslar in de beräkningsresurser som krävs för ditt program. De viktigaste resurserna är:
- En virtuell dator som kör Linux (Ubuntu 24.04 LTS)
- Azure Database for Postgres som kör Postgres 16 eller senare
- En hanterad identitet för att aktivera säker åtkomst från den virtuella datorn till databasen
- RBAC, inklusive roller för åtkomst till databasen som administratör, och mer restriktiva roller för själva programmet
- Ett virtuellt nätverk för både den virtuella datorn och databasen
Eftersom det här exemplet är en utvecklings-/testarbetsbelastning, och vi vill behålla saker både kostnadseffektiva och högpresterande, valde vi följande konfiguration åt dig:
Den virtuella datorn är en Standard D2s_v4 (två vCPU:er, 8 GB minne). Den har Azure Premium SSD med högst 3 200 I/O-åtgärder per sekund (IOPS) och 128 GB lagringsutrymme. Den har en ansluten P10 128-GB Premium SSD-disk med 500 IOPS för OS-disken. Du kan uppgradera OS-disken så att den matchar den virtuella datorns IOPS efter behov.
Databasen är en Generell användning D2ds_v4 (två virtuella kärnor, 8 GB RAM-minne) med högst 3 200 IOPS. Den har en P10 128-GB Premium SSD-disk med 500 IOPS. Du kan uppgradera den här disken så att den matchar beräknings-IOPS efter behov.
När modulen är klar tar du bort dessa resurser för att spara kostnader. Du kan dock också inaktivera den virtuella datorn och databasen när de inte används för att spara beräkningskostnader och bara betala för det lagringsutrymme som du använder. Du kan också skala upp den här arbetsbelastningen efter behov.
Bicep-mallen i den här modulen använder Azure Verified Modules (AVM). AVM är ett initiativ för att standardisera moduler för infrastruktur som kod. Microsoft underhåller dessa moduler och kapslar in många metodtips för att distribuera resurser i Azure.
Se till att du har en Azure-prenumeration och Azure CLI
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.
Den här modulen kräver Azure CLI version 2.0.30 eller senare. Hitta versionen med hjälp av följande kommando:
az --version
Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI.
Logga in på Azure med hjälp av Azure CLI
Om du vill köra kommandon i Azure med hjälp av Azure CLI måste du logga in först. Logga in med kommandot az login :
az login
Skapa en resursgrupp
En resursgrupp är en container för relaterade resurser. Alla resurser måste placeras i en resursgrupp. Använd kommandot az group create för att skapa en resursgrupp:
az group create \
--name 240900-linux-postgres \
--location westus2
Distribuera Bicep-mallen med hjälp av Azure CLI
Bicep är ett domänspecifikt språk (DSL) som använder deklarativ syntax för att distribuera Azure-resurser. I en Bicep-fil definierar du den infrastruktur som du vill distribuera till Azure. Sedan använder du filen under hela utvecklingslivscykeln för att distribuera infrastrukturen upprepade gånger. Dina resurser distribueras på ett konsekvent sätt.
Den Bicep-fil som du använder för att distribuera beräkningsresurserna för den här enheten finns på GitHub-lagringsplatsen deploy/vm-postgres.bicep . Den innehåller en virtuell dator, ett virtuellt nätverk, en hanterad identitet och en nätverkssäkerhetsgrupp (NSG) för den virtuella datorn. Du kan läsa mer om Bicep i Vad är Bicep?.
Klona exempeldatabasen till den lokala datorn:
git clone https://github.com/Azure-Samples/linux-postgres-migration.gitGå till
linux-postgres-migrationkatalogen:cd linux-postgres-migrationDistribuera Bicep-mallen:
az deployment group create \ --resource-group 240900-linux-postgres \ --template-file deploy/vm-postgres.bicep
När distributionen är klar bekräftar JSON-utdata att resurserna har distribuerats.
I nästa avsnitt konfigurerar och utforskar du RBAC-roller och nätverkssäkerhetsregler för din distribuerade infrastruktur med hjälp av Azure Portal. När du använder Azure Portal kan du koda roller och regler i Bicep-mallen. Azure Portal tillhandahåller ett visuellt gränssnitt som gör det enklare att förstå relationerna mellan resurser och de behörigheter som tilldelas dem.
Öppna resursgruppen i Azure Portal
Öppna Azure-portalen.
På tjänstmenyn väljer du Resursgrupper.
I fönstret Resursgrupper väljer du resursgruppen
240900-linux-postgres.
I den övre högra delen av fönstret visar området Distributioner status för din Bicep-malldistribution. När distributionen lyckas visas Lyckades.
Visa den virtuella datorns nätverkssäkerhetsgrupp
Välj den virtuella datorn.
vm-1I avsnittet Nätverk väljer du Nätverksinställningar.
Nätverksinställningarna visar att nätverkssäkerhetsgruppen (240900-linux-postgres-nsg) är ansluten till samma undernät i det virtuella nätverket (240900-linux-postgres-vnet) som den virtuella datorn.
NSG:n visas också i resursgruppen. Den innehåller en uppsättning regler för inkommande och utgående säkerhet som styr trafiken till och från den virtuella datorn.
Gå tillbaka till resursgruppen
Längst upp på sidan väljer du länken breadcrumb för att återgå till resursgruppen (Home > Resource groups > 240900-linux-postgres).
Observera att den 240900-linux-postgres-identity användartilldelade hanterade identiteten visas i resursgruppen.
Du kan lära dig mer om systemtilldelade och användartilldelade hanterade identiteter i Vad är hanterade identiteter för Azure-resurser?.
Lägga till en regel för inkommande säkerhet i nätverkssäkerhetsgruppen
Lägg till en inkommande säkerhetsregel i NSG:n för att tillåta SSH-trafik från din aktuella IP-adress till den virtuella datorn.
I ett produktionsscenario använder du ofta just-in-time-åtkomst, Azure Bastion eller ett VPN (till exempel Azure eller ett mesh-VPN) för att begränsa åtkomsten till den virtuella datorn.
Välj
240900-linux-postgres-nsg.Välj Inställningar>Inkommande säkerhetsregler.
Välj Lägg till.
Under Källa väljer du Min IP-adress.
Under Tjänst väljer du SSH.
Välj Lägg till.
Visa administratören för flexibel Azure Database for PostgreSQL-server
Leta upp och välj den flexibla servern Azure Database for PostgreSQL. Den heter
postgres-xxxxx, därxxxxxär en unik sträng som Bicep-mallen definierade. Strängen förblir konsekvent mellan distributioner till din prenumeration och resursgrupp.Välj Säkerhetsautentisering>.
I det här scenariot använder du endast Microsoft Entra-autentisering. Den 240900-linux-postgres-identity användartilldelade hanterade identiteten visas under Microsoft Entra-administratörer.
Den 240900-linux-postgres-identity hanterade identiteten är för närvarande den enda administratören för servern. Du kan också lägga till ett eget användarkonto som administratör. Men i det här scenariot använder du den hanterade identitet som redan finns.
I ett kommande avsnitt använder du identiteten från den virtuella datorn för att administrera servern via Azure CLI. Du använder också den identiteten för att ge åtkomst till servern för ditt program.
I ett produktionsscenario skulle du förmodligen använda en kombination av hanterade identiteter, Microsoft Entra-ID och detaljerad RBAC för att göra det möjligt för programarbetsbelastningen att komma åt data och hantera resurser på ett säkert sätt i Azure. Du följer principen om lägsta behörighet.
Läs mer om dessa scenarier i Microsoft Entra-autentisering med Azure Database for PostgreSQL – flexibel server och använd Microsoft Entra-ID för autentisering med Azure Database for PostgreSQL – flexibel server.
Granska brandväggsreglerna för Azure Database for PostgreSQL – flexibel server
Välj Inställningar>Nätverk.
Om du administrerade servern från den lokala datorn i stället för den virtuella datorn skulle du behöva lägga till din IP-adress i brandväggsreglerna.
Du kan skapa en brandväggsregel för din aktuella IP-adress genom att välja Lägg till aktuell klient-IP-adress (xxx.xxx.xxx.xxx)>Spara. Med den här regeln kan du komma åt utvecklings-/testservern med hjälp av verktyg på den lokala datorn. Men eftersom du använder en virtuell dator för att komma åt databasen skapar du ingen brandväggsregel just nu.
I produktion skulle du sannolikt isolera den här servern från det offentliga Internet helt genom att rensa alternativet Tillåt offentlig åtkomst till den här resursen via Internet med hjälp av ett offentligt IP-adressalternativ .
Till skillnad från den virtuella datorn har du inte associerat Azure Database for PostgreSQL med något virtuellt nätverk. Du behåller alternativet att komma åt Azure Database for PostgreSQL via det offentliga Internet, vilket är användbart för utvecklings-/testscenarier.
För att ge både säkerhet och flexibilitet kan du aktivera åtkomst från den virtuella datorn via dess virtuella nätverk med hjälp av en privat slutpunkt. Med den privata slutpunkten kan den virtuella datorn komma åt databasen utan att exponera den för det offentliga Internet. Läs mer om privata slutpunkter i Azure Database for PostgreSQL – flexibel servernätverk med Private Link.
Här har den privata slutpunkten skapats åt dig med hjälp av Bicep.
Granska rolltilldelningarna för den virtuella datorns systemtilldelade hanterade identitet
Gå tillbaka till
240900-linux-postgresresursgruppen och väljvm-1.På tjänstmenyn väljer du Säkerhetsidentitet>.
Här kan du bekräfta att den systemtilldelade hanterade identiteten är kopplad till den virtuella datorn.
Under Systemtilldelad väljer du Azure-rolltilldelningar.
Här kan du bekräfta att rollen Läsare har tilldelats till den systemtilldelade hanterade identiteten. Rollen är begränsad till
240900-linux-postgresresursgruppen.
Med behörigheterna i den här identiteten kan du använda Azure CLI på den virtuella datorn för att lista resurser i resursgruppen. Med den här möjligheten behöver du inte hårdkoda specifik resursinformation i dina skript.
I ett senare skede tilldelar du ytterligare en roll till den virtuella datorns hanterade identitet så att den virtuella datorn kan komma åt ett Azure Blob Storage-konto direkt.
Nu ska du utforska och konfigurera den distribuerade infrastrukturen.
Resurser
- Azure-verifierade moduler
- Installera Azure CLI
- Skapa en resursgrupp med hjälp av Azure CLI
- Azure RBAC
- Azure-hanterad identitet
- Vad är Bicep?
- Vad är hanterade identiteter för Azure-resurser?
- Aktivera just-in-time-åtkomst på virtuella datorer
- Vad är Azure Bastion?
- Microsoft Entra-autentisering med Azure Database for PostgreSQL – flexibel server
- Använda Microsoft Entra-ID för autentisering med Azure Database for PostgreSQL – flexibel server
- Azure Database for PostgreSQL – flexibel servernätverk med Private Link