ブログサーバをConoHaに移行

ブログサーバをDTIのServersman@VPSからGMOのConoHaに移行しました、
このブログも早いもので開設してから5年がたちました
開設当初からServersmanのエントリープランで頑張ってたけどいつも動作が遅く、いつか良くなるだろうと思っていたのですが、いつまでたっても改善されない状況にいい加減見切りを付けました。
最初は安定安心のさくらのVPS
にしようかと思っていましたが、知人よりConoHaをおすすめされたので試しに使ってみることにした。
(以前OSCでConoHaの割引チケットもらったのに、使う前に期限切れてしまった。またどっかでもらえないかなー)
プランは今までのServersmanでのスペックと似たところのメモリ1GBの900円のプラン
スペックは下記の通り

  • CPU 2コア
  • メモリ 1GB
  • SSD 50GB

大きな違いとしてはストレージがSSDになったからI/Oのボトルネックが良くなったところ。
Serversmanの遅さの原因を調べていた時、ファイルIOの遅さが足を引っ張ってるとあったので大きく期待していた。(ちなみにさくらのVPSでもSSDプランあるよ)

さて、Wordpressの移行についてだが、事前にある程度調べていたので大きな問題はなかった。
ただもともと5年前の環境だったので、CentOS5のままだった。(CentOS5もうサポート切れてるから放置している時点でやばかったなw)
サーバ運用はRHEL系のCentOSが好きなので引き続き使用するつもりで、現在サポートが有るのは6と7
勿論最新のものが一番員だけど、CentOSは7になってコマンド体系が大きく変わって、設定するのが面倒な印象だった。
以前、業務で使おうとしたときはまだ7出たばかりということもあって、情報少なかったので安定性や問題時の対応などを考え6にしたことがある。
ただ、今回はすでに7が出て結構経っていることもあり、今更6.x使うのもな~ということで重い腰を上げて7系の操作になれることにした。

初期設定

ということで、ConoHaお初期設定画面上で7を選択してインストール
しばらくして、構築が完了して管理画面上でIPアドレスを確認する。
そしてPCのターミナルからSSHで接続
まあ、普通どおりだけど設定項目は以下の通り

ユーザ作成

何はともあれまずは一般ユーザを作成してパスワード設定

useradd ユーザ名
passwd ユーザ名

wheelグループ追加

sudo権限与えるために作成したユーザをwheelグループに追加

usermod -aG wheel ユーザ名

sudo設定

wheelグループがsudo使えるように設定

visudo #エディタが開くので下記設定
%wheel  ALL=(ALL) #もしコメントアウトされていたら解除

ssh公開鍵設定

rootは後でSSHでログインできないようにするので、一般ユーザーのみ公開鍵でログインできるようにする。

su - ユーザ名
mkdir ~/.ssh
chmod 700 .ssh

/home/ユーザ名/.ssh/authorized_keysに公開鍵を設定

sshポート変更、root非許可

上記で述べたようにrootのリモートログインを拒否する。
またセキュリティのためSSHポートを22から変更する。

vi /etc/ssh/sshd_config
# Portのコメントアウトを解除して10022等好きなポートに変更
# PermitRootLoginをnoに変更

また、ポートを変えたことでそのままだとファイアウォールで弾かれてしまうため、firewalldの設定をする。

cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/service/
vi /etc/firewalld/services/ssh.xml
# ポート番号を22から上記で設定しポートに変更
firewall-cmd --reload

SSHのサービスを再起動する。

systemctl restart sshd.service

設定が正しく反映されているか確認するため、別のターミナルから一般ユーザでSSH接続をする。
この時、今ログインしている端末を閉じてしまうと、設定を間違っていた場合ログインできなくなる可能性もあるため、開いたままにしておきいつでも戻せるようにしておく。
横着しているけど、本当ならPermitRootLoginの設定はまだ残しておき、一般ユーザの公開鍵認証に成功したこと確認してからrootのログインを殺したほうが安全性は高いと思う。
あと、万が一設定に失敗したままSSHを切ってしまった場合、ConoHaならWEB管理画面からターミナルにつなぐことができるのでそっちで復旧操作ができるよ。(自分がやらかしてしまったw)

yum更新

認証周りができたら、パッケージのアップデート
管理者権限で(rootで操作するか、sudoつけるかお好みで(後者のほうがいいだろうけど))

yum update -y
yum upgrade -y

パッケージ導入

WordPressに必要なツールをyumでインストール
ApacheとDBとPHP
そういえばMySQLはMariaDBになったんだっけ

yum install -y httpd mysql-server php php-mysql php-mbstringn php-gd mariadb-server

config設定

導入した各ツールの初期設定を行う。

