AWS Germany – Amazon Web Services in Deutschland

Migrieren Sie Ihre Amazon EBS-Volumes von gp2 zu gp3 und sparen Sie bis zu 20% der Kosten

von Sibasankar Behera, übersetzt von Gerhard Poul

Allzweck-SSD (gp2) Volumes erlaubten bisher bereits einen kosteneffizienten Weg für AWS Kunden um die Leistung von SSDs für eine breite Palette an Applikationen, wie virtuelle Desktops, kleine und mittelgroße Datenbanken, Development- und Testumgebungen zu nutzen. Manche Anwendungsfälle, wie MySQL, Cassandra, und Hadoop Cluster, benötigen hohe Leistung, aber nicht hohe Speicherkapazität, und machen es für Kunden notwendig größere gp2 Volumes zu provisionieren als eigentlich benötigt, um ausreichende Leistung zur Verfügung zu haben, da bei gp2 Volumes die Leistung mit der Größe der Volumes wächst. Dies führt für diese Anwedungsfälle zu Überprovisionierung und verringert die Kosteneffizienz.

Im Dezember 2020 hat AWS die Verfügbarkeit von Allzweck-SSD gp3 angekündigt. Mit dem EBS Allzweck-SSD gp3 haben AWS Kunden eine neue kosteneffiziente Option die konzipiert ist um eine Basisleistung von 3.000 IOPS und 125 MiB/s unabhängig von der Größe zu leisten. Dies ermöglicht es kleinere Volumes zu provisionieren und gleichzeitig eine hohe Leistung bei geringeren Kosten zu realisieren. Kunden die mehr als die Basisleistung benötigen haben die Option bis zu 16.000 IOPS und 1.000MiB/s für einen Aufpreis zu nutzen. Die Maximalleistung von gp3 hat den vierfachen Durchsatz der bisherigen gp2 Volumes und ermöglicht dadurch die Nutzung für weitere Anwendungsfälle für die die Allzweck-SSD gp2 bisher keine ausreichende Leistung ermöglicht hätte.

Im weiteren beschreibe ich den Unterschied zwischen EBS Volumes des Typs gp2 und gp3 und wie man bestehende Volumes von gp2 nach gp3 migrieren kann ohne Instanzen neu zu starten oder Volumes von Instanzen zu trennen. Dadurch wird es für Sie möglich dieses Kostenreduktionspotential zu realisieren. Um zu sehen wieviel Allzweck-SSD (gp2) Volumes Sie heute nutzen können Sie unseren Cost Explorer verwenden. Die gp2 Kosten finden Sie im Service “EC2 – Other” indem Sie die Nutzungstypen nach “gp2” filtern oder nach Nutzungstyp als Dimension gruppieren.

Vergleich von EBS Volume Types gp2 und gp3

Hier ein kurzer Vergleich der Kosten zwischen gp2 und gp3 Volumes in der Region eu-central-1 (Frankfurt):

Volume-Typ gp3 gp2
Volume Größe 1 GiB – 16 TiB 1 GiB – 16 TiB
Basisleistung IOPS 3.000 3 IOPS/GiB (minimum 100 IOPS) bis zu 16.000 IOPS
Volumes kleiner als 1 TiB können auch vorübergehend bis zu 3.000 IOPS nutzen.
Max IOPS/Volume 16.000 16.000
Basisleistung Durchsatz 125 MiB/s Durchsatzlimit is zwischen 128 MiB/s und 250 MiB/s, abhängig von der Größe der Volume
Max Durchsatz/Volume 1.000 MiB/s 250 MiB/s
Preis $0,0952/GiB-month
3,000 IOPS free and $0,006/provisionierten IOPS-Monat über 3.000;
125 MiB/s inkludiert und $0,048/provisionierten MiB/s-Monat über 125MiB/s
$0,119/GiB-Monat

Unsere Amazon EBS Preise enthalten detaillierte Kosten und auch Berechnungsbeispiele.

Migration von Volumes von gp2 zu gp3

Amazon EBS Elastic Volumes ermöglichen es den Volume Typ von gp2 auf gp3 zu ändern ohne ein Volume von der Instanz zu trennen oder die Instanz neu zu starten. Damit wird es möglich diese Migration ohne Unterbrechung der Applikationen durchzuführen.

Wenn eine Volume vergrößert wird ist es notwendig auch das Dateisystem auf der Volume anzupassen, um die zusätzliche Kapazität nutzbar zu machen. Unsere Dokumentation enthält Informationen dazu wie ein Linux Dateisystem vergrößert werden kann.

