Ausführen eines virtuellen Linux-Computers in Azure

Backup
Blob Storage
Virtuelle Linux-Computer
Storage
Virtual Machines

Für die Bereitstellung eines virtuellen Computers (VM) in Azure werden neben dem eigentlichen virtuellen Computer noch einige andere Komponenten benötigt, z.B. Netzwerk- und Speicherressourcen. In diesem Artikel werden die bewährten Methoden für das Ausführen eines virtuellen Linux-Computers in Azure veranschaulicht.

Linux VM in Azure

Resource group

Eine Ressourcengruppe ist ein logischer Container, der zusammengehörige Azure-Ressourcen enthält. Ressourcen sollten allgemein auf der Grundlage ihrer Lebensdauer sowie auf der Grundlage der Benutzer gruppiert werden, die sie verwalten.

Legen Sie eng miteinander verknüpfte Ressourcen mit demselben Lebenszyklus in derselben Ressourcengruppe ab. Mithilfe von Ressourcengruppen können Sie Ressourcen als Gruppe bereitstellen und überwachen und Abrechnungskosten nach Ressourcengruppe verfolgen. Sie können auch Ressourcen als Gruppe löschen. Dies ist für Testbereitstellungen nützlich. Vergeben Sie aussagekräftige Ressourcennamen, um das Auffinden einer bestimmten Ressource und das Erfassen ihrer Rolle zu vereinfachen. Weitere Informationen finden Sie unter Empfohlene Namenskonventionen für Azure-Ressourcen.

Virtueller Computer

Sie können eine VM über eine Liste mit veröffentlichten Images oder über ein benutzerdefiniertes verwaltetes Image oder eine virtuelle Festplattendatei (VHD) bereitstellen, die in Azure Blob Storage hochgeladen wurde. Azure unterstützt die Ausführung verschiedener beliebter Linux-Distributionen, z.B. CentOS, Debian, Red Hat Enterprise, Ubuntu und FreeBSD. Weitere Informationen finden Sie unter Azure und Linux.

Azure bietet viele verschiedene Größen von virtuellen Computern. Weitere Informationen finden Sie im Artikel zu den Größen für virtuelle Computer in Azure. Starten Sie beim Verschieben einer vorhandenen Workload in Azure mit der VM-Größe, die Ihren lokalen Servern am ehesten entspricht. Messen Sie dann die Leistung Ihrer tatsächlichen Workload in Bezug auf CPU, Arbeitsspeicher und Datenträger-IOPS (E/A-Vorgänge pro Sekunde), und passen Sie die Größe nach Bedarf an.

Es empfiehlt sich generell, eine Azure-Region zu wählen, der sich in der Nähe Ihrer internen Benutzer oder Ihrer Kunden befindet. Es sind nicht alle VM-Größen in allen Regionen verfügbar. Weitere Informationen finden Sie unter Dienste nach Region. Führen Sie den folgenden Befehl über die Azure CLI aus, um eine Liste mit den in einer bestimmten Region verfügbaren VM-Größen anzuzeigen:

az vm list-sizes --location <location>

Informationen zum Auswählen eines veröffentlichten VM-Images finden Sie unter Suchen nach Linux-VM-Images.

Datenträger

Zur Erzielung einer optimalen E/A-Leistung empfehlen wir Storage Premium zum Speichern von Daten auf SSDs (Solid State Drives). Die Kosten basieren auf der Kapazität des bereitgestellten Datenträgers. IOPS und Durchsatz (also die Datenübertragungsrate) richten sich ebenfalls nach der Datenträgergröße. Berücksichtigen Sie beim Bereitstellen eines Datenträgers also alle drei Faktoren (Kapazität, IOPS und Durchsatz).

Wir empfehlen auch die Verwendung von Managed Disks. Verwaltete Datenträger führen die Speicherverarbeitung für Sie durch, sodass die Datenträgerverwaltung vereinfacht wird. Bei verwalteten Datenträgern ist kein Speicherkonto erforderlich. Sie geben einfach die Größe und den Typ des Datenträgers an. Dieser wird dann als Ressource mit Hochverfügbarkeit bereitgestellt.

Der Datenträger für das Betriebssystem ist eine in Azure Storage gespeicherte virtuelle Festplatte, sodass diese weiterhin bestehen bleibt, auch wenn der Hostcomputer ausgefallen ist. Für Linux-VMs ist /dev/sda1 der Datenträger für das Betriebssystem. Es empfiehlt sich zudem, mindestens einen Datenträger für Daten (VHD für Anwendungsdaten) zu erstellen.

