タグ別アーカイブ: url_helper.py

EC2 のインスタンスタイプを変更しようとしたらエラー

AWS EC2 のインスタンスで、Create Image で AMI を作成し、別のインスタンスタイプでインスタンスを起動したところ、Unreachable で接続できない状態となってしまった。

再度同じAMIで起動しても現象は変わらず。

AMIを作り直しても現象は変わらず。

システムログを見てみたところ、

cloud-init[2555]: url_helper.py[WARNING]: Calling ‘http://169.254.169.254/2009-04-04/meta-data/instance-id’ failed [13/120s]: request error [HTTPConnectionPool(host=’169.254.169.254′, port=80): Max retries exceeded with url: /2009-04-04/meta-data/instance-id (Caused by <class ‘socket.error’>: [Errno 101] Network is unreachable)]

なエラーが出て止まっている模様。

AWSのサーバにインスタンスIDを問い合わせようとしているのだが、ネットワークがつながっていないのでできない。といったところか。

さらにログを見ていったところ

udev: renamed network interface eth0 to eth1

という一行を発見。

ネットワークデバイスの名前を eth0 から eth1 に変えといたよ!

いやいや変えちゃだめでしょ。eth0 で設定しているんだから。

つまり、ネットワークデバイスは eth1 という名前になったのだが、設定はeth0 で探しに行っているので、ネットワークデバイスが見つからず、ネットワークがつながらず、インスタンスIDが取得できず、インスタンスが正しく起動しない。

ということのようだ。

調べたら

/etc/udev/rules.d/70-persistent-net.rules

というファイルに

SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”01:23:45:68:89:ab”, KERNEL==”eth*”, NAME=”eth0″

というような設定があり、ここのMACアドレスがハードのものと違うとリネームされてしまうようでした。

この行の先頭に # をつけてコメントアウトし、Create Image で AMI を再作成した後、再度インスタンスを起動したら問題なく起動できました。