Zurück
Tech 8 Min Lesezeit - 20. August 25 - Mayeul Le Monies de Sagazan

Wie wählt man eine EC2 Instanz?

Möchten Sie das Backend Ihrer Anwendung in der AWS Cloud starten, aber es fällt Ihnen schwer, unter den über 750+ verfügbaren EC2-Instanztypen mit ihren charmanten Namen eine Wahl zu treffen? (hallo t3.micro, g6e.8xlarge und m7i-flex.large)
Dieser Artikel ist genau richtig für Sie!

Was ist EC2?

EC2 (Elastic Compute Cloud) ist ein Cloud-Computing-Dienst, der von AWS angeboten wird. Dieser Dienst bietet die Vermietung virtueller Server in der Cloud an.
Aber wie kann ein Server „virtuell“ sein?
Tatsächlich besitzt AWS sehr leistungsstarke, riesige Computer. Auf diesen Computern ermöglicht eine Software, andere Computer zu emulieren, indem ihnen ein Teil der Ressourcen (Rechenleistung, RAM) zugewiesen wird. Man sagt „virtuell“, um ihn von einem „physischen“ Server, der auch als „bare metal“ bezeichnet wird, zu unterscheiden.
In der Praxis ist ein virtueller Server fast wie ein echter physischer Server, zwar entstehen durch die Virtualisierungssoftware geringfügige Leistungseinbussen, aber im Gegenzug gibt es grosse Vorteile. Wenn man zum Beispiel während der Nutzung feststellt, dass man mehr Leistung benötigt, kann man AWS einfach bitten: „Geben Sie mir mehr Rechenleistung und 4 GB zusätzlichen RAM.“ und die Virtualisierungssoftware aktualisiert die Kapazität unserer Instanz, was bei einem physischen Server wesentlich komplizierter wäre.
Was EC2 von anderen ähnlichen Diensten unterscheidet, ist die sehr grosse Bandbreite an verfügbaren Produkten. Tatsächlich deckt EC2 mit seinen Hunderten von Instanztypen eine sehr grosse Bandbreite an unterschiedlichen Anwendungsfällen ab! Vom kleinen internen Backoffice bis zum API-Backend mit hohem Traffic. Von der Echtzeitdatenbank bis zum Videocodierungsserver. Von der Windows-VM bis zum Trainingsserver für neuronale Netze... Kurz gesagt, man kann alles machen!
Nun ja, man kann alles nur tun, wenn man die passende Instanz findet.
Bevor wir ins Detail gehen, schlage ich Ihnen vor, einen kurzen Exkurs zum Vokabular zu machen, um genau zu verstehen, worüber wir sprechen, insbesondere zu einem wichtigen Thema: der CPU!

Der CPU und die EC2-vCPUs

Ein CPU (Central Processing Unit), oft als „Prozessor“ bezeichnet, führt Programmanweisungen aus, führt Berechnungen durch und verwaltet die grundlegenden Systemoperationen. Kurz gesagt, er ist das „Gehirn“ des Computers. Seine Leistung wird auf verschiedene Weisen quantifiziert. Einerseits gibt es die Frequenz, gemessen in GHz (Gigahertz), die (mehr oder weniger) die Anzahl der Operationen pro Sekunde darstellt, die der Prozessor ausführen kann. Andererseits gibt es die Anzahl der Kerne und Threads, die die Anzahl der simultanen Aufgaben darstellen, die der Prozessor ausführen kann. Zum Beispiel kann ein Prozessor mit 4 Threads gleichzeitig über 4 Dinge „nachdenken“.
Je nach Unternehmen, das die CPU entwickelt hat, können sich die interne Architektur und die verfügbaren Anweisungen erheblich ändern, was dazu führt, dass bestimmte Software nur für eine bestimmte CPU-Architektur funktioniert. Heute gibt es hauptsächlich 2 Prozessorarchitekturen: x86 und ARM :
  • x86 Dies ist die heute gängigste Architektur, man findet sie in den meisten Computern und Servern. In dieser Architektur gilt oft: 1 Kern = 2 Threads.
  • ARM Dies ist eine Architektur, die immer beliebter wird, insbesondere aufgrund ihres geringen Energieverbrauchs und ihrer niedrigeren Herstellungskosten. Sie wird für Smartphones, Tablets, Mac M1, M2, M3... und immer mehr Server eingesetzt! In dieser Architektur gilt oft: 1 Kern = 1 Thread.
