AMI から EC2 インスタンスを起動しようとすると、一部のインスタンスタイプが使用できないのはなぜですか?

所要時間1分
0

Amazon マシンイメージ (AMI) から Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを起動したいと考えています。ただ、起動したいインスタンスタイプを使用することができません。

簡単な説明

AWS Graviton プロセッサは x86_64 (AMD64) の代わりに aarch64 (ARM64) アーキテクチャを使用しています。AWS Graviton プロセッサを使用するインスタンスタイプの一部を次に示します。

  • 一般的な用途: M7g、M6g、A1、T4g
  • コンピューティングの最適化: C7g、C7gn、C6g、C6gn
  • メモリ最適化: R7G、R6g、X2gd
  • 高速コンピューティング: G5g
  • ストレージの最適化: Im4gn、Is4gen

ARM64 アーキテクチャは x86_64 アーキテクチャファミリとは異なる CPU 命令セットを使用します。これらの命令は、プロセッサにコマンドを送信するメカニズムを提供します。ソフトウェアのコンパイル中に、人間が読める形式のソフトウェアコードが CPU アーキテクチャ固有の CPU 命令に変換されます。そのアーキテクチャタイプのどの CPU もこれらの CPU 命令を使用することができます。ただし、あるアーキテクチャタイプのCPUは、別のタイプの命令セットを理解できません。1 つのアーキテクチャからコンパイルされた AMI は、そのアーキテクチャタイプの CPU でのみ実行されます。

x86_64 アーキテクチャを使用して作成された Amazon EC2 インスタンスと AMI は、ARM64 アーキテクチャを使用するインスタンスとは互換性がありません。インスタンスタイプを起動または変更すると、この非互換性が原因で次のいずれかが発生する可能性があります。

  • 選択した EC2 AMI で Graviton インスタンスタイプを起動すると、起動ウィザードに新しいインスタンスタイプが使用不可と表示されることがあります。
  • 新しいアーキテクチャタイプを使用しない、すでにデプロイされている EC2 インスタンスのインスタンスタイプを変更すると、エラーが発生する可能性があります。エラーメッセージは次のようなものです。
    「'm6g.large'はアーキテクチャ 'x86_64'のインスタンス 'i-xyz'の有効なインスタンスタイプではありません」

別のアーキテクチャを使用するには、次の手順を実行してください。

  1. 新しい Amazon EC2 インスタンスまたは AMI を作成します。
  2. アプリケーションを新しい Amazon EC2 インスタンスに移行します。

**注:**AMI は、拡張ネットワーキングがオンになっていないと、使用しているインスタンスタイプとは互換性がない場合があります。詳細については、「EC2 インスタンスで拡張ネットワーキングを有効にして設定するにはどうすればいいですか?」を参照してください。

解決方法

新しい Amazon EC2 インスタンスまたは AMI を作成する

すべての主要な Linux ディストリビューションは ARM アーキテクチャで利用可能です。ARM アーキテクチャを使用するインスタンスを起動するには:

  1. Amazon EC2 コンソールを開きます。
  2. [インスタンスを起動] を選択し、次に [インスタンスを起動] を選択します。
  3. お使いのディストリビューションの ARM バージョンに対応する AMI の横にある 64 ビット (ARM) を選択し、次に [選択] を選択します。
  4. インスタンスの起動を実行します

アプリケーションを新しい Amazon EC2 インスタンスに移行する

命令セットが異なるため、アーキテクチャタイプ間で直接インスタンスタイプを変更することはできません。システムを新しいアーキテクチャに移行するには、次の手順を実行してください。

  1. 選択した設定で新しい EC2 インスタンスを起動します
  2. アプリケーションを新しい EC2 インスタンスに移行します

関連情報

AWS Graviton プロセッサ

AWS公式
AWS公式更新しました 10ヶ月前
コメントはありません

関連するコンテンツ