Bereitstellen der Linux- und PostgreSQL-Infrastruktur

Abgeschlossen

In dieser Lerneinheit werden Sie durch die Erstellung der Computeressourcen geführt, die Ihre Anwendung in Azure hosten.

Es gibt mehrere Methoden zum Bereitstellen der Infrastruktur in Azure, z. B. das Azure-Portal, die Azure-Befehlszeilenschnittstelle und IaC-Vorlagen (Infrastructure-as-Code), einschließlich Bicep und Terraform. In dieser Lerneinheit wird gezeigt, wie Sie eine vorkonfigurierte Bicep-Vorlage bereitstellen, die alle für Ihre Anwendung erforderlichen Computeressourcen enthält. Die wichtigsten Ressourcen sind:

Da es sich bei diesem Beispiel um eine Dev/Test-Workload handelt und alles möglichst kosteneffizient, aber auch leistungsfähig sein soll, verwenden Sie die folgende Konfiguration:

  • Die VM ist „Standard-D2s_v4“ (zwei vCPUs, 8 GB Arbeitsspeicher). Sie verfügt über Azure SSD Premium mit max. 3.200 E/A-Vorgängen pro Sekunde (IOPS) und 128 GB Speicher. Sie verfügt über einen angefügten P10 SSD Premium-Datenträger mit 128 GB und 500 IOPS für den Betriebssystemdatenträger. Sie können den Betriebssystemdatenträger bei Bedarf an die IOPS der VM anpassen.

  • Die Datenbank ist „Universell D2ds_v4“ (zwei vCores, 8 GB RAM) mit max. 3.200 IOPS. Sie verfügt über einen P10 SSD Premium-Datenträger mit 128 GB und 500 IOPS. Sie können den Datenträger bei Bedarf an die IOPS der VM anpassen.

Nach Abschluss des Moduls löschen Sie diese Ressourcen, um Kosten zu sparen. Sie können die VM und die Datenbank jedoch auch deaktivieren, wenn sie nicht genutzt werden, um Computekosten zu sparen. Sie bezahlen dann nur für den verwendeten Speicher. Sie können diese Workload bei Bedarf auch hochskalieren.

Die Bicep-Vorlage in diesem Modul verwendet Azure Verified Modules (AVM). AVM ist eine Initiative zum Standardisieren von Infrastruktur-as-Code-Modulen. Microsoft verwaltet diese Module und wendet viele bewährte Methoden für die Bereitstellung von Ressourcen in Azure an.

Stellen Sie sicher, dass Sie über ein Azure-Abonnement und die Azure-Befehlszeilenschnittstelle verfügen.

Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.

Für dieses Modul ist mindestens die Azure CLI-Version 2.0.30 erforderlich. Ermitteln Sie die Version, indem Sie den folgenden Befehl ausführen:

az --version

Installations- und Upgradeinformationen finden Sie bei Bedarf unter Installieren von Azure CLI.

Anmelden bei Azure über die Azure CLI

Um Befehle in Azure mithilfe der Azure-Befehlszeilenschnittstelle auszuführen, müssen Sie sich zunächst anmelden. Melden Sie sich mit dem Befehl az login an:

az login

Erstellen einer Ressourcengruppe

Eine Ressourcengruppe ist ein Container für zugehörige Ressourcen. Alle Ressourcen müssen in einer Ressourcengruppe platziert werden. Verwenden Sie zum Erstellen einer Ressourcengruppe den Befehl az group create:

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

Bereitstellen der Bicep-Vorlage mithilfe der Azure-Befehlszeilenschnittstelle

Bicep ist eine domänenspezifische Sprache (Domain-Specific Language, DSL), die eine deklarative Syntax zur Bereitstellung von Azure-Ressourcen verwendet. Sie definieren die Infrastruktur, die Sie in Azure bereitstellen möchten, in einer Bicep-Datei. Verwenden Sie dann diese Datei im Entwicklungslebenszyklus, um Ihre Infrastruktur wiederholt bereitzustellen. Ihre Ressourcen werden auf einheitliche Weise bereitgestellt.

Die Bicep-Datei, die Sie zum Bereitstellen der Computeressourcen für diese Lerneinheit verwenden, finden Sie im GitHub-Repository deploy/vm-postgres.bicep. Sie enthält eine VM, ein virtuelles Netzwerk, eine verwaltete Identität und eine Netzwerksicherheitsgruppe (NSG) für die VM. Weitere Informationen zu Bicep finden Sie unter Was ist Bicep?.

  1. Klonen Sie das Beispielrepository auf Ihren lokalen Computer:

    git clone https://github.com/Azure-Samples/linux-postgres-migration.git
    
  2. Wechseln Sie in das Verzeichnis linux-postgres-migration:

    cd linux-postgres-migration
    
  3. Stellen Sie die Bicep-Vorlage bereit:

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

