ここ数幎「スタティック(静的)サむトゞェネレヌタ」ず呌ばれるツヌルが䞀郚で人気です。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月から再びシックス・アパヌトに加わり珟職。