Blockgerät-Zuweisungen zu Amazon-EC2-Instance hinzufügen - Amazon Elastic Compute Cloud

Blockgerät-Zuweisungen zu Amazon-EC2-Instance hinzufügen

Standardmäßig enthält eine gestartete Instance ein in der Blockgerät-Zuweisung der AMI, in der die Instance gestartet wurde, angegebenes Speichergerät. Alternativ können Sie Änderungen an der Blockgerät-Zuweisung für eine Instance bei deren Start angeben. Diese Aktualisierungen überschreiben dann die Blockgerät-Zuweisung der AMI bzw. werden in diese integriert.

Einschränkungen
  • Im Fall des Root-Volumes kann ausschließlich Folgendes geändert werden: Volume-Größe, Volume-Typ und das Bei Beendigung löschen-Flag.

  • Wenn Sie ein EBS-Volume ändern, können Sie dessen Größe verringern. Geben Sie deshalb einen Snapshot an, dessen Größe der in der Blockgerät-Zuweisung des AMI angegebenen entspricht bzw. größer als diese ist.

Aktualisieren der Blockgerät-Zuweisung beim Starten einer Instance

Sie können EBS-Volumes und Instance-Speicher-Volumes beim Starten zu einer Instance hinzufügen. Hinweis: Durch das Aktualisieren der Blockgerät-Zuweisung für eine Instance wird die Blockgerät-Zuweisung des AMI, von der sie gestartet wurde, nicht dauerhaft geändert.

Console
So aktualisieren Sie die Volumes für eine Instance beim Start
  1. Befolgen Sie den Schritten zum Starten einer Instance, aber starten Sie die Instance erst, nachdem Sie die folgenden Schritte durchgeführt haben, um die Volumes zu ändern.

  2. (Optional) Um ein Volume hinzuzufügen, wählen Sie Speicher konfigurieren, Neues Volume hinzufügen. Wählen Sie die Volume-Größe und den Volume-Typ aus.

  3. (Optional) Um ein Volume zu unterdrücken, das durch die Blockgerät-Zuweisung des AMI angegeben wurde, wählen Sie Speicher konfigurieren, Entfernen aus.

  4. (Optional) Um die Konfiguration eines EBS-Volumes zu ändern, wählen Sie im Bereich Speicher konfigurieren die Option Erweitert aus. Erweitern Sie die Informationen für das Volume und nehmen Sie die gewünschten Änderungen vor.

  5. Überprüfen Sie im Bereich Summary (Übersicht) die Konfiguration Ihrer Instance und wählen Sie dann Launch instance (Instance starten) aus. Weitere Informationen finden Sie unter EC2-Instance mit dem Launch Instance Wizard in der Konsole starten.

AWS CLI
So aktualisieren Sie die Volumes für eine Instance beim Start

Verwenden den Befehl run-instances mit der Option --block-device-mappings.

--block-device-mappings file://mapping.json

Beispiel: Angenommen eine AMI-Blockgerät-Zuweisung gibt Folgendes an:

  • /dev/xvda – EBS-Root-Volume

  • /dev/sdh – EBS-Volume erstellt von snap-1234567890abcdef0

  • /dev/sdj – Leeres EBS-Volume mit einer Größe von 100

  • /dev/sdb – Instance-Speicher-Volume ephemeral0

Nehmen wir an, die Instance-Blockgerät-Zuweisung in mapping.json ist wie folgt.

[ { "DeviceName": "/dev/xvda", "Ebs": { "VolumeSize": 100 } }, { "DeviceName": "/dev/sdj", "NoDevice": "" }, { "DeviceName": "/dev/sdh", "Ebs": { "VolumeSize": 300 } }, { "DeviceName": "/dev/sdc", "VirtualName": "ephemeral1" } ]

