オンプレCentOs6.0をMGNを使用しAWSへ移行する際にインスタンス起動失敗の原因と対処方法
困っていた内容
オンプレミスに構築ましたCentOs6.0環境をMGNを使用しAWSへ移行移行する予定です。
CentOs6.0にエージェントをインストールしテストインスタンスを立ち上げたときにステータスチェックが失敗して接続ができない状態です。
何か対応策はありますでしょうか。
状況確認
ログ
対象のEC2インスタンスで起動した際のシステムログ」を確認したところ、以下のログがネットワークインタフェースの up に失敗している記録がありました。
この失敗によりインスタンスステータスチェックに失敗、接続できない状況であるように見受けられます。
インターフェース et0 を活性化中: デバイス は存在しないようですので、初期化を遅らせます。 [失敗] デバイス eth0 は存在しないようですので、初期化を遅らせます。 [失敗]
AWSドキュメント確認
Linux インスタンスにおける Elastic Network Adapter (ENA) を使用した拡張ネットワーキングの有効化 - Amazon Elastic Compute Cloud
インスタンスオペレーティングシステムに /etc/udev/rules.d/70-persistent-net.rules が含まれている場合には、AMI を作成する前にそれを削除する必要があります。このファイルには、元のインスタンスのイーサネットアダプターの MAC アドレスが保存されています。別のインスタンスがこのファイルを使用して起動した場合、オペレーティングシステムがそのデバイスを検出できなくなり、eth0 が失敗して、起動に関する問題が発生することがあります。このファイルは次の起動サイクルで再び生成され、AMI から起動されるインスタンスごとに独自のバージョンが作成されます。
発生原因
ソースサーバ上の"eth0"というインターフェースが原因で起きております。
MGNで移行した場合に、EC2上だと"eth0"というネットワークデバイスが存在しないため、「 デバイス は存在しない」エラーが発生してしまいました。
対象環境では、eth0が存在しないにも関わらず eth0 を有効化しようとし、OS 起動時にネットワークインターフェース eth0 の初期化に失敗、その結果インスタンス疎通不能の状況に陥っています。
そのため、eth0 が存在しない状況にて eth0 のインターフェイス定義ファイルが存在するた事象発生していた可能性は考えられます。
具体的な対処法
対応としましては、当該インスタンスの EBS ボリュームを別インスタンスにアタッチして、eth0のインターフェースファイル/etc/udev/rules.d/70-persistent-net.rules を削除することによって、MGN移行状況が改善されるかお試しください。