EC2 のインスタンスタイプを変更したら起動できなくなったときに確認してほしいポイント

EC2 のインスタンスタイプを変更したら起動できなくなったときに確認してほしいポイント

Clock Icon2025.05.01

はじめに

アノテーションのこのみです。
EC2 のインスタンスタイプを変更した後にインスタンスを起動しようとした際、下記のような状態となる場合があります。

  • インスタンスが起動しない(一度は起動状態となるが、すぐに停止状態になる)
  • インスタンスは起動状態となるが、インスタンスのステータスチェックに失敗していて、接続できない

この状態は様々な要因によって発生しますが、インスタンスタイプの移行に伴うハイパーバイザーの変更への準備不足が原因である事例が散見されます。
そこで、インスタンスが起動できなくなったときにまずは調査していただきたい重要なポイントを抜粋して確認したいと思います。

前提

m4 から m5 や m6i、c4 から c5 などのように、ハイパーバイザーの変更(Xen から Nitro)を伴うインスタンスタイプ移行のためには、OS 種別ごとに用意されている下記のドキュメントを参考にドライバーの設定などを行う必要があります。

[1]EC2 Windows インスタンスを Nitro ベースのインスタンスタイプに移行する - Amazon Elastic Compute Cloud

[2]Linux Nitro ベースの EC2 インスタンスでの起動エラーを解決する | AWS re:Post

(各インスタンスタイプがどのハイパーバイザー(Xen または Nitro)を利用しているかはこちら[3]のドキュメントをご確認ください!)

確認ポイント

インスタンスを起動する際に利用した AMI などによっては追加で対応が必要な場合がありますが、まずは共通して対応が必要な下記の観点で確認しましょう。

  1. ENA ドライバーのインストールとバージョン確認
  2. 拡張ネットワーキングの有効化
  3. NVMe ドライバーのインストールとバージョン確認
  4. PV ドライバーのバージョン確認(Windows の場合)
  5. /etc/fstab の設定確認(Linux の場合)

1. ENA ドライバーのインストールとバージョン確認

Nitro インスタンスでは、ネットワークドライバーとして ENA ドライバーを使用します。
そのため、インスタンスタイプ変更前に ENA ドライバーをインストールしておく必要があります。

既にインストールされている場合でも、不具合の解消や新機能への対応のため、最新バージョンを利用することが推奨されています。
特に、C6g や M6i など第 6 世代以降のインスタンスタイプへ変更する場合は、ENA ドライバーのバージョンに最低要件があります。
こちらのドキュメント[4]を参考に、各 OS ごとに必要なバージョンを満たしているか確認してください。

2. 拡張ネットワーキングの有効化

Nitro インスタンスでは ENA ドライバーによる拡張ネットワーキングがサポートされています。
ENA ドライバーのアップデート(インストール)と併せて設定状況を確認しましょう。[5]

3. NVMe ドライバーのインストールとバージョン確認

Nitro インスタンスでは NVMe ドライバーを利用して EBS ボリュームへ接続するようになるため、インスタンスタイプ変更前にインストールしておく必要があります。
インスタンス起動時に利用された AMI によっては既にインストールされている場合がありますが、不具合の解消や新機能への対応のため、最新バージョンへの更新が推奨されます。[6]

4. PV ドライバーのバージョン確認(Windows の場合)

Nitro インスタンスではネットワークドライバーやストレージドライバーが変更となるため、Xen 環境で使用していた PV ドライバーは利用されないようになっていますが、古いバージョンの PV ドライバーによって発生する可能性のある問題を解消しておくため、アップデートをおすすめします。

5. /etc/fstab の設定確認(Linux の場合)

Nitro インスタンスへの移行により、ブロックデバイスマッピングで使用されるデバイス名が NVMe デバイス名に変更されます。
そのため、/etc/fstab の設定を Xen ベースのインスタンスが利用するデバイス名で行っていた場合、マウントが正常に実行されなくなる可能性があることから、UUID での指定に修正する必要があります。

[7] から抜粋

また、ブロックデバイスマッピングで指定したデバイスのデバイス名は、NVMe デバイス名 (/dev/nvme[0-26]n1) を使用して変更されます。
[Linux インスタンス] したがって、/etc/fstab を使用してブート時にファイルシステムをマウントするには、デバイス名の代わりに UUID/Label を使用する必要があります。

おわりに

今回記載したのは主要な確認ポイントのみのため、上記以外の要因によって起動できなくなっているケースもありますが、まずは前提となる対応の再確認で解決につながる可能性がありますので、参考になれば幸いです!

アノテーション株式会社について

アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。

脚注
  1. EC2 Windows インスタンスを Nitro ベースのインスタンスタイプに移行する - Amazon Elastic Compute Cloud ↩︎

  2. Linux Nitro ベースの EC2 インスタンスでの起動エラーを解決する | AWS re:Post ↩︎

  3. ハイパーバイザーのタイプ - アマゾン EC2 インスタンスタイプ - Amazon Elastic Compute Cloud ↩︎

  4. Migrate to a sixth generation EC2 instance | AWS re:Post ↩︎

  5. EC2 インスタンスで ENA による拡張ネットワーキングを有効にする - Amazon Elastic Compute Cloud ↩︎

  6. AWS NVMe ドライバー - Amazon Elastic Compute Cloud ↩︎

  7. インスタンスタイプ変更の互換性 - Amazon Elastic Compute Cloud ↩︎

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.