Die Instance-Blockgerät-Zuweisung bewirkt Folgendes:

  • Überschreibt die Größe des Root-Volumes /dev/xvda und erhöht sie auf 100 GiB.

  • Verhindert, dass /dev/sdj an die Instance angehängt wird.

  • Überschreibt die Größe von /dev/sdh und erhöht sie auf 300 GiB. Beachten Sie, dass Sie die Snapshot-ID nicht erneut festlegen müssen.

  • Fügt ein flüchtiges Volume /dev/sdc hinzu. Wenn der Instance-Typ nicht mehrere Instance-Speicher-Volumes unterstützt, hat dies keine Wirkung. Wenn der Instance-Typ NVMe-Instance-Speicher-Volumes unterstützt, werden diese automatisch aufgelistet und in die Instance-Blockgerät-Zuweisung aufgenommen, und können nicht überschrieben werden.

PowerShell
So aktualisieren Sie die Volumes für eine Instance beim Start

Verwenden Sie den Parameter -BlockDeviceMapping mit dem cmdlet New-EC2Instance mit dem Parameter -BlockDeviceMapping.

-BlockDeviceMapping $bdm

Nehmen wir an, die Instance-Blockgerät-Zuweisung in $bdm ist wie folgt.

$bdm = @() $root = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping $root.DeviceName = "/dev/xvda" $ebs1 = New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice $ebs1.VolumeSize = 100 $root.Ebs = $ebs1 $bdm += $root $sdj = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping $sdj.DeviceName = "/dev/sdj" $sdj.NoDevice = "" $bdm += $sdj $sdh = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping $sdh.DeviceName = "/dev/sdh" $ebs2 = New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice $ebs2.VolumeSize = 300 $sdh.Ebs = $ebs2 $bdm += $sdh $sdc = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping $sdc.DeviceName = "/dev/sdc" $sdc.VirtualName = "ephemeral1" $bdm += $sdc

Die Instance-Blockgerät-Zuweisung bewirkt Folgendes:

  • Überschreibt die Größe des Root-Volumes /dev/xvda und erhöht sie auf 100 GiB.

  • Verhindert, dass /dev/sdj an die Instance angehängt wird.

  • Überschreibt die Größe von /dev/sdh und erhöht sie auf 300 GiB. Beachten Sie, dass Sie die Snapshot-ID nicht erneut festlegen müssen.

  • Fügt ein flüchtiges Volume /dev/sdc hinzu. Wenn der Instance-Typ nicht mehrere Instance-Speicher-Volumes unterstützt, hat dies keine Wirkung. Wenn der Instance-Typ NVMe-Instance-Speicher-Volumes unterstützt, werden diese automatisch aufgelistet und in die Instance-Blockgerät-Zuweisung aufgenommen, und können nicht überschrieben werden.

Aktualisieren der Blockgerät-Zuweisung einer ausgeführten Instance

Die Instance muss vor Änderung dieses Attributs nicht angehalten werden.

AWS CLI
So aktualisieren Sie die Blockgerät-Zuweisung einer ausgeführten Instance

Verwenden Sie den Befehl modify-instance-attribute.

Fügen Sie die Option --block-device-mappings hinzu:

--block-device-mappings file://mapping.json

Geben Sie unter mapping.json die Updates an. Das folgende Update ändert beispielsweise das Root-Volume, dass es bestehen bleibt.

[ { "DeviceName": "/dev/sda1", "Ebs": { "DeleteOnTermination": false } } ]
PowerShell
So aktualisieren Sie die Blockgerät-Zuweisung einer ausgeführten Instance

Verwenden Sie das cmdlet Edit-EC2InstanceAttribute.

Fügen Sie die Option -BlockDeviceMapping hinzu:

-BlockDeviceMapping $bdm

Geben Sie unter bdm die Updates an. Das folgende Update ändert beispielsweise das Root-Volume, dass es bestehen bleibt.

