Warum sind einige Instance-Typen nicht verfügbar, wenn ich versuche, eine EC2-Instance von einem AMI aus zu starten?

Lesedauer: 3 Minute
0

Ich möchte eine Amazon Elastic Compute Cloud (Amazon EC2)-Instance von einem Amazon Machine Image (AMI) aus starten. Der Instance-Typ, den ich starten möchte, ist nicht verfügbar.

Kurzbeschreibung

AWS Graviton-Prozessoren verwenden die AArch64-Architektur (ARM64) anstelle von x86_64 (AMD64). Im Folgenden sind einige der Instance-Typen aufgeführt, die AWS Graviton-Prozessoren verwenden:

  • Allgemeine Zwecke: M7g, M6g, A1, T4g
  • Für die Datenverarbeitung optimiert: C7g, C7gn, C6g, C6gn
  • Arbeitsspeicheroptimiert: R7g, R6g, X2gd
  • Beschleunigtes Computing: G5g
  • Speicheroptimiert: Im4gn, Is4gen

Für die ARM64-Architektur wird ein anderer Satz von CPU-Befehlen als für die x86_64-Architekturfamilie verwendet. Diese Anweisungen stellen einen Mechanismus zum Senden von Befehlen an den Prozessor bereit. Bei der Softwarekompilierung wird der von Menschen lesbare Softwarecode in CPU-Anweisungen umgewandelt, die für eine CPU-Architektur spezifisch sind. In jeder CPU dieses Architekturtyps können diese CPU-Anweisungen verwendet werden. Die CPU eines Architekturtyps kann jedoch den Befehlssatz eines anderen Architekturtyps nicht interpretieren. Ein Amazon Machine Image (AMI), das aus einer Architektur kompiliert wurde, läuft nur auf den CPUs dieses Architekturtyps.

Amazon EC2-Instances und AMIs, die mit der x86_64-Architektur erstellt wurden, sind nicht mit Instances kompatibel, die die ARM64-Architektur verwenden. Wenn Sie Instance-Typen starten oder ändern, kann diese Inkompatibilität Folgendes bewirken:

  • Wenn Sie einen Graviton-Instance-Typ mit Ihrem ausgewählten EC2-AMI starten, zeigt der Startassistent die neuen Instance-Typen ggf. als nicht verfügbar an.
  • Wenn Sie den Instance-Typ einer bereits bereitgestellten EC2-Instance ändern, die den neuen Architekturtyp nicht verwendet, erhalten Sie unter Umständen eine Fehlermeldung. Die Fehlermeldung ähnelt der folgenden:
    „'m6g.large' ist kein gültiger Instance-Typ für die Instance 'i-xyz' der Architektur 'x86_64'“.

Gehen Sie so vor, um eine andere Architektur zu verwenden:

  1. Erstellen Sie eine neue Amazon EC2-Instance oder ein neues AMI.
  2. Migrieren Sie die Anwendung zur neuen Amazon EC2-Instance.

Hinweis: Ein AMI ist ggf. nicht mit Ihrem Instance-Typ kompatibel, wenn Enhanced Networking nicht aktiviert ist. Weitere Informationen finden Sie unter Wie aktiviere und konfiguriere ich Enhanced Networking auf meinen EC2-Instances?

Lösung

Erstellen Sie eine neue Amazon EC2-Instance oder ein neues AMI

Alle wichtigen Linux-Distributionen sind in der ARM-Architektur verfügbar. So starten Sie eine Instance, die die ARM-Architektur verwendet:

  1. Öffnen Sie die Amazon EC2-Konsole.
  2. Wählen Sie Instance starten und dann Instance starten aus.
  3. Wählen Sie 64-Bit (ARM) neben dem AMI aus, das der ARM-Version Ihrer Distribution entspricht, und wählen Sie dann Auswählen.
  4. Schließen Sie den Start der Instance ab.

Migrieren Sie die Anwendung zu einer neuen Amazon EC2-Instance

Aufgrund der unterschiedlichen Anweisungssätze ist eine direkte Änderung des Instance-Typs zwischen den Architekturtypen nicht möglich. Gehen Sie wie folgt vor, um Ihr System zur neuen Architektur zu migrieren:

  1. Starten Sie eine neue EC2-Instance für die von Ihnen ausgewählte Konfiguration.
  2. Migrieren Sie Ihre Anwendung zur neuen EC2-Instance.

Ähnliche Informationen

AWS Graviton-Prozessor

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 10 Monaten