Linux- en PostgreSQL-infrastructuur implementeren
In deze les wordt u begeleid bij het maken van de rekenresources die als host fungeren voor uw toepassing in Azure.
Er zijn meerdere methoden voor het implementeren van infrastructuur in Azure, waaronder Azure Portal, de Azure CLI en sjablonen voor infrastructuur als code (inclusief Bicep en Terraform). In deze les implementeert u een vooraf geconfigureerde Bicep-sjabloon waarmee de rekenresources worden ingekapseld die nodig zijn voor uw toepassing. De belangrijkste resources zijn:
- Een virtuele machine met Linux (Ubuntu 24.04 LTS)
- Azure Database for Postgres draaiend op Postgres 16 of hoger
- Een beheerde identiteit om beveiligde toegang van de VM naar de database mogelijk te maken
- RBAC, inclusief rollen voor toegang tot de database als beheerder en meer beperkende rollen voor de toepassing zelf
- Een virtueel netwerk voor zowel de VIRTUELE machine als de database
Omdat dit voorbeeld een dev/test-workload is en we zowel rendabel als performant willen blijven, hebben we de volgende configuratie voor u gekozen:
De VIRTUELE machine is een Standard-D2s_v4 (twee vCPU's, 8 GB geheugen). Het heeft Azure Premium SSD met 3.200 maximale I/O-bewerkingen per seconde (IOPS) en 128 GB opslagruimte. Het heeft een gekoppelde P10 128-GB Premium SSD-schijf met 500 IOPS voor de besturingssysteemschijf. U kunt de besturingssysteemschijf naar behoefte upgraden zodat deze overeenkomt met de IOPS van de VIRTUELE machine.
De database is een algemeen D2ds_v4 (twee vCores, 8 GB RAM) met maximaal 3.200 IOPS. Het heeft een P10 128 GB Premium SSD-schijf met 500 IOPS. U kunt deze schijf naar behoefte upgraden zodat deze overeenkomt met de reken-IOPS.
Wanneer de module is voltooid, verwijdert u deze resources om kosten te besparen. U kunt de VIRTUELE machine en database echter ook uitschakelen wanneer ze niet in gebruik zijn om rekenkosten te besparen en alleen te betalen voor de opslag die u gebruikt. U kunt deze workload ook naar behoefte omhoog schalen.
De Bicep-sjabloon in deze module maakt gebruik van AVM (Azure Verified Modules). AVM is een initiatief voor het standaardiseren van modules voor infrastructuur als code. Microsoft onderhoudt deze modules en ze bevatten veel aanbevolen procedures voor het implementeren van resources in Azure.
Zorg ervoor dat u een Azure-abonnement en de Azure CLI hebt
Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
Voor deze module is Azure CLI versie 2.0.30 of hoger vereist. Zoek de versie met behulp van de volgende opdracht:
az --version
Raadpleeg Azure CLI installeren als u de Azure CLI wilt installeren of upgraden.
Aanmelden bij Azure met behulp van de Azure CLI
Als u opdrachten wilt uitvoeren in Azure met behulp van de Azure CLI, moet u zich eerst aanmelden. Meld u aan met behulp van de az login opdracht:
az login
Een brongroep maken
Een resourcegroep is een container voor gerelateerde resources. Alle resources moeten in een resourcegroep worden geplaatst. Gebruik de opdracht az group create om een resourcegroep te maken:
az group create \
--name 240900-linux-postgres \
--location westus2
De Bicep-sjabloon implementeren met behulp van de Azure CLI
Bicep is een domeinspecifieke taal (DSL) die declaratieve syntaxis gebruikt om Azure-resources te implementeren. In een Bicep-bestand definieert u de infrastructuur die u wilt implementeren in Azure. Vervolgens gebruikt u dat bestand gedurende de levenscyclus van de ontwikkeling om uw infrastructuur herhaaldelijk te implementeren. Uw resources worden op een consistente manier geïmplementeerd.
Het Bicep-bestand dat u gebruikt om de rekenresources voor deze eenheid te implementeren, bevindt zich in de GitHub-opslagplaats deploy/vm-postgres.bicep . Deze bevat een virtuele machine, een virtueel netwerk, een beheerde identiteit en een netwerkbeveiligingsgroep (NSG) voor de virtuele machine. Meer informatie over Bicep vindt u in Wat is Bicep?
Kloon de voorbeeldopslagplaats naar uw lokale computer:
git clone https://github.com/Azure-Samples/linux-postgres-migration.gitGa naar de
linux-postgres-migrationmap:cd linux-postgres-migrationDe Bicep-sjabloon implementeren:
az deployment group create \ --resource-group 240900-linux-postgres \ --template-file deploy/vm-postgres.bicep
Na voltooiing van de implementatie bevestigt de JSON-uitvoer dat de resources zijn geïmplementeerd.
In de volgende secties gaat u RBAC-rollen en netwerkbeveiligingsregels voor uw geïmplementeerde infrastructuur configureren en verkennen met behulp van Azure Portal. Wanneer u Azure Portal gebruikt, kunt u de rollen en regels coderen in de Bicep-sjabloon. Azure Portal biedt een visuele interface waarmee u gemakkelijker inzicht krijgt in de relaties tussen resources en de machtigingen die eraan zijn toegewezen.
Open de resourcegroep in Azure Portal
Open Azure Portal.
Selecteer Resourcegroepen in het servicemenu.
Selecteer in het deelvenster Resourcegroepen de resourcegroep
240900-linux-postgres.
In het gedeelte rechtsboven in het deelvenster wordt in het gebied Implementaties de status van uw Bicep-sjabloonimplementatie weergegeven. Wanneer de implementatie is geslaagd, wordt geslaagd weergegeven.
De netwerkbeveiligingsgroep van de virtuele machine weergeven
Selecteer de virtuele machine.
vm-1Selecteer Netwerkinstellingen in de sectie Netwerken.
De netwerkinstellingen geven aan dat de netwerkbeveiligingsgroep (240900-linux-postgres-nsg) is gekoppeld aan hetzelfde subnet van het virtuele netwerk (240900-linux-postgres-vnet) als de virtuele machine.
De NSG is ook zichtbaar in de resourcegroep. Het bevat een set inkomende en uitgaande beveiligingsregels waarmee het verkeer van en naar de virtuele machine wordt bepaald.
Terug naar de resourcegroep
Selecteer bovenaan de pagina de breadcrumb-koppeling om terug te keren naar de resourcegroep (Home > Resource groups > 240900-linux-postgres).
De door de 240900-linux-postgres-identity gebruiker toegewezen beheerde identiteit wordt vermeld in de resourcegroep.
Meer informatie over door het systeem toegewezen en door de gebruiker toegewezen beheerde identiteiten vindt u in Wat zijn beheerde identiteiten voor Azure-resources?
Een binnenkomende beveiligingsregel toevoegen aan de netwerkbeveiligingsgroep
Voeg een beveiligingsregel voor inkomend verkeer toe aan de NSG om SSH-verkeer van uw huidige IP-adres naar de virtuele machine toe te staan.
In een productiescenario gebruikt u vaak Just-In-Time-toegang, Azure Bastion of een VPN (zoals Azure of een mesh VPN) om de toegang tot uw virtuele machine te beperken.
Selecteer
240900-linux-postgres-nsg.> SelecteerInstellingen voor binnenkomende beveiligingsregels.
Selecteer Toevoegen.
Selecteer Mijn IP-adres onder Bron.
Selecteer onder Servicede optie SSH.
Selecteer Toevoegen.
De beheerder voor de flexibele Azure Database for PostgreSQL-server weergeven
Zoek en selecteer de flexibele Azure Database for PostgreSQL-server. De naam
postgres-xxxxxis eenxxxxxunieke tekenreeks die door de Bicep-sjabloon is gedefinieerd. De tekenreeks blijft consistent voor implementaties in uw abonnement en resourcegroep.Selecteer Beveiliging>Authenticatie.
Voor dit scenario gebruikt u alleen Microsoft Entra-verificatie. De 240900-linux-postgres-identity door de gebruiker toegewezen beheerde identiteit wordt vermeld onder Microsoft Entra-beheerders.
De 240900-linux-postgres-identity beheerde identiteit is momenteel de enige beheerder voor de server. U kunt eventueel uw eigen gebruikersaccount toevoegen als beheerder. Voor dit scenario gebruikt u echter de beheerde identiteit die al aanwezig is.
In een volgende sectie gebruikt u de identiteit van de virtuele machine om de server te beheren via de Azure CLI. U gebruikt die identiteit ook om toegang te verlenen tot de server voor uw toepassing.
In een productiescenario gebruikt u waarschijnlijk een combinatie van beheerde identiteiten, Microsoft Entra-id en fijnmazige RBAC om uw toepassingsworkload toegang te geven tot gegevens en resources veilig te beheren in Azure. U volgt het principe van minimale bevoegdheden.
Lees meer over deze scenario's in Microsoft Entra-verificatie met Azure Database for PostgreSQL - Flexible Server en Microsoft Entra ID gebruiken voor verificatie met Azure Database for PostgreSQL - Flexible Server.
Controleer de firewallregels voor Azure Database for PostgreSQL Flexible Server
Selecteer Instellingen>netwerken.
Als u de server vanaf uw lokale computer beheert in plaats van de virtuele machine, moet u uw IP-adres toevoegen aan de firewallregels.
U kunt een firewallregel maken voor uw huidige IP-adres door huidig IP-adres van de client toevoegen (xxx.xxx.xxx.xxx)>Opslaan te selecteren. Met deze regel hebt u toegang tot de ontwikkel-/testserver met behulp van hulpprogramma's op uw lokale computer. Maar omdat u een virtuele machine gebruikt voor toegang tot de database, maakt u op dit moment geen firewallregel.
In productie zou u deze server waarschijnlijk volledig van het openbare internet isoleren door de optie De openbare toegang tot deze resource via het internet toestaan met een openbaar IP-adres uit te schakelen.
In tegenstelling tot de virtuele machine hebt u Azure Database for PostgreSQL niet gekoppeld aan een virtueel netwerk. U behoudt de optie voor toegang tot Azure Database for PostgreSQL via het openbare internet, wat handig is voor ontwikkel-/testscenario's.
Als u zowel beveiliging als flexibiliteit wilt bieden, schakelt u toegang vanaf de virtuele machine via het virtuele netwerk in met behulp van een privé-eindpunt. Met het privé-eindpunt heeft de virtuele machine toegang tot de database zonder deze beschikbaar te maken voor het openbare internet. Lees meer over privé-eindpunten in Azure Database for PostgreSQL - Flexible Server-netwerken met Private Link.
Hier is het privé-eindpunt voor u gemaakt met Bicep.
Controleer de roltoewijzingen voor de door het systeem toegewezen beheerde identiteit van de virtuele machine
Ga terug naar de
240900-linux-postgresresourcegroep en selecteervm-1.Selecteer Security>Identity in het servicemenu.
Hier kunt u controleren of de door het systeem toegewezen beheerde identiteit is gekoppeld aan de virtuele machine.
Selecteer onder Door het systeem toegewezenAzure-roltoewijzingen.
Hier kunt u bevestigen dat de rol Lezer is toegewezen aan de door het systeem toegewezen beheerde identiteit. De rol is gericht op de
240900-linux-postgresresourcegroep.
Met de machtigingen in deze identiteit kunt u de Azure CLI binnen de VM gebruiken om resources in de resourcegroep weer te geven. Met deze mogelijkheid hoeft u geen specifieke resourcedetails in uw scripts te coden.
In een later stadium wijst u een extra rol toe aan de beheerde identiteit van de VIRTUELE machine, zodat de VIRTUELE machine rechtstreeks toegang heeft tot een Azure Blob Storage-account.
Vervolgens gaat u de geïmplementeerde infrastructuur verkennen en configureren.
Hulpmiddelen
- Geverifieerde Azure-modules
- De Azure CLI installeren
- Een resourcegroep maken met behulp van de Azure CLI
- Azure RBAC
- Door Azure beheerde identiteit
- Wat is Bicep?
- Wat zijn beheerde identiteiten voor Azure-resources?
- Just-In-Time-toegang op VM's inschakelen
- Wat is Azure Bastion?
- Microsoft Entra-verificatie met Azure Database for PostgreSQL - Flexible Server
- Microsoft Entra-id gebruiken voor verificatie met Azure Database for PostgreSQL - Flexible Server
- Azure Database for PostgreSQL - Flexible Server-netwerken met Private Link