Wie lange die Migration einer bestehenden gp2 Volume dauert hängt von der Größe ab und kann bis zu 24 Stunden dauern. Typischerweise benötigt eine 1-TiB Volume etwa 6 Stunden um die Migration abzuschließen. Während der Migration wird die Leistung einer Volume so hoch sein wie vor der Migration. Wenn während der Migration die IOPS oder der Durchsatz durch Anpassung der Konfigurationswerte reduziert wird, dann wird die Leistung einer Volume während der Migration nicht niedriger sein als die neuen Konfigurationswerte.

Während der Migration kann der Fortschritt der Migration einer Volume, wie in der Dokumentation beschrieben, überwacht werden.

Ändern einer Amazon EBS Volume über die AWS Konsole

  1. Öffne die Amazon EC2 Konsole.
  2. Selektiere Volumes in der Kategorie Elastic Block Store.
  3. Wähle die entsprechende Volume aus, die geändert werden soll, und klicke auf Aktionen und dann Volume Ändern.
  4. Der Dialog Volume ändern zeigt die Volume ID, den Typ, die Größe und IOPS an. Nun können die Änderungen an der Volume wie folgt durchgeführt werden:
    1. Um den Typ zu ändern wähle gp3 als Volume-Typ
    2. Um die Größe zu ändern kann im Feld Größe ein neuer größerer Wert eingestellt werden (eine Verkleinerung ist nicht möglich)
    3. Um die IOPS zu ändern kann im Feld IOPS ein neuer Wert eingestellt werden
    4. Um den Durchsatz zu ändern kann im Feld Durchsatz ein neuer Wert eingestellt werden
    5. Wenn alle gewünschten Änderungen eingestellt wurden, klicke Ändern. Im Bestätigungsdialog muss die Änderung eventuell nochmals mit einem Klick auf Ändern bestätigt werden.

Ändern einer Amazon EBS Volume über die Kommandozeile (AWS CLI)

Änderungen an einer EBS Volume können über das modify-volume Kommando der AWS CLI durchgeführt werden. Hier ein Beispiel um eine 8-GiB gp2 Volume nach gp3 mit Basisleistung zu migrieren:

aws ec2 modify-volume --volume-type gp3 --volume-id vol-11111111111111111

Die Ausgabe des Kommandos zeigt die angeforderten Änderungen und den Status an:

{
    "VolumeModification": {
        "VolumeId": "vol-11111111111111111",
        "ModificationState": "modifying",
        "TargetSize": 8,
        "TargetIops": 3000,
        "TargetVolumeType": "gp3",
        "TargetThroughput": 125,
        "TargetMultiAttachEnabled": false,
        "OriginalSize": 8,
        "OriginalIops": 100,
        "OriginalVolumeType": "gp2",
        "OriginalMultiAttachEnabled": false,
        "Progress": 0,
        "StartTime": "2023-08-30T13:00:05+00:00"
    }
}

Hier nun ein Beispiel um eine 10-GiB gp2 Volume auf gp3 zu migrieren und gleichzeitig die IOPS oberhalb der Basisleistung zu konfigurieren:

aws ec2 modify-volume --volume-type gp3  --iops 4000 --throughput 250  --volume-id vol-11111111111111111

Die Ausgabe des Kommandos zeigt die angeforderten Änderungen und den Status an:

{
    "VolumeModification": {
        "VolumeId": "vol-11111111111111111",
        "ModificationState": "modifying",
        "TargetSize": 10,
        "TargetIops": 4000,
        "TargetVolumeType": "gp3",
        "TargetThroughput": 250,
        "TargetMultiAttachEnabled": false,
        "OriginalSize": 10,
        "OriginalIops": 100,
        "OriginalVolumeType": "gp2",
        "OriginalMultiAttachEnabled": false,
        "Progress": 0,
        "StartTime": "2023-08-30T12:56:54+00:00"
    }
}

Welche IOPS und welcher Durchsatz sind bei einer Migration von gp2 auf gp3 zu wählen?

Bei der Migration einer gp2 Volume auf gp3 muss primär die Größe der gp2 Volume als bestimmender Faktor herangezogen werden um das Limit an IOPS und Durchsatz zu bestimmen. Die Basisleistung bei gp3 von 3.000 IOPS ist bei gp2 ab 1000 GiB Größe erreicht. Der Basisdurchsatz von gp3 von 125MiB/s kann bei gp2 immer erreicht werden, sofern die EC2 Instanz dies unterstützt.