Nach Abschluss der Bereitstellung wird in der JSON-Ausgabe bestätigt, dass die Ressourcen bereitgestellt wurden.

In den nächsten Abschnitten konfigurieren und erkunden Sie RBAC-Rollen (rollenbasierte Zugriffssteuerung) und Netzwerksicherheitsregeln für Ihre bereitgestellte Infrastruktur mithilfe des Azure-Portals. Wenn Sie das Azure-Portal verwenden, können Sie die Rollen und Regeln in der Bicep-Vorlage codieren. Das Azure-Portal bietet eine grafische Benutzeroberfläche, auf der die Beziehungen zwischen Ressourcen und den zugewiesenen Berechtigungen einfacher zu verstehen sind.

Öffnen der Ressourcengruppe im Azure-Portal

  1. Öffnen Sie das Azure-Portal.

  2. Wählen Sie im Menü „Dienst“ die Option Ressourcengruppen aus.

  3. Wählen Sie im Bereich Ressourcengruppen die Ressourcengruppe 240900-linux-postgres aus.

Im rechten oberen Teil des Bereichs wird unter Bereitstellungen der Status der Bicep-Vorlagenbereitstellung angezeigt. Wenn die Bereitstellung erfolgreich war, wird Erfolgreich angezeigt.

Anzeigen der Netzwerksicherheitsgruppe der VM

  1. Wählen Sie die VM vm-1 aus.

  2. Wählen Sie im Abschnitt Netzwerk die Option Netzwerkeinstellungen aus.

Die Netzwerkeinstellungen zeigen, dass die Netzwerksicherheitsgruppe (240900-linux-postgres-nsg) mit demselben Subnetz des virtuellen Netzwerks (240900-linux-postgres-vnet) wie die VM verbunden ist.

Die NSG wird ebenfalls innerhalb der Ressourcengruppe angezeigt. Sie enthält einige ein- und ausgehende Sicherheitsregeln, die den Datenverkehr zu und von der VM steuern.

Zurücknavigieren zur Ressourcengruppe

Wählen Sie oben auf der Seite den Breadcrumb-Link aus, um zur Ressourcengruppe (Home > Resource groups > 240900-linux-postgres) zurückzukehren.

Beachten Sie, dass die benutzerseitig zugewiesene verwaltete Identität 240900-linux-postgres-identity in der Ressourcengruppe aufgeführt wird.

Weitere Informationen zu systemseitig und benutzerseitig zugewiesenen verwalteten Identitäten finden Sie unter Was sind verwaltete Identitäten für Azure-Ressourcen?.

Hinzufügen einer eingehenden Sicherheitsregel zur Netzwerksicherheitsgruppe

Fügen Sie eine eingehende Sicherheitsregel hinzu, um SSH-Datenverkehr von Ihrer aktuellen IP-Adresse an die VM zuzulassen.

In einem Produktionsszenario verwenden Sie häufig Just-In-Time-Zugriff, Azure Bastion oder ein VPN (z. B. Azure oder ein Mesh-VPN), um den Zugriff auf Ihre VM einzuschränken.

  1. Wählen Sie 240900-linux-postgres-nsg aus.

  2. Wählen Sie Einstellungen>Eingehende Sicherheitsregeln aus.

  3. Wählen Sie Hinzufügen.

  4. Wählen Sie unter Quelle die Option Meine IP-Adresse aus.

  5. Wählen Sie unter Dienst die Option SSH aus.

  6. Wählen Sie Hinzufügen.

Anzeigen des Administratorkontos für Azure Database for PostgreSQL – Flexibler Server

  1. Suchen Sie Azure Database for PostgreSQL – Flexibler Server, und wählen Sie den Dienst aus. Als Name wird postgres-xxxxx festgelegt, wobei xxxxx eine eindeutige Zeichenfolge ist, die von der Bicep-Vorlage definiert wird. Die Zeichenfolge bleibt bei allen Bereitstellungen in Ihrem Abonnement und Ihrer Ressourcengruppe konsistent.

  2. Wählen Sie Sicherheit>Authentifizierung aus.

In diesem Szenario verwenden Sie Nur Microsoft Entra-Authentifizierung. Die benutzerseitig zugewiesene verwaltete Identität 240900-linux-postgres-identity wird unter Microsoft Entra-Administratoren aufgeführt.

