AWSで網元(AMIMOTO)のt1.micro(PVM版)からt2.micro(HVM版)へのインスタンス移行方法
|
先日からAWSで網元のインスタンスアップグレードに取り組んでいた。
AMIMOTO (PVM版)からAMIMOTO (HVM版)へのインスタンス移行方法
やっぱり結局なんだかんだで色々と起きるわけです。
載せ替える意義は色々とあるようで・・・自分の所では先日アクセスが出来なくなったりして、AWSでチェックをしたらCPUが100%になって、その後途切れてた?ようでした。AWSのリージョンの動作自体は何ら問題無いようですが、その上に乗っている自分のインスタンスだけ止まってしまっていた、という所でしょうか。
・スピード
t1.micro と t2.micro のパフォーマンス比較
インスタンスを一段階上げるだけでもでも大分早くなるようですね。
・価格
今自分はAWSの1年間無料、というプランでやっています。正確には1カ月でインスタンスの稼働750時間まで無料、というものです。これは一カ月毎日稼働させてもちょっと余る、というもので実質1年間無料ですね。
このプランでm2.microでも1年は無料なんですが、来年から課金されるわけでそれを怯んでm1.microから始めてしまったわけです。(へたれ)
価格をちょっと比較してみました。(価格間違ってたら指摘してください。)
リージョンは東京の場合での価格です。
t1.micro $0.0031 /1 時間
t2.micro $0.020 /1 時間
t1.micro
$0.0031 x 24時間 x 30日 = $2.232/月
$26.784/年
※年間約3,000円です。某何とかポップを使っていたわけですが、同じくらいですが、性能は雲泥の差です。
ただ、その分の難易度の高さトレードオフですね。
t2.micro
$0.02 x 24時間 x 30日 = $14.4/月
$172.8/年
※年間約18,000円です。義兄のサイトではさくらを使ってましたが、現存するかどうか分からないプランですが、年間16,000円くらいかかってました。サイトの容量は10MBも無いくらいだったのに・・・アクセスもほとんど無いし・・・
※補足
下のコメントでt1.microの価格が違っているのでは?というご指摘がありました。
間違ってるかも知れないので、正確な数字は各自で調べていただくようお願いします!
新しいサービスにはやはりお金をかけられない、と思ってt1.microを選んでしまいましたが、さすがにこのくらいケチっちゃ駄目ですね。
それくらいの費用は余裕で捻出する!くらいの覚悟でやらないと・・・ちっちゃい男ですんまそん。
さて、ようやくサイトの移行の話に行きましょう。
AWSのコンソールからt1.microからt2.microに単純にアップグレード出来れば一番幸せだったのですが、PVMとHVM版で違うそうで、もうこの辺は何が違うのか分からないですけど。
まず、上記のサイトの通りに進めれば通常であれば問題無く動くのでしょう。
これが、独自ドメインのサイトであれば後ほどDNSだけ変えれば問題無かったのだと思うのですが、自分はWordpressをマルチサイトで使っており、一番初めに作ったサイトだけは管理用、という意味でawsのアドレスで残していたのでした。が、これが悪夢の始まりでした。
網元の初期インストールではドメイン名はこんな感じになってます。
ec2-xx-xx-xx-xx.ap-northeast-1.compute.amazonaws.com
このxxの部分がIPになっているのですが、当然インスタンスが変わった時点でこのIPが変わります。これによりそのままではアクセス出来なくなってしまうんですね。
「データベース接続確立エラー」が出て、DBの問題という事が分かります。
WordPressでサーバ移行時にデータベース上のドメインを書き換える方法
このあたりを見て、全部のデータベースは変えたはずなのですが、その後も一向にアクセス出来ない。
DBをまっさらにして、何度かインポートを繰り返しました。
最終的に更新するテーブルを最小限にとどめてやってみる事にする。以下が最も近い現象だった。
まずwp_blogsのURLだけ変更してみると、通常のサイトの方にはアクセスできるようになった!
あまり他をいじらないようにする。
すると管理画面には アクセスできるので、そこでデータベースの修復も試してみる。DBが壊れてもいい、という前提で。
すると、wp_1_という接頭語がついたテーブルが無い、とのエラー。実際にDBの中を見てみても、該当のテーブルは無い。
GUIで見たい人は以下を参照。
ただ、接頭語の数字ががついていないテーブル(wp_のみ)は存在していた。ここでちょっと予測。新しいインスタンスでは1番目のサイトがwp_1_のテーブルを参照している、と。
ということで、wp_のテーブルを全てwp_1_にコピーしてテーブルを作成してみる。
これでアクセスできるようになった!あ、wp_optionの中のURLも変えたかな・・・
ちょっと仕組みをもう少し考えれば良かったのだが、マルチサイト環境で、何番目のサイトが接頭語の数字何番のテーブルを参照しているのか、という所が変更出来ればスムーズにできるのかも知れない。
サイト上でURLを変えれば必要な所だけ全部変えてくれるけど、直接テーブルをいじると色々と出ますね。単純に一括で変更してもダメだったっぽいし。
それでhostsファイルを変えてドメインにアクセスできるかを確認した後にDNSを切り替え。一通り動くようになる。
今回の移行で良かったのが、Jetpackの共有が正しく動くようになったこと!これで大分更新が楽になります。
悪かった点としては・・・
上記のような問題が出ていたので、予想されるのはサイトの追加が出来るのか?という懸念。
試してみるとnginxエラー!サイトの追加が出来ませんでした・・・ただ、当面はサイトを追加する事はないし、もうあまりこうした技術的な所にははまらないようにして、もう人に依頼するようにします。
ということでしばらくはこれで進めていきます!
深刻なエラーが出たら・・・頑張ります!
また、記事更新もやる気が出ますので応援していただければ幸いです!
t1.microは$0.026では?
http://aws.amazon.com/jp/ec2/previous-generation/
ご指摘ありがとうございます!補足しておきます!