日曜研究室 〜技術的な日常〜

技術的な観点から日常を綴ります

   6 月 11

サーバ移転でやらかしたw

Amazonから「Notice: Degraded Amazon EC2 Instance」のメールが届いておりまして、 内容は多分「あなたが所有してるEC2インスタンスの一つが動作しているハードウェアに障害が出てていつ止まるか分からんから移転したほうがよいよ」ってことです。 で、早速サーバ移転作業をやりました。 ec2-bundle-volコマンドを使って現状のイメージを保存し、ec2-upload-bundleコマンドを使ってS3にそのイメージをアップロード、AMIとしてそのイメージを登録して、そのAMIから新規インスタンスの起動、新しいインスタンスで追加の設定、テスト、DNSの切り替えとスムーズに作業は進みまして問題なく移転できました。 (もしかしたら最近のEC2ではもっとモダンな移転の方法があるのかもしれません。) ただ、新しいDNS設定が浸透するのに時間がかかるかもと思い、とりあえず古いインスタンスも1日ぐらい起動しっぱなしにして様子を見ることにしました。 リモートのサーバで作業する場合は、MacのターミナルからSSHで接続することが多いのですが、管理してるサーバが多いことと基本的に公開鍵認証しか使わないので ~/.ssh/config に設定を羅列して使っています。 で、今まで .ssh/config には Host MyServer  Hostname example.com  〜略〜 て感じで書いてたので、それに新しいインスタンスの分も追加して以下のようにしました。 Host MyServer  Hostname example.com  〜略〜 Host MyServer2  Hostname ec2-XX-XX-XX-XX.compute-X.amazonaws.com  〜略〜 これで、MyServerとMyServer2にログインしてtopでサーバの負荷を見てました。 しかし、当初の予定の1日をすぎてもMyServerの負荷が下がらず、ついに3日目に突入しても全く負荷が下がる様子がありません。 無駄にインスタンスを起動しててもお金がかかってしまうのでヒヤヒヤしながら、何でだろう?と考えたら5秒で原因が分かりました。 MyServerもMyServer2も、同じ新しいインスタンスに繋がってたのです。 DNSを切り替えた段階で、example.comは新しいインスタンスを指すようになってたということを完全に忘れてました。アホですね。 いや〜思い込みとは恐ろしいものです。

Read the rest of this entry »