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.
Eine im Speicher gesicherte Instanz erstellen AMI
Die AngabeAMI, die Sie beim Starten Ihrer Instance angeben, bestimmt den Typ des Root-Geräte-Volumes.
Um eine durch den Speicher gestützte Linux-Instanz zu erstellenAMI, beginnen Sie mit einer Instance, die Sie von einer vorhandenen, im Store unterstützten Linux-Instanz gestartet haben. AMI Nachdem Sie die Instance an Ihre Bedürfnisse angepasst haben, bündeln Sie das Volume und registrieren Sie ein neuesAMI, mit dem Sie neue Instances mit diesen Anpassungen starten können.
Sie können keinen Instance-Store-gestützten Windows erstellen, AMI 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 erfordern ein Instance-Speicher-BackedAMI: C1, C3, D2, I2, M1, M2, M3, R3 und X1.
Der AMI Erstellungsprozess ist bei Amazon EBS -Backed AMIs anders. Weitere Informationen finden Sie unter Erstellen Sie ein von Amazon EBS unterstütztes AMI.
Inhalt
Überblick über die Erstellung AMI
Das folgende Diagramm fasst den Prozess der Erstellung einer durch einen AMI Instanzspeicher gesicherten Instanz zusammen.
Starten Sie zunächst eine Instance von einerAMI, die der Instanz ähneltAMI, die Sie erstellen möchten. 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 Bundle in Ihren Amazon S3 S3-Bucket hoch und registrieren dann IhrAMI.
Anmerkung
Um Objekte in einen S3-Bucket für Ihre Instance hochzuladenAMI, ACLs muss ein im Speicher unterstütztes Linux 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.
Wenn Sie eine Instance mit der neuen startenAMI, erstellen wir das Root-Volume für die Instance mithilfe des Bundles, das Sie auf 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 abmelden EC2 AMI.
Wenn Sie Ihrer Instance zusätzlich zum Root-Geräte-Volume auch Instance-Speicher-Volumes hinzufügen, AMI enthält die Blockgeräte-Zuordnung für das neue Volume Informationen für diese Volumes, und die Blockgerätezuordnungen für Instances, die Sie von der neuen aus starten, enthalten AMI automatisch Informationen für diese Volumes. Weitere Informationen finden Sie unter Gerätezuordnungen für Volumes auf Amazon-Instances blockieren EC2.
Voraussetzungen
Bevor Sie eine erstellen könnenAMI, müssen Sie die folgenden Aufgaben ausführen:
-
Installieren Sie die AMI Tools. Weitere Informationen finden Sie unter Richten Sie die EC2 AMI Amazon-Tools ein.
-
Installiere die AWS CLI. Weitere Informationen erhalten Sie unter Einrichtung der AWS Command Line Interface.
-
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 den
ec2-upload-bundle
Befehl auch 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 für Ihren eine Verschlüsselung benötigenAMI, können Sie AMI stattdessen eine Option mit EBS -backed verwenden. Weitere Informationen finden Sie unter Verwenden der Verschlüsselung mit EBS-gestützten 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 im AWS Account Management Referenzhandbuch unter Bewährte Methoden für AWS Konten.
-
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 zum Verschlüsseln und Entschlüsseln Ihres verwendet. AMI
-
[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 Zertifikat.
$EC2_AMITOOL_HOME/etc/ec2/amitools/cert-ec2-gov.pem
-
-
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.
AMIAus einer Amazon Linux-Instance eine erstellen
Die folgenden Verfahren beschreiben, wie Sie AMI aus einer Instance eine Store-gestützte Instance erstellen, auf der Amazon Linux 1 ausgeführt wird. Sie funktionieren möglicherweise nicht für Instances, auf denen andere Linux-Distributionen ausgeführt werden.
Um sich auf die Verwendung der AMI Tools vorzubereiten (nur HVM Instanzen)
-
Die AMI Tools benötigen GRUB Legacy, um ordnungsgemäß zu starten. Verwenden Sie zur Installation den folgenden BefehlGRUB:
[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 AMI aus einer Instance eine speichergestützte Amazon Linux-Instance
Hierbei wird vorausgesetzt, dass Sie die Voraussetzungen unter Voraussetzungen erfüllt haben.
Ersetzen Sie in den folgenden Befehlen jeden user input placeholder
mit Ihren eigenen Informationen.
-
Laden Sie Ihre Anmeldeinformationen auf Ihre Instance hoch. Wir verwenden diese Anmeldeinformationen, um sicherzustellen, dass nur Sie und Amazon auf Ihre zugreifen EC2 könnenAMI.
-
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-i
Option im folgenden scp Befehl ist der private Schlüssel, mit dem Sie eine Verbindung zu Ihrer Instance herstellenSSH, nicht der private X.509-Schlüssel. Beispielsweise: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 erstellt der AMI Bündelungsprozess eine komprimierte, verschlüsselte Sammlung von Dateien in dem
/tmp
Verzeichnis, das Ihr Root-Volume darstellt. 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. Bei einigen Instances ist flüchtiger Speicher installiert/path/to/bundle/storage
/mnt
oder Sie können/media/ephemeral0
ihn verwenden, oder Sie können auch ein neues EBS (Amazon) -Volume erstellen, anhängen und mounten, um das Bundle zu speichern. Weitere Informationen finden Sie unter Erstellen eines EBS Amazon-Volumes im EBSAmazon-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]#
-
Um das AMI Bundle zu erstellen, führen Sie den ec2-bundle-vol Befehl wie folgt aus:
[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 (plusimage.manifest.xml
mehrereimage.part.
xx
Dateien). -
Beenden Sie die root-Shell.
[root ec2-user]#
exit
-
-
(Optional) Um weitere Instance-Speicher-Volumes hinzuzufügen, bearbeiten Sie die Blockgerätezuordnungen in der
image.manifest.xml
Datei für Ihre. AMI 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
Um Sie AMI in einer anderen Region als USA Ost (Nord-Virginia) zu registrieren, müssen Sie sowohl die Zielregion mit der
--region
Option als auch einen Bucket-Pfad angeben, der in der Zielregion bereits vorhanden ist, oder 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. -
Um Ihre zu registrierenAMI, führen Sie den Befehl register-image wie folgt aus.
[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.