福岡ファッションビルで、Cloud Days 九州が開催されます。
FL.OPSのブースでは、「baserCMS × FL.OPS」「運用監視」「cloudThrow」のデモを実施します。
興味のある方は、是非、見にきてください。
さて、今回は「baserCMS × FL.OPS」の構成についてご紹介します。
baserCMSは、CakePHPを使ったCMSですので、一般的にはこのような構成になります。
■一般的な構成
Webサーバ:Apache+mod_php
DBサーバ:MySQL
アクセス数がそれほど多くない場合は、この構成でも十分なケースもありますが、 規模の大きいサイトでは、性能不足で閲覧できなくなることもあります。 そこで、「baserCMS × FL.OPS」では次のような構成にしています。
■FL.OPSでの構成
リバースプロキシ:Nginx
Webサーバ:Apache+mod_php 又はNginx+php-fpm
DBサーバ:MariaDB
一般的な構成と大きく違うところは、リバースプロキシにNginxを使う部分です。
*****
リバースプロキシは、「Nginx」の他にも「Squid」「Lighttpd」「Apache」「Varnish Cache」 などが有名です。 FL.OPSでは、Nginxのキャッシュ機能が性能面で優秀であることに着目しました。 リバースプロキシを使うことで、次のようなメリットがあります。
・キャッシュによるページ表示の高速化
・スケールアウトの簡易化
CMSでは、通常、アクセスを行う度にDBアクセスが発生します。 所謂、固定ページで構成しても、なんらかのDBアクセスが行われます。 そこで、前段としてリバースプロキシを設置して、効率的なキャッシュ生成を行うことで、 DBアクセスを最小限に止めることにしました。
また、アクセス数の増加をスケールアウトで対応したい場合も、リバースプロキシ を増やすだけで対応できます。
*****
今回、Cloud Daysのデモサイトでは、WebサーバにApacheを採用しています。
ApacheよりもNginxが早いのでは?という声が聞こえてきそうですが、実際は単純に 優劣がつくものでもありません。 いろいろと検索してみると、Apacheの方が良い結果だったという方が少なからず います。
この辺りは、コンテンツの作り方や内容次第です。 また、Apacheを前提に作られたCMS等をNginxで動かす場合、Rewrite処理が複雑化 することも多いです。 「.htaccess」を前提にしたものでは、特にその傾向があります。
*****
最後に、DBで採用したMariaDBについて。 MariaDBは、オラクル社のMySQLからフォークしたDBです。 先日、Redhat Enterprise Linux 7がリリースされましたが、標準DBがMySQLから MariaDBに変わりました。
MariaDBは、MySQLとほぼ同じ機能をもちつつ、さらに進化したストレージエンジン を持っています。 マルチスレッドやマルチソースレプリケーションも使えます。 Cloud Daysのデモでは、細かい設定やチューニングを行っていませんが、実際に ご提供する際は、環境に応じて対応します。