Eine kurze Tabelle um die Bestimmung der gp3 Konfigurationsoptionen zu erleichtern:

Volume Größe IOPS (gp2) IOPS (gp3) Durchsatz (gp2) Durchsatz (gp3)
1–170 GiB 100-510 3000 128 MiB/s 125 MiB/s (falls der genutzte EC2 Instanz-Typ nicht mehr als 125 MiB/s unterstützt) bzw. nach Nutzung 128 MiB/s
170–334 GiB 510-1002 3000 128 MiB/s, vorübergehend bis zu 250 MiB/s 125 MiB/s (falls der genutzte EC2 Instanz-Typ nicht mehr als 125 MiB/s unterstützt) bzw. nach Nutzung bis zu 250 MiB/s*
334–1000 GiB 1.002-3.000 3000 250 MiB/s 125 MiB/s (falls der genutzte EC2 Instanz-Typ nicht mehr als 125 MiB/s unterstützt) bzw. nach Nutzung bis zu 250 MiB/s*
1000+ GiB 3.000-16.000 (Größe in GiB x 3) bis 16.000 oder nach Nutzung der aktuellen gp2 Volume 250 MiB/s 125 MiB/s (falls der genutzte EC2 Instanz-Typ nicht mehr als 125 MiB/s unterstützt) bzw. nach Nutzung bis zu 250 MiB/s*

* gp3 hat die Möglichkeit einen Durchsatz von bis zu 1.000 MiB/s zu erreichen. Da gp2 nur ein Maximum von 250MiB/s Durchsatz bietet, muss bei einer Migration nicht oberhalb von 250 MiB/s provisioniert werden.

Performancegrenzen einer gp2 Volume

Die obige Tabelle ist ein guter Start um eine erste Einschätzung für die zukünftige gp3 Konfiguration zu treffen, in diesem Abschnitt werde ich ein wenig tiefer auf die Performancegrenzen einer gp2 Volume eingehen.

Wie bereits oben erwähnt ist der primäre Faktor für die Performancegrenzen einer gp2 Volume die Größe in GiB. Im folgenden gehen wir nun auf die separaten IOPS und Durchsatzgrenzen ein.

IOPS

Die Basisleistung einer gp2 Volume skaliert linear mit 3 IOPS pro GiB Größe mit einem Minimum von 100 IOPS, bei Volumes kleiner als 33,33 GiB, einem Maximum von 16.000 IOPS bei Volumes größer als 5.334 GiB, und einer Burstkapazität bis zu 3.000 IOPS. Die folgende Tabelle illustriert diese Limits für verschiedene Größen an gp2 Volumes:

GP2 Größe in GiB Basisleistung IOPS Burst IOPS
30 100 3000
100 300 3000
500 1500 3000
1000 3000
2000 6000
6000 16000

Bei gp3 ist die Basisleistung 3.000 IOPS. Es kann also jede gp2 Volume kleiner als 1.000 GiB ohne Überschreitung der IOPS Basisleistung auf gp3 migriert werden.

Wenn die gp2 Volume größer als 1.000 GiB ist können die durch die jeweilige Workload genutzten IOPS herangezogen werden um die zukünftig mit gp3 benötigten IOPS abzuschätzen. Alternativ kann, um das Risiko zu minimieren, auch das IOPS Limit von gp2 (Größe in GiB x 3 bis maximal 16.000 IOPS) angenommen werden.

Durchsatz

Bei gp2 ist der Basisdurchsatz zwischen 128 MiB/s und 250 MiB/s, abhängig von der Größe. Volumes kleiner als 170 GiB habe einen maximalen Basisdurchsatz von 128 MiB/s. Volumes zwischen 170 GiB und 334 GiB haben darüber hinaus einen vorübergehenden maximalen Durchsatz von bis zu 250 MiB/s, solange Burst Credits zur Verfügung stehen. Volumes ab 334 GiB haben einen Basisdurchsatz von 250 MiB/s.

Bei kleineren gp3 Volumes bis zu 170 GiB, wie zum Beispiel root-Volumes, wird der Basisdurchsatz ausreichend sein. Bei größeren Volumes als 170 GiB kann der durch die jeweillige Workload genutzte Durchsatz herangezogen werden. Alternativ kann, um das Risiko zu minimieren, auch das Durchsatzlimit von gp2 (250 MiB/s) angenommen werden.

