AWS Germany – Amazon Web Services in Deutschland

T2: Neue, kostengünstige EC2 Instanzen mit Burst Performance

Mein Auto hat eine Höchstgeschwindigkeit von 225 km/h. Auch wenn ich es liebe, ab und zu mal wirklich schnell zu fahren so brauche ich doch meistens nur einen kleinen Bruchteil dieser Leistung.

In letzter Zeit haben wir viel über Instanzen mit besonders hoher Performance gesprochen: C3 mit bis zu 32 vCPUs, R3 mit bis zu 244 GB RAM, I2 mit bis zu 365000 IOPS. Doch viele Workloads brauchen nicht so viel Leistung, sondern eher eine kostengünstige Basiskapazität zu günstigen Kosten mit der Möglichkeit, ab und zu mal mehr Leistung in Anspruch zu nehmen. Beispiele dafür sind Remote Desktops, Entwicklungsumgebungen einschließlich kleiner Build-Umgebungen, gering frequentierte Websites und kleine Datenbanken. Zu vielen Zeiten wird dabei wenig CPU benötigt, nur ab und zu ist die gesamte CPU-Leistung erforderlich. Die Kosten dieser Umgebungen sind häufig auch sehr wichtig, insbesondere da es tendenziell viel mehr kleine als große Workloads in den Unternehmen gibt.

Die neuen T2 Instanzen
Seit heute sind die neuen T2 Instanzen für Amazon EC2 verfügbar. Die T2 Instanzen reduzieren deutlich die Kosten für Anwendungen, die bei geringer Grundlast von gelegentlichen CPU Bursts profitieren können. Die T2 Instanzen sind in drei Größen verfügbar (micro, small, und medium), die On-Demand Preise beginnen bei 9,50 US$ pro Monat. Je eine t2.micro Instanz mit Windows und Linux ist auch im kostenlosen Nutzungskontingent für AWS enthalten.

Die t2 Instanzen bieten eine Grund-Leistung für die CPU in Verbindung mit der Möglichkeit, bei Bedarf für eine gewisse Zeit automatisch und transparent die ganze vCPU nutzen zu können. Dadurch können Sie kleine AWS Instanzen jetzt sehr kostengünstig nutzen.

Hier sind die Spezifikationen einschließlich der Preise für die US East (Northern Virginia) Region, jeweils für einen 30 Tage Monat:

Name

vCPUs

Baseline Performance

RAM (GiB)

CPU Credits / Stunde

Preis / Stunde

Preis / Monat

t2.micro

1

10%

1,0

6

0,013 US$

9,50 US$

t2.small

1

20%

2,0

12

0,026 US$

19,00 US$

t2.medium

2

40%

4,0

24

0,052 US$

38,00 US$

Die Spalte „Baseline Performance“ gibt den Prozentsatz eines einzelnen Cores der zugrunde liegenden physischen CPU an, der dauerhaft von der Instanz genutzt werden kann. Zum Beispiel hat eine t2.small Instanz dauerhaft Zugriff auf 20% eines einzelnen Cores von einem Intel Xeon 2,5 GHz Prozessor (bis zu 3,3 GHz im Turbo Modus). Eine t2.medium Instanz kann je 20% von zwei Cores oder 40% von einem einzelnen Core nutzen, wobei Sie (bzw. das Betriebssystem) die Verteilung bestimmen.

Wenn Ihre Workload zu einer der oben genannten Kategorien gehört, so bieten Ihnen die T2 Instanzen ausreichende Performance zu einem sehr günstigen Preis. Wählen Sie einfach die passende Größe basierend auf Ihren CPU und Hauptspeicheranforderungen aus. In den meisten Fällen können Sie die Details des Burstverhaltens ignorieren. Aber hier möchten wir dennoch diese Details erklären, damit Sie Ihre Workloads darauf optimieren können wenn Sie das möchten.  

CPU Credits

Wie oben angegeben sammelt jede T2 Instanz CPU Credits, wenn sie unterhalb der Baseline Performance betrieben wird. Wenn zum Beispiel eine t2.micro Instanz 10 Stunden lang idle ist, dann hat sie genug Credits gesammelt, um fast eine Stunde mit der vollen Performance eines CPU Cores zu laufen. So kann eine Instanz, die nachts wenig Last hat die erste Stunde des Arbeitstages mit voller CPU Leistung laufen. Wenn die CPU Credits knapp werden, dann wird die Performance innerhalb von 15 Minuten nach und nach auf das Baseline Level gesenkt. Dieses Verhalten stellt sicher, dass Ihre Benutzer und Ihr Code nicht von einer plötzlichen Senkung der Leistung überrascht werden. CPU Credits werden in Minuten gezählt.