Danach, sein „virtualisiertes“ Gegenstück: die vCPU!
Bei AWS, ändert sich die Definition einer vCPU je nach Prozessorarchitektur:
  • x86 : 1 vCPU = 1 Thread eines Prozessorkerns
  • ARM : 1 vCPU = 1 Kern
Perfekt, Sie haben die Grundlagen, machen wir weiter...

Die Namen der Instanztypen

Die Namen der Instanztypen folgen einer präzisen Namenskonvention:
Namenskonvention für Instanztypen
Wir werden die verschiedenen Teile des Namens eines Instanztyps durchgehen, zögern Sie nicht, ab und zu zum Bild zurückzukehren, um genau zu verstehen, welcher Teil wozu gehört.

Instanzfamilien und -serien

Der erste Buchstabe gibt die Serie innerhalb einer Instanzfamilie an, es gibt 5 grosse Familien und viele Unterkategorien, die als „Serien“ bezeichnet werden:
  • Allgemeine Nutzung
    • M - vCPU-RAM-Verhältnis von 1:4 (zum Beispiel 4 vCPUs und 16 GB RAM)
    • T - „Burstable“-Instanz, darauf kommen wir noch zurück
    • Mac – Instanz, die unter macOS läuft
  • Für die Berechnung optimiert
    • C - vCPU-RAM-Verhältnis von 1:2
  • Für den Arbeitsspeicher optimiert
    • R - vCPU-RAM-Verhältnis von 1:8 (bis zu 1 536 GB Arbeitsspeicher)
    • X – bis zu 4 TB Arbeitsspeicher
    • U – bis zu 32 TB Arbeitsspeicher, (U wie Ubuesque, denke ich)
  • Für die Speicherung optimiert (in der Regel Instanzen mit grossen Festplatten und guter Netzwerkleistung)
    • Im – vCPU-RAM-Verhältnis von 1:4
    • Is – vCPU-RAM-Verhältnis von 1:6
    • D – Speicher Dense (bis zu 336 TB HDD-Speicher)
  • Beschleunigte Berechnung
    • P – Beschleunigte Berechnung mit Grafikprozessor (GPU)
    • G – Intensive Grafiken
    • VT – Video Transcoding
    • DL1 – Beschleunigte Berechnung mit Intel® Gaudi® Prozessor
    • Inf – AWS Inferentia (konzipiert zur Unterstützung der Machine Learning Inferenz-Anforderungen)
    • Trn – AWS Trainium (konzipiert zur Unterstützung der Deep Learning Trainings-Anforderungen)
    • F – FPGA, Field-Programmable Gate Array (programmierbare Hardware für spezifische Aufgaben)

Generation der Instanzfamilie

Die folgende Zahl gibt die Generation der Instanz innerhalb dieser Familie an. Normalerweise, wenn AWS eine neue Generation herausbringt, ist sie sowohl leistungsfähiger als auch etwas kostengünstiger als die vorherige Generation, was die Benutzer dazu anregt, auf die neueste Generation zu migrieren.

Die Optionen der Instanzen

Einige Instanzfamilien bieten verschiedene Optionen, die jeweils einem Buchstaben entsprechen:
  • a – AMD Prozessoren
  • g – AWS Graviton Prozessoren. Diese Prozessoren verwenden die Architektur ARM, die Instanzen graviton sind in der Regel viel günstiger als die Instanzen mit Prozessoren x86. AWS sagt zum Beispiel, dass die Instanzen T4g ein Preis-/Leistungsverhältnis von bis zu 40 % über dem der Instanzen bieten T3.
  • i – Intel Prozessoren
  • flex – Flex-Instanz
  • b – Block-Speicheroptimierung
  • d – Instanz-Speichervolumen
  • e – Zusätzlicher Speicher- oder Arbeitsspeicherplatz
  • n – Netzwerk- und EBS-Optimierung (Elastic Block Storage)
  • q – Qualcomm Inferenz-Beschleuniger
  • z – Hohe Leistung