Wenn Sie eine virtuelle Festplatte (VHD) erstellen, ist sie nicht formatiert. Melden Sie sich an der VM an, um den Datenträger zu formatieren. In der Linux-Shell werden Datenträger für Daten als /dev/sdc, /dev/sdd usw. angezeigt. Sie können lsblk ausführen, um die Blockgeräte einschließlich der Datenträger aufzulisten. Um einen Datenträger für Daten zu verwenden, erstellen Sie eine Partition und ein Dateisystem und binden den Datenträger ein. Beispiel:

# Create a partition.

sudo fdisk /dev/sdc     # Enter 'n' to partition, 'w' to write the change.

# Create a file system.

sudo mkfs -t ext3 /dev/sdc1

# Mount the drive.

sudo mkdir /data1
sudo mount /dev/sdc1 /data1

Wenn Sie einen Datenträger für Daten hinzufügen, wird dem Datenträger eine logische Einheitennummer (Logical Unit Number, LUN) zugewiesen. Optional können Sie die LUN-ID angeben, z. B. wenn Sie einen Datenträger austauschen und dieselbe LUN-ID beibehalten möchten oder über eine Anwendung verfügen, die nach einer bestimmten LUN-ID sucht. Beachten Sie jedoch, dass die LUN-IDs für jeden Datenträger eindeutig sein muss.

Es kann ratsam sein, den E/A-Scheduler zu ändern, um die Leistung auf SSDs zu optimieren. Bei den Datenträgern für VMs mit Storage Premium-Konten handelt es sich nämlich um SSDs. Eine übliche Empfehlung ist die Verwendung des NOOP-Schedulers für SSDs. Sie sollten aber ein Tool wie iostat zur Überwachung der E/A-Datenträgerleistung für Ihre Workload einsetzen.

Die VM wird mit einem temporären Datenträger erstellt. Dieser Datenträger wird auf dem Hostcomputer auf einem physischen Laufwerk gespeichert. Er wird nicht in Azure Storage gespeichert und kann bei Neustarts und anderen Ereignissen während des VM-Lebenszyklus gelöscht werden. Verwenden Sie diesen Datenträger nur für temporäre Daten, z. B. Auslagerungsdateien. Für Linux-VMs ist der temporäre Datenträger /dev/sdb1 und wird in /mnt/resource oder /mnt bereitgestellt.

Netzwerk

Die Netzwerkkomponenten enthalten die folgenden Ressourcen:

  • Virtuelles Netzwerk. Jeder virtuelle Computer wird in einem virtuellen Netzwerk bereitgestellt, das in mehrere Subnetze segmentiert werden kann.

  • Netzwerkschnittstelle (NIC) Die NIC ermöglicht der VM die Kommunikation mit dem virtuellen Netzwerk. Falls Sie mehrere Netzwerkschnittstellenkarten für Ihre VM benötigen, sollten Sie sich darüber im Klaren sein, dass für jede VM-Größe eine maximale Anzahl von Netzwerkschnittstellenkarten definiert ist.

  • Öffentliche IP-Adresse: Eine öffentliche IP-Adresse wird für die Kommunikation mit der VM benötigt, z. B. per Remotedesktop (RDP). Die öffentliche IP-Adresse kann dynamisch oder statisch sein. Die Standardeinstellung ist „Dynamisch“.

  • Reservieren Sie eine statische IP-Adresse, falls Sie eine feste IP-Adresse benötigen, die sich nicht ändert – wenn Sie z. B. einen A-Eintrag in DNS erstellen oder die IP-Adresse einer Liste mit sicheren Adressen hinzufügen müssen.

  • Sie können auch einen vollständig qualifizierten Domänennamen (FQDN) für die IP-Adresse erstellen. Sie können anschließend einen CNAME-Eintrag in DNS registrieren, der auf den FQDN verweist. Weitere Informationen finden Sie unter Erstellen eines vollqualifizierten Domänennamens im Azure-Portal.

  • Netzwerksicherheitsgruppen (NSG) Netzwerksicherheitsgruppen dienen zum Zulassen oder Verweigern von Netzwerkdatenverkehr für virtuelle Computer. NSGs können entweder Subnetzen oder einzelnen VM-Instanzen zugeordnet werden.

Alle Netzwerksicherheitsgruppen enthalten eine Reihe von Standardregeln, einschließlich einer Regel, die den gesamten eingehenden Internetverkehr blockiert. Die Standardregeln können nicht gelöscht, aber von anderen Regeln überschrieben werden. Um Internetdatenverkehr zu ermöglichen, erstellen Sie Regeln, die eingehenden Datenverkehr an bestimmten Ports zulassen, z. B. Port 80 für HTTP. Fügen Sie zum Aktivieren von SSH eine NSG-Regel hinzu, die eingehenden Datenverkehr am TCP-Port 22 zulässt.

Operationen (Operations)