Credits werden immer dann gesammelt, wenn die Instanz CPU-Leistung unterhalb ihrer Baseline Performance verbraucht. Maximal werden so viele Credits gesammelt, wie einem ganzen Tag maximalen sammelns entsprechen:

  • t2.micro – 144 – (6 CPU Minuten pro Stunde * 24 Stunden)
  • t2.small – 288 (12 CPU Minuten pro Stunde * 24 Stunden)
  • t2.medium – 576 (24 CPU Minuten pro Stunde * 24 Stunden)

Die Credits gehen verloren wenn die Instanz gestoppt wird oder unerwartet terminiert. Geeignete Workloads für eine T2 Instanz gewährleisten normalerweise eine positive Credit-Bilanz. Sie können die Ansammlung und Nutzung der Credits über zwei neue CloudWatch Metriken analysieren:

  • CPUCreditUsage – Überwacht die Nutzung von CPU Credits über die Zeit.
  • CPUCreditBalance – Überwacht die Sammlung von CPU Credits über die Zeit.

Jede neu gestartete Instanz bekommt eine initiale Zuweisung von Credits um das Booten bei voller Geschwindigkeit zu ermöglichen. Insbesondere in Verbindung mit dem neuen SSD-backed Elastic Block Storage bedeutet dies, dass die T2 Instanzen deutlich schneller starten und nutzbar sind als die Vorgänger-Instanztypen.

Die T2 in Aktion

Ich habe eine t2.small Instanz in einem kleinen Entwicklungs-Szenario getestet. Das Ziel dieses Tests war zu zeigen, wie die CPU Credits angesammelt und genutzt werden. Bitte verstehen Sie dies nicht als formalen Benchmark.

Ich habe die Instanz mit einem 100 GB General Purpose (SSD) EBS Volume erstellt, ncurses-devel und gcc installiert und die aktuellen Linux-Kernelquellen von Kernel.org geladen. Dann habe ich menuconfig ausgeführt, alle Standardwerte akzeptiert, die .config Datei gespeichert und den Kernel erstellt:

T2-1
 

Wie Sie sehen können dauerte der gesamte Kernel-Build 23 Minuten. Die zugehörigen CloudWatch-Metriken sehen so aus:

T2-2
 

Die orangefarbene Linie zeigt die CPU Credits Nutzung während des Build-Prozesses, die blaue Linie die CPU Credit Balance der Instanz. Vor dem Build-Lauf war die Instanz idle, es wurden Credits angesammelt. Während des Builds wurden diese Credits nach und nach genutzt. Es waren ausreichend Credits für den gesamten Build-Prozess vorhanden, die Balance ging nie unter 15. Nach Ende des Build wurden wieder Credits angesammelt.

Hier ist die CloudWatch Metrik „CPU Utilization“ während des Build-Prozesses:

T2-3

Und hier ist eine Langzeit-Ansicht. In dieser Zeit habe ich mehrere Kernel-Builds ausgeführt, jeweils drei parallel (mit make -j 2) um mehr CPU Credits zu verbrauchen. Wie Sie sehen können hatte ich mehr als genug:

T2-4

Fazit
Nach meinen ersten Erfahrungen passen die T2 Instanzen sehr gut für viele Workloads. Ich bin auf Ihre Meinungen gespannt.

Auch wenn der Vergleich nicht ganz passt so können Sie doch die T2 Instanzen wie folgt den vorherigen EC2 Instanztypen zuordnen:

  • t1.micro zu t2.micro
  • m1.small zu t2.small
  • m1.medium zu t2.medium

Der Ersatz Ihrer Instanzen der vorigen Generation mit T2 Instanzen gibt Ihnen deutlich bessere Performance für teilweise weniger als die Hälfte der Kosten. Beachten Sie allerdings, dass T2 Instanzen keinen lokalen (Instance) Storage haben und Sie also ein oder mehrere EBS Volumes nutzen müssen.

Verfügbarkeit und Preise
Die T2 Instanzen sind ab heute in den folgenden AWS Regionen verfügbar: US East (Northern Virginia)

  • US West (Northern California)
  • US West (Oregon)
  • EU (Ireland)
  • Asia Pacific (Singapore)
  • Asia Pacific (Tokyo)
  • Asia Pacific (Sydney)
  • South America (São Paulo)

Wie oben geschrieben beginnen die Preise bei  0,013 US$ (weniger als 1 Euro-Cent) pro Stunde für On-Demand t2.micro Instanzen in der Region US East (Northern Virginia) Region. Weitere Informationen finden Sie auf der EC2 Pricing Seite.

Gruß,
Steffen