Wichtig: Bei Amazon EBS hängt der Durchsatz nicht nur von der gewählten Volume Typ und dem konfigurierten Durchsatz ab, sondern auch vom Instanz-Typ auf dem die Volume angefügt ist. Wenn der genutzte Instanz-Typ den Durchsatz von 125 MiB/s nicht überschreiten kann ändert die höhere Konfiguration des Durchsatzes auf der EBS Volume nichts am maximal möglichen Durchsatz.

Kostenvergleich zwischen gp2 und gp3 in der Region eu-central-1 (Frankfurt)

gp2 gp3 – Basisdurchsatz von 125 MiB/s
gp3 – Durchsatz äquivalent zu gp2
Größe der Volume in GiB Max IOPS Durchsatz (MiB/s) Kosten (USD/month) IOPS Durchsatz (MiB/s) Kosten (USD/month) Kostenersparnis gegenüber gp2 IOPS Durchsatz (MiB/s) Kosten (USD/month) Kostenersparnis gegenüber gp2
30 3000 128 $3.570 3000 125 $2.856 20.00% 3000 128 $2.999 16.00%
100 3000 128 $11.900 3000 125 $9.520 20.00% 3000 128 $9.663 18.80%
500 3000 250 $59.500 3000 125 $47.600 20.00% 3000 250 $53.550 10.00%
1000 3000 250 $119.000 3000 125 $95.200 20.00% 3000 250 $101.150 15.00%
2000 6000 250 $238.000 3000 125 $190.400 20.00% 6000 250 $214.350 9.94%
6000 16000 250 $714.000 3000 125 $571.200 20.00% 16000 250 $655.150 8.24%

Überprovisionierte gp2 Volumes

Die bisher beschriebenen Schritte gehen davon aus, dass die Größe der Volume unverändert bleibt oder vergrößert wird. Wenn bisher bereits gp2 Volumes im Einsatz sind, die aber aufgrund von Performanceanforderungen überprovisioniert wurden, um die für eine Workload benötigten IOPS oder den Durchsatz zu erreichen, sind zwar höhere Einsparungen als 20% möglich, es muss dabei aber anders vorgegangen werden. Dies liegt daran, dass Amazon EBS Elastic Volumes zwar vergrößert, aber nicht verkleinert werden können.

Um auch für bereits überprovisionierte gp2 Volumes Einsparungen zu erreichen muss ein neues gp3 Volume anhand der zukünftigen Anforderungen erstellt werden und die Daten mit einem Tool wie rsync auf der EC2 Instanz zwischen gp2 und gp3 Volume kopiert werden.

Bei der Planung ist unbedingt zu beachten, dass dies auf Applikations-Ebene eine kurze Downtime bedingt um die Daten konsistent zu kopieren und dann die alte gp2 Volume von der EC2 Instanz zu entfernen und durch die neue gp3 Volume abschließend zu ersetzen. Desweiteren hat der Kopiervorgang einen Einfluss auf die Performance der laufenden Applikation. Eine derartige Umstellung benötigt daher wesentlich mehr Planung als das direkte migrieren einer bestehenden Volume.

Fazit

Die Migration von Amazon EBS gp2 Volumes auf gp3 bietet das Potential von bis zu 20% der EBS Kosten einzusparen. Am einfachsten ist die Migration von Volumes kleiner als 170 GiB, da hier am wenigsten zu beachten ist. Bei größeren Volumes empfiehlt sich das Berechnen des gp2 Basisdurchsatzes um dann die Einsparung und zukünftige Konfiguration mit gp3 zu schätzen. Diese Migration ist ebenfalls ohne Unterbrechung der Applikation möglich. Bei überprovisionierten Volumes ist wesentlich mehr Planung und das kopieren der Daten auf eine neu angelegte gp3 Volume notwendig, es können aber mehr als 20% der Kosten, abhängig von der möglichen Größenreduktion, eingespart werden. Mehr Details zu den verschiedenen EBS Volume-Typen finden Sie in unserer Dokumentation.

Über den Autor

Sibasankar Behera ist ein Senior Solutions Architect bei AWS im Team für Automotive und Manufacturing. Er ist leidenschaftlich interessiert an Speichertechnologien, Datensicherheit, Cloud-Betrieb und -Optimierung. In seiner Freizeit verbringt er gerne Zeit mit seiner Familie und liest Sachbücher.