こんにちは、キノトロープアカデミーです。
「キノトロープアカデミー」は、Web業界のトップランナーである株式会社キノトロープの社員が講師を務めるオンラインアカデミーです。リモートワーク時代に不可欠な「個のスキル」を高め、職人のような「匠」を目指す人を増やしたい。そんな願いを込め、基礎から経営判断、業務フローまで、一生モノのナレッジを惜しみなく公開していきます。
<中級編 第3回>
CMSツールの動的?静的?【Web制作者必見!】
についてお伝えします。
担当は濱田です。
” CMSツールの動的?静的?をテーマに、
今日お伝えしたいことは3つあります。
動的CMSとはコンテンツデータをデータベースに蓄積し、Webサイトへのアクセスに応じて、コンテンツの出力内容を変えていくもの。
静的CMSとはCMSに登録したデータをもとに静的なHTMLをあらかじめ生成するものを指します。
言葉だけだと伝わりにくいので、図と共に説明します。

静的CMSの場合
・Webサーバに対してCMSから、あらかじめページを作る
・Webサーバといわれるサーバにページを置いておく
・ユーザーがアクセスして、その内容を閲覧する。
動的CMSの場合
・ユーザーがWebサイトにアクセスする
・アクセスしてきた情報をもとにCMSにデータを取りに行く
・取りに来たデータに対してCMSは最適な情報をWebサーバに返却
・Webサーバでユーザーに対してコンテンツを提供する
動的CMSと静的CMS、それぞれの特徴についてまとめたものがこちらです。

まず「情報配信」についてです。動的CMSはユーザーがアクセスしてきたタイミングでコンテンツを生成して返しますので、リアルタイムなコンテンツの提供が可能です。その点、静的CMSではあらかじめ配信する内容をWebサーバに置いておきますので、運用管理者がコンテンツを作ってからユーザーに対してコンテンツを提供する「配信完了」までラグがあります。
そして「レスポンス」についてです。やはり動的CMSはアクセスしてきた時に初めてプログラムの処理が行われますので、レスポンスは静的に比べると多少遅いです。静式CMSはあらかじめ用意されているページに対してユーザーがアクセスしますので、その点ユーザーに対するコンテンツの提供はとても速いです。
Webサイトの種類によってはEC機能を持っているものや会員サイト等があります。動的CMSでは閲覧してきた方に「あなたはこの会員さんですね」といったことが可能になりますので、動的CMSでは「ユーザーごとのコンテンツ出し分け」が可能です。ですが、静的CMSではあらかじめページを用意しておきますので、閲覧する人ごとに応じて内容を変えることができません。ですので「表示の出し分け」も動的CMSでは可能ですが、静的CMSでは不可能になります。
「セキュリティ」の観点でも結構違います。動的CMSはアクセスしてきた度にプログラムが処理しますので、セキュリティとしては少し弱いです。静的CMSでは改ざんしようのないものをWebサーバに置いておきますので、仕組みの上でセキュリティ的には高いと言えるでしょう。
主にキノトロープで扱っているCMSについて分類いたしました。

左側が「動的CMS」、右側が「静的CMS」になります。動的CMSは「HeartCore」やオラクルの「WebCenter Sites」、「Drupal」等があります。静的CMSでは「NOREN」や「PowerCMS」、「WebRelease2」があります。
そして上下の図、また次回以降の記事でご説明いたしますが、CMSを扱う上で「ライセンス費」も重要なポイントになってきます。上は「商用」、ライセンス費が掛かるもの。下は「オープンソース」、ライセンス費が掛からないもの。こういったようにCMSは大きく分類できるでしょう。
また「動的」か「静的」かによってあらかじめ準備すべきインフラ環境、サーバ環境も異なります。

「静的」の場合は一つのサーバに対して色々なユーザーがアクセスしてきても特に問題ありません。あらかじめCMSサーバでコンテンツを作ってWebサーバに配信しておくので、単純にWebサーバの負荷もユーザーに対してコンテンツを返すだけ、特別な処理はしません。ですので、基本的には1台あれば問題ないでしょう。

ですが「動的」な場合、やはりアクセスが来てから色々な処理をして配信をするので、サーバに対する負荷が掛かります。ですので、一般的には動的CMSを導入する際にはWebサーバ、CMSサーバの2台を用意しておき、負荷を分散する仕組みや、システムがダウンした時、単純にページを返すだけではなく、アクセスしてきてから処理が発生するので、そちらのサーバ自体が何かしらの障害によってダウンした時にもう片方の方で返す、といった仕組みが必要になります。
データベースに関しても、やはりデータベースの機能障害があった場合にコンテンツを提供できなくなるので、冗長的な部分、耐障害性、何か問題があった時にもちゃんとサービスを継続できるようにWebサーバも2台置いておく、そのようなインフラ面の考慮が必要になります。
また動的か静的かによって「開発コスト」も異なります。
「静的」の場合は静的なページに対してJavaScript等、外部からデータを読み込んでコンテンツの出し分けを行う、トリッキーなことをする必要が出てきてしまいます。ですので、フロントエンド(Webで表示されているもの)の中で完結することが重要になります。
フロントエンドだけで解決できるので、コストや納期は動的CMSに比べて抑えられる傾向にあります。
その点、動的CMSの場合はアクセスが来てその奥での処理になるので、自由度はとても効きますし、きめ細かいコンテンツの出し分けやサービスの提供といったものは可能にはなるのですが、どのようにコンテンツを提供するのか十分な議論、そしてプログラムの開発が発生するので設計に時間を要します。
またサーバサイド側での実装となるため、コストも納期も掛かります。それなりに負荷が掛かると想定されます。
静的CMSの場合、下記のようなメリットデメリットがあります。
【メリット】
・表示スピードが速い
・負荷に強い
・サーバ等のインフラコストが安い
・サーバ台数が少ない分、ライセンス料が安い(サーバーライセンスの場合)
・トラブルに強く、復旧が早い
【デメリット】
・One to Oneに対応ができない
・他のツールとのリアルタイム連動連携ができない
逆に動的CMSの場合は下記のようなメリットデメリットがあります。
【メリット】
・One to Oneに対応強い
・他のツールとの連動連携がリアルタイムで可能
【デメリット】
・表示スピードが遅い
・負荷に弱い
・サーバ等のインフラコストが高い (冗長化が必要なため)
・サーバ台数が多い分、ライセンス料も高い
・トラブルに弱い、復旧に時間がかかる可能性がある
今までの内容をまとめると、
静的CMSは、予めページを準備しておき、準備された同じページをユーザーは閲覧する
動的CMSは、ユーザーがアクセスしてきたタイミングで最適なページを生成し、ユーザー毎に提供する。
インフラコストや開発費は静的CMSの方が動的CMSより低く、
セキュリティや表示速度は静的CMSの方が動的CMSよりも高い。
より堅牢で、正確で平等な情報を届けるには静的CMS、
ユーザー毎にコンテンツを出し分けたり、外部のシステムと連携したりといった高いサービスレベルを提供する場合は動的CMSが適している。
動的CMSと静的CMSはどちらがいいと比べるものではありません。ですが、それぞれの特徴に合致したCMSを選択すべきです。
御社にあったCMSは動的、静的、どちらでしたでしょうか。
最後までご覧いただきありがとうございました。

の3点についての内容でした。





