AMI 作成時エラー「An error occurred (InvalidParameterValue) when calling the CreateImage operation: Invalid value ‘i-xxxxxxxxxx’ for instanceId. Instance does not have a volume attached at root (null)」を回避するには

2022.10.05

困っていること

現在利用中の EC2 インスタンスから AMI を作成したいのですが、マネジメントコンソールから操作すると画像の通り「イメージの作成」がグレーアウトして操作できません。

また、AWS CLI から ec2 create-image コマンドを実行すると下記のエラーが発生します。

実行コマンド

$ aws ec2 create-image --instance-id i-xxxxxxxxxx --name "Test_Sample" --no-reboot --region ap-northeast-1

表示されたエラー

An error occurred (InvalidParameterValue) when calling the CreateImage operation: Invalid value 'i-xxxxxxxxxx' for instanceId. Instance does not have a volume attached at root (null)

AMI を作成するにはどうしたらいいでしょうか、教えてください。

どう対応すればいいの?

原因

対象の EC2 インスタンスが Instance store-backed インスタンスであるためです。
AWS では主に 「Amazon EBS-backed インスタンス」「Instance store-backed インスタンス」があります。 こちらについて簡単に説明すると、EC2 インスタンスの OS をインストールする場所の違いです。

  • Amazon EBS-backed インスタンス
    Amazon EBS-Backed とは、OS がインストールされるルートボリュームが EBS 上のことです。
    また停止状態にすることが可能であり、停止してもAmzon EBS に保存されています。

  • Instance store-backed インスタンス
    Instance Store-Backed とは、OS がインストールされるルートボリュームがインスタンスストア上(物理ホストのローカルディスク)のことです。
    揮発性であることにより、終了すると消去されることからインスタンスが実行中も終了後も、停止状態にすることができません。

詳細については、ルートデバイスのストレージ をご確認ください。
なお、CreateImage API は 公式ドキュメント に記載がある通り、Amazon EBS-backed インスタンスにのみ利用可能ですので、当該エラーが発生しました。

以上を踏まえて、利用されているインスタンスが「Amazon EBS-backed インスタンス」又は「Instance store-backed インスタンス」なのかは認識しておきましょう。

対処法

Instance store-backed インスタンスにおける AMI の作成方法については下記ドキュメントをご参照ください。
公式ドキュメント

前提条件などにより手順が煩雑になるかと思いますが、弊社ブログ において画像付きで手順を紹介しておりますので、こちらもご参考にしてください。

補足

現時点では、インスタンスストアボリュームをルートデバイスとしてサポートするインスタンスタイプは C3、D2、G2、I2、M3、R3 のみです。

参考資料