ここ数年「スタティック(静的)サイトジェネレータ」と呼ばれるツールが一部で人気です。Webサイトを構成するHTMLやCSS、JavaScriptなどのファイルを静的ファイルとして生成するツールです。

たくさんのツールが発表されていますが、スタティックサイトジェネレータの比較サイト「StaticGen」を見ると、流行のきっかけとなったJekyll(ジキル)やMiddleman、Hugoといったツールが人気のようです。

今回は、このスタティックサイトジェネレータの流行の経緯や、Webサイトの静的サイト生成のメリットについて解説します。

エンジニアから始まったスタティックサイトジェネレータブーム

ツールによっていろいろと差がありますが、スタティックサイトジェネレータは基本的にはコマンドライン(CLI)で動作するようになっており、記事コンテンツはMarkdownなどの記法でエディタを使って記述し、コマンドを実行してサイトに必要な静的ファイルを作成します。作成された静的ファイルを公開用サーバに転送すれば、Webサイトの完成です。

記事からHTMLファイルなどを作成するためには、主にテンプレートエンジンが使われるのですが、ツールによってはサイトに必要なテンプレートやデザインパーツがまとめられたテーマも用意されているため、シンプルな構成のWebサイトやブログであれば、比較的手間をかけずに作成することができます。

エディタで記事を作成し、設定ファイルやテンレプレート類もエディタで編集し、コマンドラインで実行するスタイルは、エンジニアや普段使っている環境と同じです。コンテンツの管理や公開にGithubなどを利用することも簡単に行えます。こうした特性から、スタティックサイトジェネレータはエンジニアに好まれるようになりました。

また、スタティックサイトジェネレータは、データベースを利用せず、コンテンツや、テンプレート、テーマ、設定ファイルをテキストファイルのまま扱うため、編集や設定変更にもエディタがあれば事足ります。この手軽さも人気の理由の一つとなっています。

静的Webサイト指向への回帰

スタティックサイトジェネレータで生成する静的なWebサイトには、さまざまなメリットがあります。公開用Webサーバでアプリケーションを動作させる必要がなく、設定は簡潔になり、セキュリティの観点からみても、構成要素が少なく、リスクがとても小さくなります。

さらに、Amazon S3などのオブジェクトストレージをWebサーバの代わりに使うことも容易で、低コストで公開サーバを運用することもできます。高トラフィックな場合でも、コンテンツの生成は行われないので、負荷は小さくてすみ、CDNなどとも好相性です。また、MySQLなどのRDBMSを必要としていないので、サーバセットアップも簡単です。

米国の保健福祉省が運営するHealthcare.govのフロントエンドはJekyllを利用しています。コンテンツをGithubで管理し、リポジトリに更新があると、Webhookで自動的にJekyllを動作させて静的ファイルを作成し、サイトを更新する仕組みを構築しています(参照:「Launching HealthCare.gov」、「It’s Called Jekyll, and It Works」)。

このように、個人のブログだけでなく、オフィシャルなWebサイトでのスタティックサイトジェネレータの利用事例や、先ほど書いたセキュリティに関するメリットなどが注目され、動的志向が強くなっていたWeb制作業界でも静的Webサイトが改めて見直され始めています。

スタティックサイトジェネレータの弱点と使い分け

スタティックサイトジェネレータによる静的Webサイトには弱点もあります。アプリケーションが動作しないので、アクセスに対してサーバサイドで動的な処理を行うことができず、コメントや問い合わせなどのフォームも動かせません。

さらに、頻繁にページが更新されたり、変更を加えたりする必要がある場合には、都度ツールによるサイトの生成が必要になるため、あまりスタティックサイトジェネレータのメリットが感じられません。このようなケースには CMS、それもWordPressなどのようなサーバサイドにおける動的なアプリケーションが最適です。ただし、CMSの場合、アクセスが多くなると負荷対策が必要で、それなりのサーバ運用を求められます。そうしたコストも念頭に入れておいたほうが良いでしょう。

また、私たちシックス・アパートが提供しているCMSプラットフォーム Movable Typeの場合は、スタティックサイトジェネレータと同様に静的サイトを構築することができます。データベースを必要としますが、企業のWebサイト構築・運用に役立つ機能が搭載されているため、スタティックサイトジェネレータで生成する静的サイトよりも柔軟な対応が可能です。

高いセキュリティが要求される自治体や大手企業などのサイトでは、CMSサーバとは別に公開用サーバを用意し、そこにFTPなどでスタティックなコンテンツのみを転送して運用するケースもあります。Movable Type クラウド版の場合は「サーバー配信機能」が搭載されているため、それを利用して、CMSで生成したスタティックなコンテンツのみ公開サーバに転送し、CMSとは切り分けて運用するユーザーも増えてきています。

静的に作られたWebサイトの可搬性(モビリティ)は非常に高いので、サイトを移したり、バックアップを作成したりすることも容易です。静的サイト自体のバージョン管理も難しくないでしょう。このような運用が可能なことも、静的なWebサイトのメリットの一つです。

*  *  *

こうしてみると、近年ブームとなっているスタティックサイトジェネレータは、以前からあるCMSの一種であり、コンテンツの変換に特化したものと言えます。Webインタフェースでの管理やユーザー管理などは省略されているため、軽量であるのが魅力で、簡素に使うことが可能です。一方、管理をするための機能が使いたいユーザーは、先ほど紹介したように、ケースに合わせてWordPressや Movable Type といったWeb CMSを使うのがよいでしょう。

先ほども書きましたが、動的サイトを生成するCMSは、記事作成者、編集担当者にとって、公開する際にページをパブリッシュする必要がないので、コンテンツ作成処理の動作が軽量であるなどのメリットが多数あります。その分、サイトを訪問するお客様が閲覧するリクエスト毎にページを生成するため、「表示が遅い」など、お客様側に負担をかけるケースも多くなるので、きちんとした負荷対策をしておかないと、機会損失にもつながります。

逆に、静的なサイトを生成するCMSは、公開するタイミングでページをパブリッシュするため、担当者が負担に感じることもあります。しかし、サイトを訪問するお客様の負担は少なく、多少アクセスが増えても、「ページが真っ白で何も表示されない」というケースはまれで、比較的安定した運用が行えるため、アクセスが集中しやすいサイトに好まれます。うまく使い分けて、効率的なサイト運用を心掛けましょう。

著者紹介


平田 大治(HIRATA Daiji) - シックス・アパート株式会社 執行役員CTO

大手通信会社を経て、ベンチャー投資事業のネオテニーに参加。Movable Type の日本語化、執筆、講演活動などブログの啓蒙活動に取り組む。

2003年にシックス・アパートに参加し、米国本社 VP of Technology、日本法人の技術担当執行役員として、国際的な事業の立ち上げに寄与。同社退社後、ネットPRのパイオニア、ニューズ・ツー・ユーで取締役を務める。2012年10月から再びシックス・アパートに加わり現職。