かんたんで複雑な、ウェブサービスの作り方を紐解くブログ

CMSの選び方:動的CMS/静的CMSどっちを選べばいいの?

Programming
2021/07/17

今ではウェブサービスの運用を行う上でも一般的によく使われるようになったCMS(コンテンツ管理システム)。 有名なCMSであるWordpressに代表されるように、HTMLやCSSなどのコーディングの知識がなくても、管理画面から誰もがブログ記事を投稿できるようにするシステムです。 でも、CMS自体の多機能化や、無料・有料を含めてさまざまな製品が存在することにより、結局どのCMSを導入したら良いんだろうと迷うこともしばしば。 そのような中で、判断基準として「動的CMS」と「静的CMS」の2つを大きく分割し、判断する方法があります。今回はそんな動的・静的CMSの観点からCMSの選び方を考えます。

多機能な動的CMS

一口にCMSといっても、シンプルにブログ記事を簡単に作成できるだけのものから、お問い合わせフォームを作成できたり、ユーザーのログイン状態を制御できたり、またログインしているユーザーに異なるコンテンツを表示できたりなど、その機能は多岐に渡ります。 そのため「どのような機能がほしいか?」がCMSを選ぶ上で選定基準になります。 そして一般的にですが、より多くの機能を必要とする場合「動的CMS」を導入することが多くなります。 「動的CMS」とはなにか。これは技術的に言えば「ユーザーからのリクエストに対して、サーバーサイド側で処理を行い、動的に変化する形でそのコンテンツを返す」ことができるCMSです。 例えば、ログインしているユーザーには異なるコンテンツを返したり、レコメンドしてユーザーごとに異なるページを表示するなど、ページの内容をユーザーにより自由に変化させることができます。 また、動的CMSは一般的に高機能化していることが多く、合わせてお問い合わせフォームを簡単に作成したり、またマイページを作成したりといった機能を持つCMSも存在します。 有名な動的CMSとしてはWordpressやHeartCoreなどが存在し、多機能化したいのであれば、動的CMSは最適な選択となります。 ただ一方で、サーバーサイド側を含めた処理を行うため、外部からの攻撃を受けるなどセキュリティ的には問題が発生する可能性も発生します。また同様にサーバーサイド側で複雑な処理を含む場合、ページの表示速度が遅くなる傾向もあります。 加えて複雑なプログラム処理を、導入するCMSに合わせてエンジニアが理解し開発を進めていく必要があるため、高いプログラミングスキルが必要となります。そのため有料の動的CMSの場合、開発に慣れたエンジニアをCMSライセンス保有会社に相談しアサインするなども有効な方法となります。 そのため、高機能を取るか、安全性はどの程度必要か、開発に慣れたエンジニアは確保できるかなどを見定め、動的CMSを選択する必要があります。

安全で作りやすい静的CMS

一方で、機能的には一般的に動的CMSには劣るものの、ブログ記事の作成やワークフロー、記事のバージョン管理などCMSとしての機能は保持しつつ、高い安全性を保持するのが静的CMSです。 有名なところではPowerCMS、Movable Type、WebRelase2などの静的CMSがあります。 静的CMSでは基本的に「コンテンツをHTML/CSS/JavaScriptなどの言語で保持し、ユーザーリクエストに応じてサーバーサイド側との処理を行わない」形となります。そのため、攻撃に対して高い安全性を誇り、またサーバーサイド側との複雑な処理が無いため、ページの表示スピードも早くなる傾向があります。 加えて静的CMSはプログラミング的にもシンプル化されている場合が多く、あらかじめ用意された手法を用いると、比較的かんたんに開発を行うことができます。 安全性やスピードを維持しつつ、合わせて知識がなくてもブログ記事などのページ更新が簡単にできることが、静的CMSのメリットになります。 ただ一方で、サーバーサイド側との処理が基本的には無いため、ログイン状態によりページを出し分けたり、またレコメンド機能を取り付けたりなどは難しい場合が多く、多機能化したい場合にはデメリットも大きくなります。 とはいえ現在ではAPI技術も発達しているため、APIを通じたページ内容の出し分けなども利用することで、静的CMSを利用しながらも高い機能性を維持することもできます。

最後に感想として

いかがでしょうか。CMS選定において一つの選定基準となる静的CMS・動的CMSの違いでした。 結局どっちが良いのか?と言われれば明確な答えはなく、ページの更新などの機能に加えセキュリティなどを含めた必要な要件を定め、その上で最適なCMSを選定していくのが必要となります。