Wandeln Sie Ihre Instance store-backed in eine -backed AMI um EBS AMI - Amazon Elastic Compute Cloud

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.

Wandeln Sie Ihre Instance store-backed in eine -backed AMI um EBS AMI

Sie können ein im Instance-Store unterstütztes LinuxAMI, das Sie besitzen, in ein von Amazon EBS unterstütztes Linux konvertieren. AMI

Wichtig

Sie können keine Dateien konvertierenAMI, die Sie nicht besitzen.

So konvertieren Sie eine im Store gesicherte Instance in eine AMI Amazon-gestützte EBS AMI
  1. Starten Sie eine Amazon Linux-Instance von einer von Amazon EBS unterstützten AMI Instanz aus. Weitere Informationen finden Sie unter Starten Sie eine EC2 Instance mit dem Launch-Instance-Assistenten in der Konsole. Auf Amazon Linux-Instances sind die AWS CLI und AMI Tools vorinstalliert.

  2. Laden Sie den privaten X.509-Schlüssel hoch, den Sie verwendet haben, um Ihre Instance Store-Backed in Ihre Instance zu bündeln. AMI Wir verwenden diesen Schlüssel, um sicherzustellen, dass nur Sie und Amazon auf Ihren zugreifen EC2 könnenAMI.

    1. Erstellen Sie auf Ihrer Instance wie folgt ein temporäres Verzeichnis für Ihren privaten X.509-Schlüssel:

      [ec2-user ~]$ mkdir /tmp/cert
    2. Kopieren Sie Ihren privaten X.509-Schlüssel von Ihrem Computer in das Verzeichnis /tmp/cert auf Ihrer Instance, indem Sie ein Secure Copy-Tool nutzen, z. B. scp. Das Tool my-private-key Der Parameter im folgenden Befehl ist der private Schlüssel, mit dem Sie eine Verbindung zu Ihrer Instance herstellenSSH. Beispielsweise:

      you@your_computer:~ $ scp -i my-private-key.pem /path/to/pk-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
  3. Konfigurieren Sie Ihre Umgebungsvariablen für die Verwendung der AWS CLI. Weitere Informationen finden Sie unter Umgebungsvariablen.

    1. (Empfohlen) Legen Sie Umgebungsvariablen für Ihren AWS Zugriffsschlüssel, Ihren geheimen Schlüssel und Ihr Sitzungstoken fest.

      [ec2-user ~]$ export AWS_ACCESS_KEY_ID=your_access_key_id [ec2-user ~]$ export AWS_SECRET_ACCESS_KEY=your_secret_access_key [ec2-user ~]$ export AWS_SESSION_TOKEN=your_session_token
    2. Legen Sie Umgebungsvariablen für Ihren AWS Zugriffsschlüssel und Ihren geheimen Schlüssel fest.

      [ec2-user ~]$ export AWS_ACCESS_KEY_ID=your_access_key_id [ec2-user ~]$ export AWS_SECRET_ACCESS_KEY=your_secret_access_key
  4. Bereiten Sie ein Amazon Elastic Block Store (AmazonEBS) -Volume für Ihr neues vorAMI.

    1. Erstellen Sie mit dem Befehl EBS create-volume ein leeres Volume in derselben Availability Zone wie Ihre Instance. Notieren Sie sich die Volume-ID in der Befehlsausgabe.

      Wichtig

      Dieses EBS Volume muss dieselbe Größe oder größer als das ursprüngliche Root-Volume des Instance-Speichers haben.

      [ec2-user ~]$ aws ec2 create-volume --size 10 --region us-west-2 --availability-zone us-west-2b
    2. Hängen Sie das Volume mit dem Befehl EBS attach-volume an Ihre von Amazon unterstützte Instance an.

      [ec2-user ~]$ aws ec2 attach-volume --volume-id volume_id --instance-id instance_id --device /dev/sdb --region us-west-2
  5. Erstellen Sie einen Ordner für Ihr Paket.

    [ec2-user ~]$ mkdir /tmp/bundle
  6. Laden Sie das Bundle für Ihre Instance Store-based AMI herunter, um den Befehl zu verwenden. /tmp/bundle ec2-download-bundle

    [ec2-user ~]$ ec2-download-bundle -b amzn-s3-demo-bucket/bundle_folder/bundle_name -m image.manifest.xml -a $AWS_ACCESS_KEY_ID -s $AWS_SECRET_ACCESS_KEY --privatekey /path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem -d /tmp/bundle
  7. Stellen Sie die Image-Datei mit dem Befehl ec2-unbundle aus dem Paket wieder her.

    1. Wechseln Sie in den Paketordner (bundle).

      [ec2-user ~]$ cd /tmp/bundle/
    2. Führen Sie den Befehl ec2-unbundle aus.

      [ec2-user bundle]$ ec2-unbundle -m image.manifest.xml --privatekey /path/to/pk-HKZYKTAIG2ECMXYIBH3HXV4ZBEXAMPLE.pem
  8. Kopieren Sie die Dateien aus dem entbündelten Image auf das neue Volume. EBS

    [ec2-user bundle]$ sudo dd if=/tmp/bundle/image of=/dev/sdb bs=1M
  9. Überprüfen Sie das Volume auf neue Partitionen, die aus dem Paket entpackt wurden.

    [ec2-user bundle]$ sudo partprobe /dev/sdb1
  10. Listen Sie die Blockgeräte auf, um den Gerätenamen für das Mounten ermitteln zu können.

    [ec2-user bundle]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT /dev/sda 202:0 0 8G 0 disk └─/dev/sda1 202:1 0 8G 0 part / /dev/sdb 202:80 0 10G 0 disk └─/dev/sdb1 202:81 0 10G 0 part

    In diesem Beispiel lautet die Partition für das Mounten /dev/sdb1, aber Ihr Gerätename lautet wahrscheinlich anders. Falls Ihr Volume nicht partitioniert ist, lautet das Gerät für das Mounten etwa /dev/sdb (ohne nachgestellte Ziffer für die Gerätepartition).

  11. Erstellen Sie einen Bereitstellungspunkt für das neue EBS Volume und mounten Sie das Volume.

    [ec2-user bundle]$ sudo mkdir /mnt/ebs [ec2-user bundle]$ sudo mount /dev/sdb1 /mnt/ebs
  12. Öffnen Sie die /etc/fstab Datei auf dem EBS Volume mit Ihrem bevorzugten Texteditor (z. B. vim odernano) und entfernen Sie alle Einträge, z. B. speichern Sie (flüchtige) Volumen. Da das EBS Volume eingehängt ist/mnt/ebs, befindet sich die fstab Datei unter. /mnt/ebs/etc/fstab

    [ec2-user bundle]$ sudo nano /mnt/ebs/etc/fstab # LABEL=/ / ext4 defaults,noatime 1 1 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/sdb /media/ephemeral0 auto defaults,comment=cloudconfig 0 2

    In diesem Beispiel sollte die letzte Zeile entfernt werden.

  13. Heben Sie das Mounting des Volumes auf und trennen Sie es von der Instance.

    [ec2-user bundle]$ sudo umount /mnt/ebs [ec2-user bundle]$ aws ec2 detach-volume --volume-id volume_id --region us-west-2
  14. Erstellen Sie einen AMI aus dem neuen EBS Volume wie folgt.

    1. Erstellen Sie einen Snapshot des neuen EBS Volumes.

      [ec2-user bundle]$ aws ec2 create-snapshot --region us-west-2 --description "your_snapshot_description" --volume-id volume_id
    2. Überprüfen Sie, ob Ihr Snapshot vollständig ist.

      [ec2-user bundle]$ aws ec2 describe-snapshots --region us-west-2 --snapshot-id snapshot_id
    3. Identifizieren Sie mit dem describe-images Befehl die Prozessorarchitektur, den Virtualisierungstyp und das Kernel-Image (aki), das auf AMI dem Original verwendet wurde. Für diesen Schritt benötigen Sie die AMI ID der ursprünglichen Instance, die im Speicher gesichert AMI wurde.

      [ec2-user bundle]$ aws ec2 describe-images --region us-west-2 --image-id ami-id --output text IMAGES x86_64 amazon/amzn-ami-pv-2013.09.2.x86_64-s3 ami-8ef297be amazon available public machine aki-fc8f11cc instance-store paravirtual xen

      In diesem Beispiel werden als Architektur x86_64 und als Kernel-Image-ID aki-fc8f11cc verwendet. Nutzen Sie diese Werte im folgenden Schritt. Falls in der Ausgabe des obigen Befehls auch eine ari-ID aufgeführt ist, sollten Sie sich diese ebenfalls notieren.

    4. Registrieren Sie Ihr neues AMI mit der Snapshot-ID Ihres neuen EBS Volumes und den Werten aus dem vorherigen Schritt. Wenn in der Ausgabe des vorherigen Befehls eine ari-ID aufgeführt ist, sollten Sie diese im folgenden Befehl als --ramdisk-id ari_id einfügen.

      [ec2-user bundle]$ aws ec2 register-image --region us-west-2 --name your_new_ami_name --block-device-mappings DeviceName=device-name,Ebs={SnapshotId=snapshot_id} --virtualization-type paravirtual --architecture x86_64 --kernel-id aki-fc8f11cc --root-device-name device-name
  15. (Optional) Nachdem Sie getestet haben, ob Sie eine Instance von Ihrem neuen aus starten könnenAMI, können Sie das EBS Volume löschen, das Sie für dieses Verfahren erstellt haben.

    aws ec2 delete-volume --volume-id volume_id