SSH. Bevor Sie eine Linux-VM erstellen, wird ein 2048-Bit-RSA-Paar aus privatem und öffentlichem Schlüssel generiert. Verwenden Sie die öffentliche Schlüsseldatei bei der Erstellung der VM. Weitere Informationen finden Sie unter Verwenden von SSH mit Linux und Mac in Azure.

Diagnose: Aktivieren Sie die Überwachung und Diagnose, einschließlich grundlegender Integritätsmetriken, Infrastrukturprotokolle zur Diagnose sowie der Startdiagnose. Startdiagnosen dienen dazu, einen Fehler beim Startvorgang zu untersuchen, wenn Ihre VM einen nicht startfähigen Zustand hat. Erstellen Sie ein Azure Storage-Konto zum Speichern der Protokolle. Ein standardmäßiger lokal redundanter Speicher (LRS) reicht für Diagnoseprotokolle aus. Weitere Informationen finden Sie unter Aktivieren von Überwachung und Diagnose.

Verfügbarkeit: Ihr virtueller Computer kann von einer geplanten Wartung oder von ungeplanten Ausfallzeiten betroffen sein. Sie können VM-Neustartprotokolle verwenden, um zu ermitteln, ob ein VM-Neustart durch einen geplanten Wartungsvorgang verursacht wurde. Stellen Sie mehrere VMs in einer Verfügbarkeitsgruppe bereit, um eine höhere Verfügbarkeit zu erzielen. Diese Konfiguration führt auch zu einer höheren Vereinbarung zum Servicelevel (Service Level Agreement, SLA).

Sicherungen Verwenden Sie als Schutz vor versehentlichem Datenverlust den Dienst Azure Backup, um Ihre VMs in georedundantem Speicher zu sichern. Mit Azure Backup sind anwendungskonsistente Sicherungen möglich.

Beenden eines virtuellen Computers: Unter Azure wird zwischen den Zuständen „Stopped“ (Beendet) und „Deallocated“ (Zuordnung aufgehoben) unterschieden. Ihnen werden nur Gebühren berechnet, wenn der VM-Status angehalten wird, aber nicht, wenn die Zuordnung für den virtuellen Computer aufgehoben wurde. Sie können die Zuordnung des virtuellen Computers auch mit der Schaltfläche Beenden im Azure-Portal aufheben. Wenn das Herunterfahren über das Betriebssystem erfolgt, während Sie angemeldet sind, wird der virtuelle Computer zwar beendet, aber die Zuordnung wird nicht aufgehoben. Es fallen also weiter Kosten an.

Löschen eines virtuellen Computers: Wenn Sie eine VM löschen, werden die VHDs nicht gelöscht. Dies bedeutet, dass Sie die VM problemlos löschen können, ohne dass Daten verloren gehen. Allerdings wird Ihnen der Speicherplatz weiter in Rechnung gestellt. Um die VHD zu löschen, löschen Sie die Datei aus dem Blobspeicher. Zur Verhinderung des versehentlichen Löschens verwenden Sie eine Ressourcensperre, um die gesamte Ressourcengruppe oder einzelne Ressourcen, z. B. einen virtuellen Computer, zu sperren.

Kostenbetrachtung

Je nach Nutzung und Workload gibt es verschiedene Optionen für VM-Größen. Der Bereich umfasst die günstigste Option der Bs-Serie für die neuesten GPU-VMs, die für Machine Learning optimiert sind. Weitere Informationen zu den verfügbaren Optionen finden Sie unter Virtuelle Linux-Computer – Preise.

Für Workloads, bei denen der Zeitpunkt des Abschlusses oder der Ressourcenverbrauch nicht vorhersehbar ist, bietet sich die nutzungsbasierte Bezahlung an.

Verwenden Sie Azure-Reservierungen, wenn Sie die Nutzung eines virtuellen Computers über einen Zeitraum von einem Jahr oder drei Jahren verbindlich zusagen können. VM-Reservierungen können die Kosten im Vergleich zu den Preisen für die nutzungsbasierte Bezahlung auf bis zu 72 Prozent senken.

Verwenden Sie Azure-Spot-VMs zum Ausführen von Workloads, die unterbrochen werden können und nicht innerhalb eines vordefinierten Zeitraums oder einer SLA abgeschlossen werden müssen. Azure stellt Spot-VMs bereit, wenn Kapazität verfügbar ist, und entfernt sie, wenn die Kapazität wieder benötigt wird. Die Kosten für virtuelle Spot-Computer sind deutlich niedriger. Spot-VMs bieten sich für die folgenden Workloads an:

  • High-Performance Computing, Batchverarbeitungsaufträge oder visuelle Renderinganwendungen
  • Testumgebungen, einschließlich Continuous Integration- und Continuous Delivery-Workloads
  • Umfangreiche zustandslose Anwendungen

