nd3000 - stock.adobe.com
So erstellen Sie EC2-Instanzen mit der AWS-Kommandozeile
Sie haben verschiedene Möglichkeiten, EC2-Instanzen zu konfigurieren und starten. Für zuverlässige, automatisierte und konsistente Starts eignet sich insbesondere die AWS CLI.
AWS-Administratoren haben mehrere Möglichkeiten, eine EC2-Instanz zu starten. Für zuverlässige, automatisierte und konsistente Starts eignet sich insbesondere die AWS-Befehlszeilenschnittstelle (Command Line Interface, CLI).
Viele Nutzer bevorzugen die AWS-CLI gegenüber der AWS-Konsole, weil sie eine skalierbare Methode zum Starten von Cloud-Ressourcen ist. Die AWS-Befehlszeilenschnittstelle erfordert außerdem weit weniger manuelle Arbeit als die Konsole, wenn es darum geht, eine EC2-Instanz zu erstellen und zu starten. Nutzer ohne Programmiererfahrung brauchen aber ein paar Hilfestellung, um von der GUI-basierten (Graphic User Interface, grafische Benutzeroberfläche) AWS-Konsole auf Befehle umzusteigen.
In dieser Anleitung erfahren Sie, wie Sie mit der AWS-Kommandozeile EC2-Instanzen (Amazon Elastic Compute Cloud) starten. Sie behandelt die anfängliche Einrichtung der AWS CLI-Umgebung, die Mindestparameter, die zum Starten einer Instanz erforderlich sind, sowie weitere wichtige Parameter, die bei AWS-Bereitstellungen häufig verwendet werden.
Schritt 1: Einrichten der Skripting-Umgebung
Installieren Sie zunächst die CLI-Komponenten. In der AWS-Dokumentation finden Sie die aktuellen Befehle, die Speicherorte der Pakete und die Abhängigkeiten, die Sie für die Installation der AWS-CLI unter den Betriebssystemen Linux, Apple MacOS und Windows benötigen.
Stellen Sie anschließend sicher, dass in der Umgebung, in der Sie CLI-Befehle ausführen werden, die richtigen Berechtigungen eingestellt sind. Die AWS-Anmeldeinformationen für die AWS CLI befinden sich in der Datei $HOME/.aws/credentials. Sie können AWS-Anmeldeinformationen in Umgebungsvariablen oder in den Befehl selbst aufnehmen; das ist aber aus Sicherheitsgründen nicht empfehlenswert. Hinterlegen Sie Anmeldeinformationen stattdessen in einer lokalen Datei. Wenn Sie Befehle von einer EC2-Instanz aus ausführen, konfigurieren Sie ein AWS-Identity-and-Access-Management-Instanzprofil (AWS IAM), damit Sie die Anmeldeinformationen nicht intern konfigurieren müssen.
Prüfen Sie vorab, ob der in der Anmeldedatei konfigurierte IAM-Benutzer ausreichende Berechtigungen zum Starten von EC2-Instanzen und Schreibberechtigungen für EC2 besitzt. Sie müssen in der Lage sein, AWS-Sicherheitsgruppen-und-Elastic-Block-Store-Volumes (AWS EBS) zu erstellen. Weisen Sie dem Benutzer die IAM-Richtlinie AmazonEC2FullAccess zu, um sicherzustellen, dass Sie die folgenden Schritte durchführen können.
Die AWS-Region ist ein wichtiger Parameter, den Sie in der CLI konfigurieren müssen. Verwenden Sie die Datei $HOME/.aws/config. Sie können auch eine Region angeben, indem Sie die Umgebungsvariable AWS_REGION setzen oder den Parameter -region in der AWS CLI übergeben.
Schritt 2: Festlegen der Mindestparameter für die EC2-Instanz
Sie benötigen die folgenden Parameter, um eine EC2-Instanz zu starten:
- Die AMI-ID (Amazon Machine Image) zum Starten der Instanz.
- Der EC2-Instanztyp, der mit der AMI-ID kompatibel sein muss.
- Die VPC-ID (Virtuelle Private Cloud) und die Subnetz-ID, in der die Instanz laufen wird.
- Eine Sicherheitsgruppen-ID, die Sie der Instanz zuweisen werden. Wenn Sie eine neue Sicherheitsgruppe erstellen möchten, tun Sie dies, bevor Sie die EC2-Instanz starten.
- Der Name des EC2-Schlüsselpaars. Ohne dieses Schlüsselpaar können sich Benutzer nicht über eine sichere Shell in die EC2-Instanz einwählen oder über Windows Remote Desktop auf die Instanz zugreifen.
Verwenden Sie den Bildschirm AMI-Katalog in der EC2-Konsole, um ein Amazon Machine Image auszuwählen. Er zeigt die verfügbaren AMIs für eine bestimmte Region an. Filtern Sie die verfügbaren AMIs nach Parametern wie Betriebssystem, Architektur, AWS Marketplace Publisher, Preismodell und Private AMIs. Notieren Sie sich jetzt die relevanten AMI-IDs – für alle Szenarien, in denen Sie die AWS CLI verwenden möchten – um alle notwendigen Informationen parat zu haben, wenn Sie eine neue Instanz starten.
In dieser Anleitung setzen wir voraus, dass bestimmte Aspekte der EC2-Konfiguration bereits vorhanden sind. Das Erstellen einer neuen VPC oder eines Subnetzes, einer Sicherheitsgruppe oder eines EC2-Schlüsselpaars behandeln wir hier nicht.
Um die EC2-Instanz in der AWS CLI mit den empfohlenen Mindestparametern zu erstellen, verwenden Sie die folgenden Befehle:
aws ec2 run-instances \
--image-id <ami-id> \
--instance-type <instance-type> \
--subnet-id <subnet-id> \
--security-group-ids <security-group-id> <security-group-id>... \
--key-name <ec2-key-pair-name>
Schritt 3: Konfigurieren Sie die Instanz mit weiteren wichtigen Parametern
Der CLI-Befehl zum Starten einer EC2-Instanz hat 40 verschiedene Parameter. Jenseits der Mindestparameter sollten Sie zusätzliche Parameter angeben, unter anderem, um die Sicherheit zu verbessern, die EC2-Instanz an die Anwendung anzupassen und die Zuverlässigkeit zu erhöhen.
- BlockDeviceMappings. Der Standardwert für das Root-Volume eines AWS Linux AMI beträgt 8 GB. Für ein Windows-AMI sind es 30 GB. Diese Kapazitäten sind möglicherweise nicht ausreichend für Ihre Anwendung. Benutzerdefinierte AMIs haben ebenfalls eine Standard-EBS-Volume-Zuweisung. Verwenden Sie den Parameter BlockDeviceMappings, um mehr EBS-Speicherplatz zuzuweisen, als im AMI standardmäßig vorgesehen ist.
- Monitoring. Für erweiterte Überwachungsfunktionen verwenden Sie den Parameter Monitoring. Er liefert Metriken in Intervallen von einer Minute anstelle der standardmäßigen fünf Minuten. Kürzere Intervalle ermöglichen eine schnellere Reaktion auf Zustandsereignisse und eine effizientere Fehlersuche.
- UserData. Wenn die EC2-Instanz beim Start einige Prozesse automatisch anstoßen soll, verwenden Sie den Parameter UserData. So kann eine Instanz beispielsweise anwendungsspezifische Prozesse für Apache oder Nginx starten oder Anwendungskonfigurationsdateien aktualisieren. Dieser Parameter ermöglicht Flexibilität und Automatisierung im Startprozess der EC2-Instanz.
- DisableApiTermination. Wenn die EC2-Instanz kritische Daten speichert oder eine kritische Aufgabe ausführt, setzen Sie diesen Parameter auf true, um eine versehentliche Beendigung über die AWS-Konsole oder die CLI zu verhindern.
- IamInstanceProfile. Die Zuweisung eines IAM-Instanzprofils ist eine bewährte Sicherheitspraxis, wenn Sie eine neue EC2-Instanz erstellen. Damit entfällt die Notwendigkeit, AWS-Anmeldedaten in Dateien oder Umgebungsvariablen innerhalb der Instanz zu konfigurieren. Stellen Sie diesen Parameter beim Start der Instanz ein.
- TagSpecifications. Das Anwenden von Tags auf AWS-Ressourcen ist eine bewährte Methode zum langfristigen Verwalten der Infrastruktur. Mit diesem Parameter kennzeichnen Sie die EC2-Instanz, um später Ihre vorherigen Schritte nachvollziehen zu können. Legen Sie mindestens das Tag Name fest, damit Sie die EC2-Instanz in der Konsole leicht finden.
- LaunchTemplate. Startvorlagen standardisieren den Start von EC2-Instanzen, indem sie das AMI, den Instanztyp, die Volume-Konfiguration, die Sicherheitsgruppen und andere Parameter vorkonfigurieren. Wenn Startvorlagen bereits konfiguriert sind, setzen Sie diesen Parameter, um die Konfigurationsaufgaben für den Instanzstart über die Befehlszeilenschnittstelle zu vereinfachen.
- Count. Der Parameter Count gibt an, wie viele EC2-Instanzen Sie starten möchten.
- associatePublicIpAddress | noAssociatePublicIpAddress. AWS-Benutzer können dieses Flag auswählen, je nachdem, ob die neue(n) Instanz(en) eine öffentliche IP-Adresse verwenden sollen. Subnetze haben eine Standardkonfiguration, um die Zuordnung zu einer öffentlichen IP-Adresse zu deaktivieren oder zu aktivieren. Aus Sicherheitsgründen sollten einige EC2-Instanzen keine öffentliche IP-Adresse haben. In anderen Anwendungsfällen ist sie hingegen erforderlich.