Die Instanzgrössen

Es gibt nicht viel dazu zu sagen, es ist ziemlich selbsterklärend; hier sind die verschiedenen Grössen in der Reihenfolge, die existieren (nicht alle Instanzfamilien haben alle Grössen verfügbar):
nano < micro < small < medium < large < xlarge < 2xlarge < 4xlarge < Nxlarge < metal
Die Grössen "metal" zeigen an, dass es sich um einen "Bare-Metal"-Server handelt, das heisst, es gibt keine Virtualisierung der Ressourcen (man greift direkt auf die CPU und den RAM zu, ohne Virtualisierungsschritt).

Die T-Instanzen

Für die grosse Mehrheit der Instanzen, wenn man 1 vCPU hat, bezahlt man für die Nutzung von 100% dieser vCPU. AWS hat jedoch festgestellt, dass in den meisten Fällen eine EC2 Instanz nicht ständig 100% der CPU nutzen muss.
typische EC2 Arbeitslast
Aufgrund dieser Erkenntnis sind die Instanzen T entstanden. Diese Instanzen werden als "burstable" bezeichnet. Sie ermöglichen es, zu einem günstigen Tarif für die Nutzung eines bestimmten CPU-Prozentsatzes (z.B. 40%) zu bezahlen. Verbraucht man weniger, erhält man "Guthaben"; und verbraucht man mehr, verliert man "Guthaben". Erreicht man 0 "Guthaben" und die CPU-Nutzung liegt immer noch über dem Basisprozentsatz, bezahlt man für die zusätzliche Nutzung.
Dies ermöglicht der Virtualisierungssoftware auf dem Host-Rechner, viel mehr virtuelle Instanzen zu erstellen; AWS stellt einfach sicher, dass jeder VM mindestens der CPU-Prozentsatz zugewiesen werden kann, für den bezahlt wird. Wenn eine der Instanzen über ihren Nutzungs-Prozentsatz hinausgehen und ihre Guthaben nutzen möchte, kann sie dies tun, falls auf dem Host-Rechner noch Rechenressourcen verfügbar sind.
Burstable Instanzen sind eine sehr gute, wirtschaftliche Option für Aufgaben, die im Durchschnitt nicht viel Leistung benötigen, aber gelegentlich eine höhere Last bewältigen müssen, zum Beispiel Testumgebungen.
Dieser Instanztyp ermöglicht AWS Einsparungen, indem mehr Instanzen pro Host-Rechner bereitgestellt werden; diese Einsparungen werden dann auf den Preis der Instanzen umgelegt T, was den günstigen Tarif erklärt.
Um eine Vorstellung zu geben, hier ist der Basisprozentsatz, auf den man Anspruch hat für die verschiedenen Instanzgrössen T (dies sind die gleichen Prozentsätze pro Grösse für die gesamte "burstable"-Reihe T3, T3a, T4g, T2)
  • nano 5%
  • micro 10%
  • small 20%
  • medium 20%
  • large 30%
  • xlarge 40%
  • 2xlarge 40%

Die flex Instanzen

Die Instanzen flex sind alle ganz neu (Mai 2024) und ähneln den burstable Instanzen sehr, aber mit unterschiedlichen Garantien.
Die flex Instanzen garantieren eine Basis-CPU-Leistung von 40 % und haben gleichzeitig die Möglichkeit, über einen Zeitraum von 24 Stunden während 95 % der Zeit auf die maximale Kapazität hochzuskalieren. Während der verbleibenden 5 % der Zeit kann man potenziell 40 % der CPU nicht überschreiten.
Momentan besitzt nur die Serie M7i eine Version flex (M7i-Flex), aber es ist möglich, dass weitere Serien in Zukunft entstehen werden!

Referenzen

Dies ist das Ende dieses Artikels. Hier sind einige interessante Artikel, um tiefer einzusteigen!

Möchten Sie bei der Lancierung Ihres digitalen Projekts begleitet werden?

Reichen Sie Ihr Projekt jetzt ein