テレビや人気のウェブサイトに掲載されて、突然アクセス数が爆発的に増えた。そういった経験はあるでしょうか。一度経験したことがあれば分かりますが、突発的なアクセスの増加はある日突然やってきます。サーバーに負荷がかかるとページの表示が遅くなったり、最悪の場合サーバーがダウンします。せっかく多くの人に自社製品やサービスを知ってもらう機会なのに、サーバーが重いと機会を損失してしまいます。
こういった事態を防ぐには、アクセス殺到を事前に想定した上でシステムを組んでおく必要があります。サーバーの選定、使用するCMSなどを検討事項は多岐に渡ります。もしあなたの使用しているCMSがWordPressの場合、とれる対策は以下の通りです。
WordPressのアクセス負荷対策
- プラグイン「StaticPress」を使う
- サーバー周りを増強する(スペックを増やす・冗長構成にするなど)
- 別のCMSを使う
1.プラグイン「StaticPress」を使う
WordPressはダイナミック・パブリッシングという方法でページが生成されています。ダイナミック・パブリッシングとはデータベースからページ内容を呼び出し動的に表示させるという方法です。WordPressを始め多くのCMSはこの方法でページが表示されます。このダイナミック・パブリッシングはシステムの観点からは管理しやすいという利点があるのですが、サイト閲覧者からするとページ表示が重いというデメリットがあります。
ページの表示を速くするには静的なhtmlでウェブサイトを構築すればいいのですが、この方式はファイルを一枚一枚管理するため非常に煩雑です。そもそもこの方法はCMSでも何でもない。CMSの利点を利用しつつ、サイト閲覧者にストレスを与えないようにページの表示を速くするにはどうすればいいか?その解決策が、ダイナミック・パブリッシングで出力している内容を、静的なhtmlとして出力する、というものです。
実に都合のいいことに、WordPressにはこれを可能にするプラグイン「StaticPress」があります。使い方は詳しく紹介した記事があるのでそれを参考ください。http://coliss.com/articles/blog/wordpress/export-wordpress-to-static-html.html
ただし、このプラグインは動的なプログラムは未対応です。問い合わせフォームや、その他PHPで動いている場合は、プログラムの対象外となります。こういった制限がつくので、結局これだけでアクセス負荷の対策になるかと言うと、ちょっと厳しい気もします。
2.サーバー周りを増強する
サーバー周りを増強するのはアクセス負荷の対策になります。二台以上のサーバーで冗長構成を組む、ニフクラやAWSなどのクラウドサービスを使うなど色々あります。もっとも、このクラスの対策はサーバーエンジニアでないとできません。プロに依頼する場合、それなりの予算が必要となります。
別のCMSを使う
1のプラグインが貧弱で、2のサーバー周りもプロに頼らないといけないとなると、そもそもWordPressで根本的なアクセス負荷対策をするのは難しいのではないか?という疑問が出てきます。その場合、別のCMSを選択枝に入れるのもありではないでしょうか。標準機能としてダイナミック・パブリッシングと静的なhtml出力を切り替えることができるCMSがあれば、そういったCMSが好ましいのは間違いありません。それでは、この条件を満たしたCMSをいくつかピックアップしてみます。
あかもんCMS
エスキュービズムの開発したCMS「Orange Media」。PythonベースのCMSは拡張性に溢れ、標準機能が非常に豊富です。静的なhtmlとして出力したページは別サーバーに転送することができるので、セキュリティの担保にもなります。
Movable Type
元祖CMSと言えばやはりMovable Type。ダイナミック・パブリッシングも対応可能ですが、デフォルトでは静的なhmtlを出力することになっています。ページが増えると再構築に時間がかかるのがちょい面倒ですが、安定感は抜群です。
NOREN
NORENは静的なコンテンツで十分なコンテンツは静的に、動的なコンテンツはダイナミックパブリッシングというようにコンテンツによって使い分けることができます。もっともこのクラスのCMSは高価・高機能なので、WorePressを使っている人にはあまり関係ないかもしれません。
最後に
単にアクセス負荷の問題を解決すると言っても、いろいろなアプローチがあることが分かります。本格的にWordPressのアクセス負荷に対応したいなら、CMSの選定という根本的な見直しが必要な場合もあります。プラグインで気軽に解決するのような狭い選択の中だけで考えず、幅広い視野を持って問題解決にあたったほうがいいこともあります。