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)」を回避するには
困っていること
現在利用中の 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 のみです。