小澤昌樹のKUSANAGIでいろいろ動かして速さを確認してみた!
第一回「KUSANAGIでMODXを動かしてみた!」
著者:株式会社シオラボ 代表取締役 小澤昌樹
◆ はじめに
みなさん、こんにちは。株式会社シオラボの小澤と申します。
今回より、「小澤昌樹のKUSANAGIでいろいろ動かして速さを確認してみた!」と題して、このコラムを担当させていただくことになりました。
このコラムでは、超高速WordPress仮想マシン「KUSANAGI」に、WordPress以外のPHP系アプリをインストールしてみて、そのインストール方法や、速度比較などの情報を提供していきます。どうぞよろしくお願いいたします。
さて、1回目の今回は、オープンソースCMSの「MODX」を取り上げます。
◆ MODX
「[MODX](http://modx.jp/)」は、軽量動作・自由度の高いデザインワーク・習得のしやすさを特長とするオープンソースのサイト管理ツール(CMS)です。PHPとMySQLで動作します。
MODXには、Evolution(1.0系)とRevolution(2.0系)という2タイプが存在しており、それぞれ別々のプロダクトとなっていて、少し分かりにくさがありますが、通常のサイト制作では、Evolution(1.0系)を使えば良いようです。なお、それぞれの違いは、[どっちのMODXを使えばいいか?](http://modx.jp/about/which.html)に比較表が掲載されていますので、参考にしてみてください。
◆ インストールの事前準備
前提として、仮想マシンは、AWS用の「[KUSANAGI for AWS](https://kusanagi.tokyo/cloud/kusanagi-for-aws/)」を使って、すでに構築されているものとします。また、[KUSANAGIの初期設定](https://kusanagi.tokyo/document/kusanagi-init/)、[KUSANAGIのプロビジョニング](https://kusanagi.tokyo/document/kusanagi-provision/)を参考に、初期設定とプロビジョニングが完了しているものとします。
なお、[MODXの動作環境](http://modx.jp/docs/install/env.html)を踏まえて、KUSANAGIの初期設定では、Webサーバの選択で「Apache」、アプリケーションサーバの選択で「PHP5」を選択してください。
また、MySQLには、MODXで使用するデータベースとユーザーをあらかじめ作成しておいてください。
◆ インストール
それでは、MODXをインストールしましょう。使用するのは、Evolution版です。
- インスタンスにsshログインし、rootになります。
- MODXのダウンロードページから最新版をダウンロードし、解凍します。解凍すると、evolution-jp-masterというディレクトリが出来上がります。
“`
wget -O modx.zip http://modx.jp/?dl=evo.zip
unzip modx.zip
“`
- 解凍したディレクトリを、ドキュメントルートの下にコピーします。
“`
cp -r evolution-jp-master /var/www/html
“`
- MODXに含まれる .htaccess をリネーム(2箇所)します。また、RewriteBaseをディレクトリ名に合わせて設定します。
“`
cd /var/www/html/modx
mv sample.htaccess .htaccess
vi .htaccess
RewriteBase /modx
cd /var/www/html/modx/manager/
mv ht.access .htaccess
“`
- パーミッションを変更し、configファイルのリネームをします。
“`
cd /var/www/html/modx
chmod -R 777 assets
chmod -R 777 temp
chmod -R 777 content
cd manager/includes
mv config.inc.php.blank config.inc.php
chmod 404 config.inc.php
“`
- Apacheを再起動します。
“`
systemctl restart httpd.service
“`
- ブラウザで、 `https://(ホスト名)/modx/` にアクセスすると、以下のようなインストーラー画面が表示されます。
- あとはインストーラの指示に従って、インストールを進めていけばよいです。途中、サンプルサイトをインストールするか聞かれますので、「インストールする」をチェックして進んでいきましょう。
「インストールは無事に成功しました。」が表示されれば完了です。
- インストール終了のボタンを押すと管理画面へのログイン画面となります。ログインし管理画面を開きましょう。管理画面では公開サイトの設定ができますので適宜変更しましょう。
◆ パフォーマンス検証
今回は、パフォーマンス検証の対象として、デフォルトのままの公開サイトを使います。
また、パフォーマンス検証には、Apache Benchを使ってみましょう。
比較検証するのは、
- (KUSANAGI)KUSANAGI for AWS で使ったインスタンスにインストールしたMODX
- (非KUSANAGI)AWS に まっさらな CentOS 7 インスタンスを作り、そこに、PHP、Apache、MySQLを手動インストールしたMODX
です。
AWSのインスタンスタイプは、いずれもt2.mediumとし、PHPなどのバージョンは揃えてあります。
検証で発行するのは以下のコマンドです。100ユーザ同時に、1ユーザーあたり30リクエストを発行する、というコマンドです。
“`
ab -n 3000 -c 100 http://(ホスト名)/modx/
“`
◆ 検証結果
早速、検証結果です。
||KUSANAGI|非KUSANAGI|
|:–|:–|:–|
|Document Length|4595 bytes|4586 bytes|
|Complete requests|3000|3000|
|Failed requests|0|0|
|Requests per second [# /sec]|938.31|173.63|
|Time per request [ms]|1.066|5.759|
Requests per second は、秒間にさばけるリクエスト数です。KUSANAGIでは約938リクエストとなりました。対する非KUSANAGIは約174リクエストです。
Time per request は、1リクエストあたりの処理時間です。KUSANAGIの約1msに対して、非KUSANAGIは約5.7ms掛かっています。
これにより、KUSANAGIのパフォーマンスは、非KUSANAGIに比べて、およそ5.4倍という結果が出ました。
◆ まとめ
超高速WordPress仮想マシンという触れ込みのとおり、KUSANAGIのパフォーマンスは非常に高速でした。コマンド操作でも、もっさり感を感じませんが、ベンチマークを取って改めて認識させられました。
KUSANAGIは、パフォーマンスもさることながら、PHP、Apache、MySQLという、いわゆるLAMP環境を自分でセットアップしなくてよいというもの大きなメリットです。アプリケーションをインストールする際のトラブルがほとんどありません。非KUSANAGIでは、タイムゾーンの設定を忘れていたり、細かいところで躓くことがありました。
次回も、KUSANAGIでいろいろ動かしてみたいと思います。それではまた。