Verwenden Sie den Azure-Preisrechner, um die Kosten zu ermitteln.

Weitere Informationen finden Sie im Abschnitt zu Kosten im Microsoft Azure Well-Architected Framework.

Sicherheitshinweise

In Microsoft Defender for Cloud können Sie sich den Sicherheitsstatus Ihrer Azure-Ressourcen in einer zentralen Übersicht ansehen. Mit Defender for Cloud werden potenzielle Sicherheitsprobleme überwacht, und Sie erhalten eine umfassende Darstellung des Sicherheitszustands Ihrer Bereitstellung. Defender for Cloud wird pro Azure-Abonnement konfiguriert. Aktivieren Sie die Erfassung von Sicherheitsdaten wie unter Einbinden Ihres Azure-Abonnements in Defender für Cloud Standard beschrieben. Nachdem die Datensammlung aktiviert wurde, durchsucht Defender für Cloud VMs automatisch, die unter diesem Abonnement erstellt werden.

Patchverwaltung: Falls aktiviert, prüft Defender for Cloud, ob kritische und Sicherheitsupdates fehlen.

Antischadsoftware: Falls aktiviert, prüft Defender für Cloud, ob Antischadsoftware installiert ist. Sie können Defender für Cloud auch nutzen, um Antischadsoftware über das Azure-Portal zu installieren.

Zugriffssteuerung: Steuern Sie den Zugriff auf Azure-Ressourcen mithilfe der rollenbasierten Zugriffssteuerung in Azure (Azure Role-Based Access Control, Azure RBAC). Mithilfe der Azure RBAC können Sie Mitglieder Ihres DevOps-Teams Autorisierungsrollen zuweisen. Die Rolle „Leser“ kann beispielsweise Azure-Ressourcen anzeigen, diese aber nicht erstellen, verwalten oder löschen. Einige Berechtigungen gelten spezifisch für einen Azure-Ressourcentyp. Die VM-Rolle „Mitwirkender“ kann z. B. eine VM neu starten oder Ihre Zuordnung aufheben, das Administratorkennwort zurücksetzen, eine neue VM erstellen usw. Andere integrierte Rollen, die für diese Architektur nützlich sein können, sind u. a. DevTest Labs-Benutzer und Netzwerkmitwirkender.

Hinweis

Die Azure RBAC schränkt nicht die Aktionen eines Benutzers ein, der bei einer VM angemeldet ist. Diese Berechtigungen werden vom Kontotyp im Gastbetriebssystem bestimmt.

Überwachungsprotokolle: Verwenden Sie Überwachungsprotokolle, um Bereitstellungsaktionen und andere VM-Ereignisse anzuzeigen.

Datenverschlüsselung: Verwenden Sie Azure Disk Encryption, wenn Sie die Datenträger für Betriebssystem und Daten verschlüsseln müssen.

Überlegungen zu DevOps

Sie benötigen nur eine Azure Resource Manager-Vorlage, um die Azure-Ressourcen und die zugehörigen Abhängigkeiten bereitzustellen. Da sich alle Ressourcen in demselben virtuellen Netzwerk befinden, sind sie in derselben grundlegenden Workload isoliert. Dies vereinfacht die Zuordnung der spezifischen Ressourcen der Workload zu einem DevOps-Team, damit es alle Aspekte dieser Ressourcen separat verwalten kann. Diese Isolation ermöglicht dem DevOps-Team die Durchführung von Continuous Integration- und Continuous Delivery-Vorgängen (CI/CD).

Außerdem können Sie verschiedene Azure Resource Manager-Vorlagen verwenden und in Azure DevOps Services integrieren, um in wenigen Minuten unterschiedliche Umgebungen bereitzustellen. Beispielsweise können Sie das Replizieren von produktionsähnlichen Szenarien oder das Laden von Testumgebungen nur bei Bedarf durchführen, um Kosten zu sparen.

Informationen zu Architektur mit höherer Verfügbarkeit finden Sie unter n-schichtige Linux-Anwendung in Azure mit Apache Cassandra. Die Referenzarchitektur enthält mehr als eine VM, und jede VM ist in einer Verfügbarkeitsgruppe enthalten.

Erwägen Sie die Nutzung von Azure Monitor, um die Leistung Ihrer Infrastruktur zu analysieren und zu optimieren, die Überwachung durchzuführen und Netzwerkprobleme zu diagnostizieren, ohne dass Sie sich bei Ihren virtuellen Computern anmelden müssen.

Weitere Informationen finden Sie unter Microsoft Azure Well-Architected Framework im Abschnitt mit den Informationen zum optimalen Betrieb.

Nächste Schritte