$ebd = New-Object -TypeName Amazon.EC2.Model.EbsBlockDevice $ebd.DeleteOnTermination = false $bdm = New-Object -TypeName Amazon.EC2.Model.BlockDeviceMapping $bdm.DeviceName = "/dev/sda1" $bdm.Ebs = $ebd

Anzeigen der EBS-Volumes in einer Instance-Blockgerät-Zuweisung

Sie können die EBS-Volumes, die einer Instance zugewiesen sind, leicht aufzählen.

Console
So zeigen Sie die EBS-Volumes für eine Instance an
  1. Öffnen Sie die Amazon EC2-Konsole.

  2. Wählen Sie im Navigationsbereich Instances aus.

  3. Wählen Sie die Instance aus und sehen Sie sich Details auf der Registerkarte Speicher an. Für das Root-Volume (wobei der Begriff Root-Gerät dem Root-Volume entspricht) sind mindestens die folgenden Informationen verfügbar:

    • Root device type (Root-Gerätetyp) (zum Beispiel EBS)

    • Root device name (Root-Gerätename) (Beispiel: /dev/xvda)

    • Blockgeräte (z. B. /dev/xvda, /dev/sdf und /dev/sdj)

    Wenn die Instance mit zusätzlichen EBS-Volumes unter Verwendung einer Blockgeräte-Zuweisung gestartet wurde, werden diese unter Block devices (Blockgeräte) angezeigt. Auf dieser Registerkarte werden keine Instance-Speicher-Volumes angezeigt.

  4. Um zusätzliche Informationen zu einem EBS-Volume anzuzeigen, wählen Sie seine Volume-ID aus, um zur Volume-Seite zu gelangen.

AWS CLI
So zeigen Sie die EBS-Volumes für eine Instance an

Verwenden Sie den Befehl describe-instances.

aws ec2 describe-instances \ --instance-ids i-1234567890abcdef0 \ --query Reservations[*].Instances[0].BlockDeviceMappings
PowerShell
So zeigen Sie die EBS-Volumes für eine Instance an

Verwenden Sie das cmdlet Get-EC2Instance.

(Get-EC2Instance -InstanceId i-0bac57d7472c89bac).Instances.BlockDeviceMappings

Anzeigen der Instance-Blockgerät-Zuweisung für Instance-Speicher-Volumes

Der Instance-Typ bestimmt die Anzahl und Typ der Instance-Speicher-Volumes, die für die Instance verfügbar sind. Wenn die Anzahl der Instance-Speicher-Volumes in einer Blockgerät-Zuweisung die für eine Instance verfügbare Anzahl an Instance-Speicher-Volumes übersteigt, werden die überzähligen Volumes ignoriert. Führen Sie zum Anzeigen der Instance-Speicher-Volumes für die Instance den lsblk-Befehl aus (Linux-Instances) oder öffnen Sie Windows Disk Management (Windows-Instances). Für Informationen zum Ermitteln der Anzahl an Instance-Speicher-Volumes, die von jedem Instance-Typ unterstützt werden, siehe Typspezifikationen für Amazon-EC2-Instances.

Wenn Sie die Blockgerät-Zuweisung für die Instance anzeigen, werden ausschließlich die EBS-Volumes und nicht die Instance-Speicher-Volumes angezeigt. Welche Methode Sie verwenden, um die Instance-Speicher-Volumes für die Instance anzuzeigen, hängt vom Volume-Typ ab.

NVMe-Instance-Speicher-Volumes

Sie können das NVMe-Befehlszeilenpaket nvme-cli verwenden, um die Speichervolumes der NVMe-Instance in der Blockgerätezuordnung abzufragen. Laden Sie das Paket herunter, installieren Sie es auf Ihrer Instance und führen Sie dann den folgenden Befehl aus.

[ec2-user ~]$ sudo nvme list

Nachstehend finden Sie eine Beispielausgabe für eine Instance. Der Text in der Spalte Modell gibt an, ob das Volume ein EBS-Volume oder ein Instance-Speicher-Volume ist. In diesem Beispiel sind sowohl /dev/nvme1n1 als auch /dev/nvme2n1 Instance-Speicher-Volumes.

