Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Anhand des AMI, das Sie beim Starten Ihrer Instance angeben, wird der Typ des Root-Gerät-Volumes ermittelt.
Beginnen Sie auf einer Instance, die Sie über ein vorhandenes Instance Store-Backupes Linux-AMI gestartet haben, um ein Instance Store-Backupes Linux-AMI zu erstellen. Nachdem Sie die Instance an Ihre Anforderungen angepasst haben, können Sie das Volume als Paket bündeln (Bundle) und ein neues AMI erstellen und registrieren, um es zum Starten von neuen Instances mit diesen Anpassungen zu verwenden.
Sie können kein Windows-AMI erstellen, das vom Instanzspeicher unterstützt wird, da Windows den Instanzspeicher für das Root-Gerät AMIs nicht unterstützt.
Wichtig
Nur die folgenden Instance-Typen unterstützen ein Instance-Speicher-Volume als Root-Gerät und benötigen ein Instance-Speicher-gestütztes AMI: C1, C3, D2, I2, M1, M2, M3, R3, and X1.
Der AMI-Erstellungsprozess ist bei Amazon AMIs EBS-gestützten Systemen anders. Weitere Informationen finden Sie unter Ein Amazon-EBS-gestütztes AMI erstellen.
Inhalt
Übersicht über die Erstellung von AMI
Im folgenden Diagramm ist der Prozess zum Erstellen eines AMI über eine Instance Store-Backupe Instance dargestellt.