Apache

Apacheは特に/etc/httpd/conf/httpd.confをいじるところはなかった。
後でWordPress復旧時にconf.dにVirtualHost用の設定を追加(後述)

PHP

ブログ初期構築時の資料を見ながらphp.iniを設定
PHPのバージョンも新しくなっているから、細かいところは違うけど、とりあえず文字周り(mbstringとか)の設定だけは合わせておいた。
あとは、変えていないところもある。問題はなさそう。

MariaDB

PHPと同じく前回構築時の資料からMy.confを編集

HTTPポート開放

HTTPの80番ポートが閉じているので開放する。

firewall-cmd --permanent --add
firewall-cmd --reload

起動、自動起動設定

ApacheとDBを起動して、OS立ち上がり時の自動起動設定も行う。

systemctl start httpd.service
systemctl enable httpd.service
systemctl start mariadb.service
systemctl enable mariadb.service

ブラウザでIPアドレス打ち込んで、Apacheのトップ画面が見えるか確認する。
(Apacheの画面もリッチになったんだなー)

WordPress移行

さて、本題のWordPressの移行作業
といってもやることは旧サーバからバックアップを取って、新サーバでリストアするだけだけど
抜き出すデータは2つ、WordPressをインストールしているディレクトリとDBのダンプデータ

バックアップ

バックアップのときは無論旧サーバで操作してるよ。

WordPressディレクトリ

WordPressディレクトリは単純にファイル群なのでTarで固めて落とせば良い。

cd WordPressを入れているパス
tar czvf wordpress.tgz ./wordpress # wordpressディレクトリをgzip圧縮したTarにする

DBバックアップ

MySQLはmysqldumpコマンドでダンプ可能

mysqldump -u DBユーザ名 -p DB名 > wordress.sql

これでバックアップが取れたのでSCPコマンドなどで新サーバにフィアルを投げる

リストア

新サーバにバックアップを置いたら、リストア作業を行う。

WordPressディレクトリ

旧サーバと同じ階層にWordPressファイルを展開する。

mv ./wordpress.tgz WordPressを置きたい場所
tar xzvf wordpress.tgz

DB

DBは旧サーバのDBと同じ名前で新規DBを作成し、バックアップしたSQLを流し込む。

mysql -u root #MySQLにログイン
SET PASSWORD FOR root@localhost=password('パスワード');
CREATE DATABASE DB名;
exit;

mysql -u root -p -D DB名 < wordpress.sql

Apache設定

自分の環境での設定なので詳しくは書かないけど、/etc/httpd/conf.d/の下に、VirtualHost設定でうちのサブドメイン(blog.ligun.net)がWordPressに向くようにしただけ

動作確認

さて、ここまで設定できればサーバとしてはキチンと動いているはず
いきなりドメインの宛先変えるのは怖いので、まずは自分の環境で確認をする。
クライアントのhosts(Windows10ならC:\Windows\System32\drivers\etc\hosts)を書き換えてドメインが新サーバを向くようにする。
ブラウザでURLを叩いて問題なくブログが表示されることを確認する。
問題がなければ、hostsの設定を戻してブログドメインのDNS設定を変更する。
自分の場合はドメインをお名前.comで契約していてDNS設定もそこでしていたのでblog.ligun.netのAレコードのIPを書き換えた。
これでしばらく待って、PINGなどで宛先が新しいIPに変わったことを確認したら再度ブラウザでアクセスしてみる。
これできちんと表示されることを確認できたら移行完了だ。

所感

感想だが、おもったより簡単に移行できて拍子抜けした。
まずCentOS7の操作だけど、食わず嫌いしていただけで、一旦操作を覚えたら特に違和感なく扱うことができた。
ファイアウォールとかは慣れたらiptablesでの設定より簡単そうだし
そして、WordPressの移行作業ももっとハマるポイント多いかと思ったけど(ApacheやPHPのバージョンなどで)、ファイルとDBリストアするだけで何も問題なかった。

動作に関してだけど、今まで我慢してたのが馬鹿らしくなるくらい快適に動いている!
表示が爆速とまでは行かないけど、ストレスなく読み込むことができる。
これユーザ体験に関わることだからもっと早くやっておくべきだった。
気になることとしては、移行して半日たったくらいで一回DBサーバが死んだ。
ログ見るとメモリ食って落ちたっぽいので、以前やったメモリ削減関係の設定もやっておいたほうがいいかも(ココらへんは性能との兼ね合いになるだろうが)

さて、次にやることはGoogleさんが7月までにHTTPSに移行しないとセキュアじゃないサイトとして警告するらしいので、SSL対応させることかな。

コメント

タイトルとURLをコピーしました