こんにちはー!ニアです。
昨日から始めたサーバー移行作業が終わり、本サイトはExpressWebからKUSANAGI for ConoHaに移行しました。
1. 環境の比較
ExpressWeb | ConoHa | |
---|---|---|
プラン | N/A | 4GBプラン / KUSANAGI |
CPU | N/A | 4コア |
メモリ | N/A | 4 GB |
ストレージ | 30 GB | SSD 50 GB |
価格(月額) | 250円(年払いの場合) | 3,420円 |
OS | Windows Server 2008 R2 | Cent OS 7 |
Webサーバー | IIS 7.5 | Apache 2.4.11 ⇒ nginx 1.9.12 |
PHP | 5.3.14 | 5.6.20 ⇒ 7.0.5 |
データベース | MySQL 5.1 | MariaDB 10.0 |
2. サーバーの移行
サーバーを移行した時の大まかな流れは以下の通りです。
- ConoHaでVPSを作成します。
- VPSを起動し、パッケージのアップデートとKUSANAGIの初期設定をします。
- KUSANAGIでWordPressのプロビジョニング(WordPressの環境構築)します。
- WordPressをセットアップします。
- phpMyAdminをインストールします。
- ExpressWebからコンテンツとデータベースをダウンロード(コンテンツはWebMarixで、データベースはphpMyAdminで)します。
- phpMyAdminでConoHaにデータベースをインポートします。
- STFP接続でConoHaにコンテンツをアップロードします。
- DNSサーバーをConoHa側に切り替えます。
- Let’s Encriptをインストールし、Webサイトをhttpsに対応させます。
2.1. DNS変更後に悪戦苦闘
1.から9.までの作業は順調に終えることができました。
しかし、9.のDNSサーバーが切り替わった後、ドメイン名からサイトにアクセスできない問題が発生しました。IPアドレスを直接指定した時はアクセスできるのですが・・・。
解決方法を調べてみたところ、DNSの設定でAレコードを登録し忘れていたことが判明しました。
そこでDNSレコードに「wwwなし」と「wwwあり」の2つのAレコードを追加し、値にはVPSのIPアドレスを設定しました。
さらに、VPSのPTRレコードにある逆引きホスト名をドメイン名に設定しました。
レコードを更新てからしばらくすると、ドメイン名からサイトにアクセスできるようになりました!DNS関連の設定は最初に済ませておくのがよいですね。
なお、不測に事態に備えて旧ドメインのリダイレクト設定を解除し、サーバーの移行前のコンテンツにアクセスできるようにしていました。今ではchronoir.netへのリダイレクトに戻っています。
GWが終わるまでに安定してアクセスできるような状態にしておきたいです。
2.2. SSL対応にしてみました
サーバーの移行後、以下の記事を参考にLet’ s Encriptを導入し、本サイトにhttpsでアクセスできるようにしました。
KUSANAGIにあとからLet’s Encryptを入れる – noldor’s diary
本文中のコンテンツの画像(http://chronoir.net/…)に対しては、WordPressのプラグイン「Search Regex」を使ってプロトコルを省略し、httpsで読み込むことができるようにしました。
ちなみに、本サイトはQualys’ SSL LABSのSSLテストでA評価を得ています。
3. パフォーマンス
3.1. ページの読み込み
早速ホームページを読み込みの時間を「Web担当者Forum版 ページ速度分析ツール」を使って測定してみました。
サーバー移行前はホームページの読み込みに3~4秒かかっていたのが、移行後は1秒前後になりました。
また、KUSANAGIのページキャッシュにより、2回目以降のホームページの読み込みがさらに速くなりました。中には0.5秒を切ることも。
3.2. サーバーのベンチマーク
移行前のExpressWebと移行後のKUSANAGIでのベンチマークを、Apache Benchでベンチマークを測定してみました。
ab -n [合計リクエスト数] -c [同時接続数] [URL]
KUSANAGIでは、ページキャッシュ(bcache、fcache(fcacheはnginxの場合のみ))を有効にして測定しました。但し、測定前にキャッシュをクリアしています。
ExpressWebでは、同時接続数を5、リクエスト数を10で測定しました(KUSANAGIと同じ条件で測定したら、DoS攻撃になってしまうので)。
サーバー | ExpressWeb(IIS 7.5) | KUSANAGI(Apache 2.4.18) | KUSANAGI(nginx 1.9.12) |
---|---|---|---|
同時接続数 | 5 | 300 | 300 |
合計リクエスト数 | 10 | 10000 | 10000 |
Concurrency Level | 10 | 300 | 300 |
Time taken for tests [sec.] | 6.868 | 11.395 | 9.978 |
Complete requests | 10 | 10000 | 10000 |
Failed request | 6 | 0 | 0 |
Total transferred [bytes] | 590694 | 599770000 | 598920000 |
HTML transferred [bytes] | 587914 | 596110000 | 596110000 |
Requests per second [#/sec.] | 1.46 | 877.58 | 1002.20 |
Time per reques [ms]
(mean) | 3433.791 | 341.848 | 299.341 |
Time per reques [ms]
(mean, across all concurrent requests) | 686.758 | 1.139 | 0.998 |
Transfer rate [KBytes/sec.] recieved. | 84.78 | 51401.14 | 58616.03 |
移行前と比べて、500倍以上のリクエスト数を捌いています。KUSANAGIさん強い!
4. おわりに
昨日から2日間掛けて、本サイトのサーバー移行作業をしました。はじめてLinuxサーバーを扱うので、サーバーの設定やファイル・ディレクトリのパーミッションを設定、DNS周りの設定をどのようにすればよいのか色々苦労しましたが、無事に作業を完了することができました。
Ex-1. WebサーバーをApacheからnginxに変えました
はじめはApacheで運用していましたが、翌日の朝になるとWebサイトにアクセスできないという問題が発生してしまいました。(汗)
- ブラウザからドメイン名でアクセスできない(静的・動的ページ問わず)
- ブラウザからサーバーのIPアドレスを直接入力してもアクセスできない(静的・動的ページ問わず)
- SSH接続は問題なくできる
- 外部からping接続は問題なくできる
という状態であり、Apacheを再起動したところ、Webサイトに再びアクセスができるようになりました。
しかしApacheを再起動しても、翌日になるとまたアクセス不能になる問題が発生してしまったので、思い切ってApacheからnginxに切り替えました。
しばらくはnginxで様子見です。
【追記】nginxに切り替えてから、5月2日の朝を迎えましたが、朝7時の時点で問題なくアクセスすることができました。
もう数日様子を見て、翌朝を迎えても安定していたら、以後はnginxで使用し続けていこうと思います。
【さらに追記】nginxで運用することに決めました。
[END]
コメント