Starten Sie zuerst eine Instance über ein AMI, das dem zu erstellenden AMI ähnelt. Sie können eine Verbindung mit Ihrer Instance herstellen und sie anpassen. Wenn die Instance nach Ihren Vorstellungen konfiguriert ist, können Sie dafür ein Paket (Bundle) erstellen. Es dauert mehrere Minuten, bis die Paketerstellung abgeschlossen ist. Nach Abschluss des Prozesses verfügen Sie über ein Paket, das aus einem Image-Manifest (image.manifest.xml
) und Dateien (image.part.
xx) besteht, die eine Vorlage für das Stamm-Volume enthalten. Als Nächstes laden Sie das Paket in Ihren Amazon S3-Bucket hoch und registrieren anschließend Ihr AMI.
Anmerkung
Um Objekte in einen S3-Bucket für Ihr Instance-Store-gestütztes Linux-AMI hochzuladen, ACLs muss es für den Bucket aktiviert sein. Andernfalls kann Amazon EC2 die ACLs hochzuladenden Objekte nicht festlegen. Wenn Ihr Ziel-Bucket die vom Bucket-Besitzer erzwungene Einstellung für S3 Object Ownership verwendet, funktioniert das nicht, weil sie deaktiviert ACLs sind. Weitere Informationen finden Sie unter Steuern der Eigentümerschaft an hochgeladenen Objekten mit S3 Object Ownership.
Beim Starten einer Instance mit dem neuen AMI erstellen wir das Stamm-Volume für die Instance mithilfe des Pakets, das Sie in Amazon S3 hochgeladen haben. Für den Speicherplatz, der von dem Paket in Amazon S3 verwendet wird, werden Ihrem Konto Kosten berechnet, bis Sie es löschen. Weitere Informationen finden Sie unter Ein Amazon AMI abmelden EC2 .
Wenn Sie Ihrer Instance zusätzlich zum Root-Gerät-Volume Instance-Speicher-Volumes hinzufügen, enthält die Blockgerät-Zuweisung für das neue AMI Informationen zu diesen Volumes. Außerdem enthalten die Blockgerät-Zuweisungen für Instances, die Sie über das neue AMI starten, automatisch Informationen zu diesen Volumes. Weitere Informationen finden Sie unter Gerätezuordnungen für Volumes auf Amazon-Instances blockieren EC2 .
Voraussetzungen
Bevor Sie ein AMI erstellen können, müssen Sie die folgenden Aufgaben durchführen:
-
Installieren Sie die AMI-Tools. Weitere Informationen finden Sie unter Richten Sie die Amazon EC2 AMI-Tools ein.
-
Installieren Sie das AWS CLI. Weitere Informationen finden Sie unter Erste Schritte mit AWS CLI.
-
Stellen Sie sicher, dass Sie über einen S3-Bucket für das Bundle verfügen und dass Ihr Bucket ACLs aktiviert ist. Weitere Informationen zur Konfiguration finden ACLs Sie unter Konfiguration ACLs.
-
Um einen S3-Bucket mit dem zu erstellen AWS Management Console, öffnen Sie die Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/
und wählen Sie Create Bucket. -
Um einen S3-Bucket mit dem zu erstellen AWS CLI, können Sie den Befehl mb
verwenden. Wenn Ihre installierte Version der AMI-Tools 1.5.18 oder höher ist, können Sie auch den ec2-upload-bundle
-Befehl verwenden, um den S3-Bucket zu erstellen. Weitere Informationen finden Sie unter ec2-upload-bundle.
-
-
Stellen Sie sicher, dass die Dateien in Ihrem Paket nicht im S3-Bucket verschlüsselt sind. Wenn Sie Verschlüsselung für Ihr AMI benötigen, können Sie stattdessen ein EBS-gestütztes AMI verwenden. Weitere Informationen finden Sie unter Verschlüsselung mit EBS-gestützter Verschlüsselung verwenden AMIs.
-
Stellen Sie sicher, dass Sie Ihre AWS Konto-ID haben. Weitere Informationen finden Sie im Referenzhandbuch zur AWS Kontoverwaltung unter AWS-Konto Identifikatoren anzeigen.
-
Stellen Sie sicher, dass Sie über Anmeldeinformationen zur Verwendung von AWS CLI verfügen. Weitere Informationen finden Sie AWS CLI im AWS Command Line Interface Benutzerhandbuch unter Authentifizierungs- und Zugangsdaten für.
-
Stellen Sie sicher, dass Sie über ein X.509-Zertifikat und den entsprechenden privaten Schlüssel verfügen.
-
Informationen zur Erstellung eines X.509-Zertifikats erhalten Sie unter Verwalten von Signaturzertifikaten. Das X.509-Zertifikat und der private Schlüssel werden verwendet, um Ihr AMI zu verschlüsseln und zu entschlüsseln.
-
[China (Peking)] Verwenden Sie das Zertifikat
$EC2_AMITOOL_HOME/etc/ec2/amitools/cert-ec2-cn-north-1.pem
. -
[AWS GovCloud (US-West)] Verwenden Sie das
$EC2_AMITOOL_HOME/etc/ec2/amitools/cert-ec2-gov.pem
Zertifikat.
-
-
Stellen Sie eine Verbindung mit Ihrer Instance her und passen Sie sie an. Sie können beispielsweise Software und Anwendungen installieren, Daten kopieren, temporäre Dateien löschen und die Linux-Konfiguration ändern.
Erstellen eines AMI aus einer Amazon-Linux-Instance
Die folgenden Verfahren beschreiben, wie Sie ein AMI aus einer Instance-Speicher-gestützten Instance erstellen, auf der Amazon Linux 1 ausgeführt wird. Sie funktionieren unter Umständen nicht für Instances, auf denen andere Linux-Verteilungen ausgeführt werden.
So bereiten Sie die Verwendung der AMI-Tools vor (nur HVM-Instances)
-
Für die AMI-Tools ist das richtige Starten von GRUB Legacy-System erforderlich. Verwenden Sie den folgenden Befehl, um GRUB zu installieren:
[ec2-user ~]$
sudo yum install -y grub
-
Installieren Sie die Pakete für die Partitionsverwaltung mit dem folgenden Befehl:
[ec2-user ~]$
sudo yum install -y gdisk kpartx parted
So erstellen Sie ein AMI aus einer Instance Store-Backupen Amazon Linux-Instance
Hierbei wird vorausgesetzt, dass Sie die Voraussetzungen unter Voraussetzungen erfüllt haben.
Ersetzen Sie in den folgenden Befehlen jeden Befehl user input placeholder
durch Ihre eigenen Informationen.
-
Laden Sie Ihre Anmeldeinformationen auf Ihre Instance hoch. Wir verwenden diese Anmeldeinformationen, um sicherzustellen, dass nur Sie und Amazon auf Ihr AMI zugreifen EC2 können.
-
Erstellen Sie auf Ihrer Instance wie folgt ein temporäres Verzeichnis für Ihre Anmeldeinformationen:
[ec2-user ~]$
mkdir /tmp/cert
Auf diese Weise können Sie Ihre Anmeldeinformationen aus der Image-Erstellung ausschließen.
-
Kopieren Sie Ihr X.509-Zertifikat und den dazugehörigen privaten Schlüssel von Ihrem Computer in das Verzeichnis
/tmp/cert
auf Ihrer Instance, indem Sie ein Secure Copy-Tool nutzen, z. B. scp. Die Option-i
im folgenden scp-Befehl ist der private Schlüssel, den Sie zum Herstellen der Verbindung für Ihre Instance mit SSH verwenden, und nicht der private X.509-Schlüssel. Beispiel:my-private-key
.pemyou@your_computer:~ $
scp -i
my-private-key
.pem/path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem
/path/to/cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem
ec2-user@ec2-203-0-113-25.compute-1.amazonaws.com
:/tmp/cert/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem 100% 717 0.7KB/s 00:00 cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem 100% 685 0.7KB/s 00:00
Da dies reine Textdateien sind, können Sie das Zertifikat und den Schlüssel in einem Text-Editor öffnen und den Inhalt jeweils in neue Dateien unter kopiere
/tmp/cert
. -
-
Bereiten Sie das Paket für den Upload in Amazon S3 vor, indem Sie den Befehl ec2-bundle-vol über Ihre Instance ausführen. Achten Sie darauf, die Option
-e
anzugeben, um das Verzeichnis auszuschließen, in dem Ihre Anmeldeinformationen gespeichert sind. Während des Paketprozesses werden standardmäßig Dateien ausgeschlossen, die ggf. vertrauliche Informationen enthalten. Dies sind beispielsweise die Dateien*.sw
,*.swo
,*.swp
,*.pem
,*.priv
,*id_rsa*
,*id_dsa*
*.gpg
,*.jks
,*/.ssh/authorized_keys
und*/.bash_history
. Verwenden Sie die Option--no-filter
, wenn Sie alle diese Dateien einbinden möchten. Mit der Option--include
können Sie einzelne Dateien einbinden.Wichtig
Standardmäßig wird beim Prozess zur Erstellung des AMI-Pakets eine komprimierte, verschlüsselte Sammlung von Dateien im Verzeichnis
/tmp
erstellt, das als Ihr Stamm-Volume dient. Falls unter/tmp
nicht genügend freier Speicherplatz zum Speichern des Pakets vorhanden ist, müssen Sie mit der Option-d
einen anderen Speicherort für das Paket angeben. Einige Instances verfügen über unter/path/to/bundle/storage
/mnt
oder/media/ephemeral0
bereitgestellten flüchtigen Speicher, den Sie verwenden können. Alternativ können Sie auch ein neues Amazon-EBS-Volume erstellen, anfügen und bereitstellen, um das Paket zu speichern. Weitere Informationen finden Sie unter Amazon-EBS-Volume erstellen im Amazon-EBS-Benutzerhandbuch.-
Sie müssen den ec2-bundle-vol-Befehl als Root-Benutzer ausführen. Für die meisten Befehle können Sie sudo verwenden, um erhöhte Berechtigungen zu erhalten. In diesem Fall sollten Sie aber sudo -E su ausführen, um Ihre Umgebungsvariablen beizubehalten.
[ec2-user ~]$
sudo -E su
Beachten Sie, dass Sie in der bash-Eingabeaufforderung nun als root-Benutzer identifiziert werden und dass das Dollarzeichen durch einen Hashtag ersetzt wurde. Hiermit wird angegeben, dass Sie sich in einer root-Shell befinden:
[root ec2-user]#
-
Führen Sie den Befehl ec2-bundle-vol wie folgt aus, um das AMI-Paket zu erstellen:
[root ec2-user]#
ec2-bundle-vol -k /tmp/cert/
pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem
-c /tmp/cert/cert-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem
-u123456789012
-r x86_64 -e /tmp/cert --partitiongpt
Anmerkung
Verwenden Sie für die Regionen China AWS GovCloud (Peking) und (US-West) den
--ec2cert
Parameter und geben Sie die Zertifikate gemäß den Voraussetzungen an.Die Image-Erstellung kann einige Minuten dauern. Wenn dieser Befehl abgeschlossen ist, enthält Ihr
/tmp
(oder nicht standardmäßiges) Verzeichnis das Paket (image.manifest.xml
und mehrereimage.part.
xx
Dateien). -
Beenden Sie die root-Shell.
[root ec2-user]#
exit
-
-
(Optional) Bearbeiten Sie die Blockgerät-Zuweisungen in der Datei
image.manifest.xml
für Ihr AMI, um mehr Instance-Speicher-Volumes hinzuzufügen. Weitere Informationen finden Sie unter Gerätezuordnungen für Volumes auf Amazon-Instances blockieren EC2 .-
Erstellen Sie ein Backup der Datei
image.manifest.xml
.[ec2-user ~]$
sudo cp /tmp/image.manifest.xml /tmp/image.manifest.xml.bak
-
Formatieren Sie die Datei
image.manifest.xml
neu, damit sie leichter gelesen und bearbeitet werden kann.[ec2-user ~]$
sudo xmllint --format /tmp/image.manifest.xml.bak > /tmp/image.manifest.xml
-
Bearbeiten Sie die Blockgerät-Zuweisungen in
image.manifest.xml
mit einem Text-Editor. Das Beispiel unten enthält einen neuen Eintrag für das Instance-Speicher-Volumeephemeral1
.Anmerkung
Eine Liste der ausgeschlossenen Dateien finden Sie unter ec2-bundle-vol.
<block_device_mapping> <mapping> <virtual>ami</virtual> <device>sda</device> </mapping> <mapping> <virtual>ephemeral0</virtual> <device>sdb</device> </mapping>
<mapping> <virtual>ephemeral1</virtual> <device>sdc</device> </mapping>
<mapping> <virtual>root</virtual> <device>/dev/sda1</device> </mapping> </block_device_mapping> -
Speichern Sie die Datei
image.manifest.xml
und beenden Sie den Text-Editor.
-
-
Führen Sie den Befehl ec2-upload-bundle wie folgt aus, um Ihr Paket in Amazon S3 hochzuladen:
[ec2-user ~]$
ec2-upload-bundle -b
amzn-s3-demo-bucket
/bundle_folder
/bundle_name
-m /tmp/image.manifest.xml -ayour_access_key_id
-syour_secret_access_key
Wichtig
Wenn Sie Ihr AMI in einer anderen Region als US East (N. Virginia) registrieren möchten, müssen Sie sowohl die Zielregion mit der Option
--region
als auch einen Bucket-Pfad angeben, der in der Zielregion bereits vorhanden ist (bzw. einen eindeutigen Bucket-Pfad, der in der Zielregion erstellt werden kann). -
(Optional) Nach dem Upload des Pakets in Amazon S3 können Sie das Paket mit dem folgenden
/tmp
-Befehl aus dem Verzeichnis rm auf der Instance entfernen:[ec2-user ~]$
sudo rm /tmp/image.manifest.xml /tmp/image.part.* /tmp/image
Wichtig
Wenn Sie mit der Option
-d
einen Pfad in Schritt 2 angegeben haben, sollten Sie diesen Pfad anstelle von/path/to/bundle/storage
/tmp
verwenden. -
Führen Sie den Befehl register-image
wie folgt aus, um Ihr AMI zu registrieren: [ec2-user ~]$
aws ec2 register-image --image-location
amzn-s3-demo-bucket
/bundle_folder
/bundle_name
/image.manifest.xml --nameAMI_name
--virtualization-typehvm
Wichtig
Wenn Sie zuvor für den Befehl ec2-upload-bundle eine Region angegeben haben, müssen Sie die entsprechende Region für diesen Befehl noch einmal angeben.