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
-
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.
-
(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.
-
(Optional) Um ein Volume zu unterdrücken, das durch die Blockgerät-Zuweisung des AMI angegeben wurde, wählen Sie Speicher konfigurieren, Entfernen aus.
-
(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.
-
Ü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
-
Öffnen Sie die Amazon EC2-Konsole.
-
Wählen Sie im Navigationsbereich Instances aus.
-
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.
-
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
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