Node SN Model Namespace ---------------- -------------------- ---------------------------------------- --------- /dev/nvme0n1 vol06afc3f8715b7a597 Amazon Elastic Block Store 1 /dev/nvme1n1 AWS2C1436F5159EB6614 Amazon EC2 NVMe Instance Storage 1 /dev/nvme2n1 AWSB1F4FF0C0A6C281EA Amazon EC2 NVMe Instance Storage 1 ...

Sie können Disk Management oder PowerShell verwenden, um sowohl EBS- als auch Instance-Speicher-NVMe-Volumes aufzulisten. Weitere Informationen finden Sie unter Zuweisen von NVMe-Festplatten zu Volumes in Ihrer Amazon-EC2-Windows-Instance.

HDD- oder SSD-Instance-Speicher-Volumes

Sie können Instance-Metadaten verwenden, um HDD- oder SSD-Instance-Speicher-Volumes in der Blockgerät-Zuweisung abzufragen. NVMe-Instance-Speicher-Volumes sind in der Blockgerät-Zuweisung nicht enthalten.

Die Basis-URI für alle Instance-Metadaten-Anfragen ist http://169.254.169.254/latest/. Weitere Informationen finden Sie unter Instance-Metadaten verwenden, um Ihre EC2-Instance zu verwalten.

Stellen Sie zunächst eine Verbindung mit der ausgeführten Instance her. Rufen Sie von dieser Instance aus mithilfe der Abfrage die Blockgerät-Zuweisung ab.

IMDSv2
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/block-device-mapping/
IMDSv1
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/block-device-mapping/

Die Antwort enthält die Namen der Blockgeräte für die Instance. Die Ausgabe für eine Instance–Speicher basierte m1.small-Instance sieht beispielsweise folgendermaßen aus.

ami ephemeral0 root swap

Das ami-Gerät ist das Root-Volume wie es von der Instance erfasst wird. Die Instance-Speicher-Volumes werden nach dem Schema benann ephemeral[0-23]. Das swap-Gerät ist für die Seitendatei. Wenn Sie ebenfalls EBS-Volumes zugewiesen haben, werden sie als ebs1, ebs2 usw. aufgeführt.

Um Details zu einzelnen Blockgeräten in der Blockgerät-Zuweisung abzurufen, hängen Sie den Namen wie hier gezeigt an die vorherige Abfrage an.

IMDSv2
[ec2-user ~]$ TOKEN=`curl -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600"` \ && curl -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/block-device-mapping/ephemeral0
IMDSv1
[ec2-user ~]$ curl http://169.254.169.254/latest/meta-data/block-device-mapping/ephemeral0

Stellen Sie zunächst eine Verbindung mit der ausgeführten Instance her. Rufen Sie von dieser Instance aus mithilfe der Abfrage die Blockgerät-Zuweisung ab.

PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/block-device-mapping/

Die Antwort enthält die Namen der Blockgeräte für die Instance. Die Ausgabe für eine Instance–Speicher basierte m1.small-Instance sieht beispielsweise folgendermaßen aus.

ami ephemeral0 root swap

Das ami-Gerät ist das Root-Volume wie es von der Instance erfasst wird. Die Instance-Speicher-Volumes werden nach dem Schema benann ephemeral[0-23]. Das swap-Gerät ist für die Seitendatei. Wenn Sie ebenfalls EBS-Volumes zugewiesen haben, werden sie als ebs1, ebs2 usw. aufgeführt.

Um Details zu einzelnen Blockgeräten in der Blockgerät-Zuweisung abzurufen, hängen Sie den Namen wie hier gezeigt an die vorherige Abfrage an.

PS C:\> Invoke-RestMethod -uri http://169.254.169.254/latest/meta-data/block-device-mapping/ephemeral0