いやー、がっつりハマりました。
Amazon EC2でAmazonの公式AMI(Amazon Machine Image)のFedora8を使われている方、要注意です。
インスタンスを停止する場合など、イメージファイル化してAmazon S3へ転送されるかと思いますが、公式AMIのFedora8をベースとしている場合、上手くやらないとSSH接続できなくなる現象に遭遇する可能性があります。
具体的には、以下のAMI(Fedora8)を利用している場合。
ami-f51aff9c ec2-public-images/fedora-8-i386-base-v1.06.manifest.xml ami-2b5fba42 ec2-public-images/fedora-8-i386-base-v1.07.manifest.xml
状況としては、、、
- Amazonの公式AMI(Fedora8)からインスタンス起動
- インスタンス上で、自身のイメージファイル作成後、S3に保存し、インスタンス停止
- S3に保存したイメージをロードして、インスタンス起動
- インスタンスのイメージファイルを再度作成、再びS3に保存し、インスタンス停止
- S3に2回目に保存したイメージをロードして、インスタンス起動
- ↑インスタンスは起動するもSSHアクセス不可能(imkk)
# AMIの作成方法は、Amazon EC2/S3を使ってみた - 3.EC2起動後〜AMI作成が詳しいです。
SSH接続しようとするも、キーでの認証は通ってるようだが、その後プロンプトが返ってこずダンマリ状態。
(異なるキーで認証しようとすると、Permission Deniedで弾かれてしまうので)
$ ssh -i rx7_server.id root@ec2-xx-xx-xx-xx.compute-1.amazonaws.com The authenticity of host 'ec2-xx-xx-xx-xx.compute-1.amazonaws.com (xx.xx.xx.xx)' can't be established. RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'ec2-xx-xx-xx-xx.compute-1.amazonaws.com,xx.xx.xx.xx' (RSA) to the list of known hosts. ・・・(ダンマリ)
↑の状態で、完全にダンマリ状態です。困った。
"ec2-describe-instances"で確認する限りは、"running"と正常に起動している模様。
色々調べてみたところ、Amazon Web Services Developer Connectionで同じ事象に遭遇している方を発見。
- Server refused to allocate pty
- http://developer.amazonwebservices.com/connect/message.jspa?messageID=89801
どうやら、"ec2-bundle-vol"で公式AMIのFedora8ベースのイメージファイルを作成するときに、/etc/fstabが正しくない状態で保存されてしまうという現象の模様。
/dev/sda1 / ext3 defaults 1 1 /dev/sda2 /mnt ext3 defaults 0 0 /dev/sda3 swap swap defaults 0 0 none /dev/pts devpts gid=5,mode=620 0 0 none /dev/shm tmpfs defaults 0 0 none /proc proc defaults 0 0 none /sys sysfs defaults 0 0
AMIのFedora8の正しい/etc/fstabは↑なのだが、、、
/dev/sda1 / ext3 defaults 1 1 /dev/sda2 /mnt ext3 defaults 0 0 /dev/sda3 swap swap defaults 0 0 none /proc proc defaults 0 0 none /sys sysfs defaults 0 0
"ec2-bundle-vol"のデフォルトオプションにて作成されたイメージファイルの/etc/fstabは↑のようになってしまうのが原因。
というわけで、"ec2-bundle-vol"コマンドの実行時に「--fstab /etc/fstab」オプションを付けると大丈夫でした。
ec2# ec2-bundle-vol -d /mnt --privatekey pk-xxxxx.pem --cert cert-xxxxx.pem --user xxxx-xxxx-xxxx --fstab /etc/fstab
↑のような感じでコマンドを実行すれば安心。
この現象は、AWSの中の人によると、"Amazon EC2 AMI Tools"の次のリリースでFixされるようです。
参考
- http://developer.amazonwebservices.com/connect/message.jspa?messageID=89801
- Amazon EC2/S3を使ってみた - 3.EC2起動後〜AMI作成
まとめ
クラウドAMAZON EC2/S3のすべて (ITpro BOOKs)
- 作者: 並河祐貴,安達輝雄,ITpro/日経SYSTEMS
- 出版社/メーカー: 日経BP社
- 発売日: 2009/11/05
- メディア: 単行本
- 購入: 4人 クリック: 372回
- この商品を含むブログ (18件) を見る