Drupalが役に立たないケースとは?

2009年12月26日 00:00

Q:小規模チェーン店に最適なDrupal設定は?

という質問がDrupalの公式コミュニティサイトに少し前に寄せられました。
その時の回答について、フォローアップしておきます。

Q:30店舗ほどの飲食店紹介サイトで、各店舗が自店舗用のページ(1ページ、写真2点とテキストのみ)を編集できるようにしたいのです。各ページのデザインは固定で検索機能も不要です。
静的モックアップ(HTML+CSS)は制作済みなのですが、各店舗ページのみ上記のような仕様でCMS化することは可能でしょうか?
Drupal初心者のため、どこから手をつけていいか分からない・・・というレベルです。
要約して引用:Drupal Groups

Drupal公式サイトで「別のCMSにしましょう」と書くのはどうかと思い、控えめに回答ました。

A:単なる静的ファイルの一部のみを簡単に更新できるようにしたいなら、Drupalではなく、ページ一部の更新のみに特化したオンラインCMSの『CushyCMS』を使ってみては?
Drupalを導入・運用するにはある程度のシステム知識が必要ですし、導入したとしてもDrupalの一部の機能しか使わないのでもったいないと思います。

まさにこういうものが欲しかったそうで、手軽に導入し問題なく納品できたそうです。

実は、HTMLでサイト製作中にクライアントによる編集の要望が出てきたため、このような方法があればと思ってネット上で探したいたのですが見つけることができず、やはりCMSしかないな・・・・ということでDrupalにたどり着いた・・・・という経過でした。 実際、Drupalの勉強を始めたら予想以上にハードルが高く納期は迫ってくるし・・・・どうしよう!?と焦っていたので、まさに光明が射してきた気分です。 さっそく"CushyCMS"を使ってみます。実際に使った感想などは、またここで報告します。
だいぶ日数が経ってしまいましたが、目的のサイトはこのCMS?を使って無事に納品できました。目的の機能にみごとにぴったりで助かりました。

この場合にDrupal(に限らずJoomla!などの汎用CMS)がなぜ不適切なのか、理由をまとめてみました。

Drupalを運用するにはシステム管理者が必要

Drupal本体やモジュールは、頻繁にアップデートされます。機能が追加される場合はアップデートは必須ではないのですが、脆弱性が見つかった場合のセキュリティ対応の場合は、アップデートしないとセキュリティホールになってしまい、危険です。

また、更新をオンライン(CMS上)で行うようになるため、手元(PC)にコンテンツが残りません。サーバー上のCMSにしか最新のコンテンツが残らないので、時々データをバックアップする必要があるのですが、FTPでフォルダごとダウンロードするわけにはいきません。バックアップ機能を備えたCMSは少ないため、多くの場合はデータベース(MySQL)のダンプを行うことになります。定期的な自動処理も可能ですが、実現・運用にはある程度の技術力が必要になります。

可用性の問題

Drupalは動的にページを生成するタイプのCMSなので、CMSエンジンが停止するとサイトに一切アクセスできなくなります。しっかりした体制で運用できる企業サイトの場合は、本番サーバーに加えて開発用やテスト用のサーバーを準備しておき、事前にテストした上で本番サーバーでもう一度作業をします。小規模サイトでは、このような二重の運用は現実的ではありません。

本番サーバーのみで運用する場合、管理画面で設定を変更したり、テンプレートファイルを書き換えるだけでも予期せずサイトが壊れてしまい、閲覧できなくなることがあります。また、Drupal本体やモジュールのアップデート作業中にアクセスされると、異常な動作をすることがあります。CMSを停止してメンテナンスモードにしてからアップデートの作業をするのが安全です。つまり、サイトを一時的に停止させる必要があります。

一部の機能しか使わないので無駄

Drupalには、ページの一部を簡単に更新する以外にも、いろいろな機能があります。それらを活用しないで限定された用途のためだけにDrupalを導入して運用していくのは、必要な手間やコストを考えるとペイしません。たとえば、

  • データベース付きのレンタルサーバーを契約する必要がある
  • ディスク容量も通常よりも多く必要
  • 前述のようにバックアップやバージョンアップの運用コストが発生する
  • システムダウンを検出するための監視や対応も必要

Drupalはページごとに自由にデザインするのが苦手

今回のケースでは、すでにページのデザインとコーディングが終わっていました。Drupalはブログのようなコミュニティサイトを作ることを得意としているので、デフォルト状態ではページごとにレイアウトを変更することが簡単にできません。基本的には全ページ同じテンプレートになり、個別に条件付けしながら変更ロジックを組み込んでいく必要があります。モジュールを組み合わせればページごとのレイアウト変更を実現できますが。得手・不得手を理解した上で、ふさわしいCMSを選ぶのが得策です。

という理由で、CushyCMSをオススメしました。
サーバー不要でページの一部のみを更新できるサービスを使えば、今回のケースでは次のようなメリットが得られると考えました。

  • 導入が手軽。更新箇所にclass名を追加するだけ
  • 運用フリー。静的ページをFTPするのと同じくらいの低リスクで運用できる
  • バックアップはフォルダごとダウンロードするだけ
  • 穴をあけた特定の箇所のみを更新できるようになる
  • テキストのみの箇所、WYSIWYGエディタを使える箇所、画像、などのコンテンツタイプを指定できる
  • 小規模サイトなら無料で運用できる

この手のサーバー不要のオンラインエディタ的なCMSは、実はいくつか存在します。

もう少し機能が必要な場合は、インストール不要のSaaS型(ASP型)CMSという選択肢もあります。このサイトも、WebnodeというSaaS型のCMSで運用しているので、メンテフリーを実現できました。21種類のSaaS型CMSをレビューした記事はWeb担当者Forumに寄稿してあります:無料でサイトを構築できるCMS+ホスティング16サービスを一挙紹介

まとめ

  • 多様な選択肢を知った上で、製品を選択する必要がある
  • 製品ありきで方法を模索すると、無理に実現する方法しか得られないことがある

ps.効果的な質問は

Q:Web制作のスキルにバラツキがある複数拠点のスタッフがページの一部のみを自分で更新できるようにする方法は?新しいサイトは静的HTMLで作成済みで、納期が近いので5日以内に導入したい。納品後はメンテフリーの状態にしたい。

と汎用化するのが良いでしょう。