Diese verwaltete Identität 240900-linux-postgres-identity ist derzeit der einzige Administrator für den Server. Sie können optional Ihr eigenes Benutzerkonto als Administrator hinzufügen. Für dieses Szenario verwenden Sie jedoch die verwaltete Identität, die bereits vorhanden ist.

Im nächsten Abschnitt verwenden Sie die Identität der VM, um den Server über die Azure-Befehlszeilenschnittstelle zu verwalten. Sie verwenden die Identität auch, um Zugriff auf den Server für Ihre Anwendung bereitzustellen.

In einem Produktionsszenario würden Sie wahrscheinlich eine Kombination aus verwalteten Identitäten, Microsoft Entra ID und präziser rollenbasierter Zugriffssteuerung (RBAC) verwenden, um Ihrer Anwendungsworkload den Zugriff auf Daten und die sichere Verwaltung von Ressourcen in Azure zu ermöglichen. Befolgen Sie immer das Prinzip der geringsten Rechte.

Weitere Informationen zu diesen Szenarien finden Sie unter Microsoft Entra-Authentifizierung mit Azure Database for PostgreSQL – Flexibler Server und Verwenden von Microsoft Entra ID für die Authentifizierung mit Azure Database for PostgreSQL – Flexibler Server.

Überprüfen der Firewallregeln für Azure Database for PostgreSQL – Flexibler Server

Wählen Sie Einstellungen>Netzwerk aus.

Wenn Sie den Server von Ihrem lokalen Computer und nicht von der VM aus verwalten, müssen Sie Ihre IP-Adresse in den Firewallregeln hinzufügen.

Sie können auch eine Firewallregel für Ihre aktuelle IP-Adresse erstellen, indem Sie Aktuelle Client-IP-Adresse (xxx.xxx.xxx.xxx) hinzufügen>Speichern auswählen. Diese Regel ermöglicht Ihnen den Zugriff auf den Dev/Test-Server mithilfe von Tools auf dem lokalen Computer. Da Sie jedoch eine VM für den Zugriff auf die Datenbank verwenden, erstellen Sie hier keine Firewallregel.

In der Produktion würden Sie diesen Server sehr wahrscheinlich vollständig vom öffentlichen Internet isolieren und die Option Öffentlichen Zugriff auf diese Ressource über das Internet mit einer öffentlichen IP-Adresse gestatten deaktivieren.

Anders als die VM ist die Instanz von Azure Database for PostgreSQL keinem virtuellen Netzwerk zugeordnet. Sie behalten damit die Möglichkeit, über das öffentliche Internet auf Azure Database for PostgreSQL zuzugreifen. Dies ist in Dev/Test-Szenarien nützlich.

Für mehr Sicherheit und Flexibilität ermöglichen Sie den Zugriff von der VM über ihr virtuelles Netzwerk mithilfe eines privaten Endpunkts. Der private Endpunkt ermöglicht der VM den Zugriff auf die Datenbank, ohne sie über das öffentliche Internet zugänglich zu machen. Weitere Informationen zu privaten Endpunkten finden Sie unter Netzwerke in Azure Database for PostgreSQL – Flexibler Server mit Private Link.

Hier wurde der private Endpunkt für Sie mit Bicep erstellt.

Überprüfen der Rollenzuweisung der systemseitig zugewiesenen verwalteten Identität der VM

  1. Navigieren Sie zur Ressourcengruppe 240900-linux-postgres zurück, und wählen Sie vm-1 aus.

  2. Wählen Sie im Menü „Dienst“ die Option Sicherheit>Identität aus.

    Hier sehen Sie, dass die systemseitig zugewiesene verwaltete Identität an die VM angefügt wurde.

  3. Wählen Sie unter Systemseitig zugewiesen die Option Azure-Rollenzuweisungen aus.

    Hier sehen Sie, dass der systemseitig zugewiesenen verwalteten Identität die Rolle „Leser“ zugewiesen wurde. Die Rolle ist auf die Ressourcengruppe 240900-linux-postgres beschränkt.

Mit den Berechtigungen dieser Identität können Sie die Azure-Befehlszeilenschnittstelle auf der VM verwenden, um Ressourcen in der Ressourcengruppe aufzulisten. Damit vermeiden Sie es, spezifische Ressourcendetails in Ihren Skripts hartcodieren zu müssen.

Zu einem späteren Zeitpunkt weisen Sie der verwalteten Identität der VM eine weitere Rolle zu, damit sie direkt auf ein Azure Blob Storage-Konto zugreifen kann.

Als Nächstes erkunden und konfigurieren Sie die bereitgestellte Infrastruktur.

Ressourcen