」を明確にしようと議論してもあまり有益ではありません。――静的サイトを生成する仕組みや処理のことを指す場合もあります。」と書きたいところです。現状日本では「静的サイトジェネレーター」という表記が主流になっているので、本記事では「静的サイトジェネレーター」という表記で通しています。)なぜいま静的サイトジェネレーターが注目されているのかなぜいま静的サイトジェネレーターが注目されているのでしょうか。)を利用する上での課題があげられます。利用する際にはしばしば以下の面で課題が生じます。使ったサイトの構築・運用には細心のセキュリティ対応が不可欠です。一度サイトを公開したら終わりではなく、構築後もセキュリティアップデートに適時対応していかなくてはなりません。セキュリティ対応に不備があると、サイトの上書きや乗っ取り、機密情報の漏洩や消失、サイト訪問者や他サイトに対する犯罪行為のための悪用等のリスクが増大します。セキュリティインシデントが発生したときには迅速な対応が必要です。日のセキュリティ対応が基本です。作られたサイトには静的サイトに比べて「ページ読み込みのスピードが遅い」「さばけるアクセス数が少ない」といった面でデメリットがあります。動的にページを生成するという性質上避けようがありません。おいても重要になっており、特にサイトの流入数や離脱率がほんの少し変わると収益が大きく変わるようなビジネスにおいては最優先課題になることもあります。作られたサイトは公開後に継続してメンテナンスし続ける必要があります。アップデートに伴って行う互換性チェックやバグ対応、定期バックアップ、プログラミング言語やミドルウェアのアップデート対応等も必要になります。本番サイトを運用するためのサーバーの環境構築や入れ替えには相応の手間がかかります。場合はそもそも利用できるホスティングサービスの選択肢が少ないこともあります。伴うこれらの課題を解消したり緩和したりする方法のひとつとして近年静的サイトジェネレーターが注目を集めています。課題をすべて解決する万能ツールではありません。静的サイトジェネレーターにもそれぞれ「ならでは」の特長と使いどころがあります。未来は静的サイトジェネレーターにある」と考えるのは短絡的です。静的サイトジェネレーターのどちらがよいかは変わってきます。貶めるものがありますが、そのような記事を真に受けてはいけません。それらの記事は、ヒートテックを初めて着た子どもがその良さに感動して「ヒートテック以外の下着はゴミ」「すべての人類はすべての下着を捨ててヒートテックに変えるべき」などとうそぶくのと似ていて、客観性に欠けるからです。)静的サイトジェネレーターのメリット続いて静的サイトジェネレーターのメリットについて説明します。静的サイトジェネレーターにもいろんなタイプがあり、以下に紹介するメリットが必ずしもすべての静的サイトジェネレーターにあてはまるわけではありませんので、その点はご留意ください。セキュリティパフォーマンスメンテナンス本番サーバーコンテンツソースMarkdownバックアップSPAセキュリティ静的サイトジェネレーターで作られたサイトはビルド時にすべてのページを生成するため、ブラウザからのアクセス時には動的な処理は行いません。そのため、サイト上での各種インジェクションや不正ログインの被害を受けるリスクが低いです。作られたサイトよりも静的サイトに近いものになります。パフォーマンス事前にページが生成されるという仕組みは、ページ読み込みスピードや大量のアクセスへの対応といったパフォーマンス面でもメリットがあります。あらゆる対策を施した後のレベルが最初から実現できるようなものです。ちなみに、必要なサーバーリソースが少ないということから「静的サイトジェネレーターは地球にもやさしいです」と主張されることもあります(私はわずかな違いだと思います)。比べるとそのメンテナンスコストは低くなる傾向が高いです。場合ほど気を張る必要はありません。動かすためのプログラミング言語、リレーショナルデータベース、その他関連ツールを本番サーバー上に用意する必要がありますが、静的サイトジェネレーターの場合はそれが必要ありません。代わりに静的サイトジェネレーターの場合はビルドを行うための環境が必要なのですが、本番サーバーに選べるホスティングサービスの選択肢が増えることは間違いありません。静的サイトジェネレーターは、安価なレンタルサーバーや静的ファイルのみ設置できるクラウドサービスでも利用することができます。構築にはデータベースについての最低限の知識が必要になります。静的サイトジェネレーターの場合はリレーショナルデータベースは必ずしも必要なく、シンプルなテキストファイルでコンテンツを管理することができます。等をコンテンツソースとして利用できるものもあります。(マークダウン)と呼ばれるかんたんな記法を使ってページを作成することができます。以上の人が使えるプログラマにはおなじみの記法で、もし知らなくてもルールがかんたんなので少し学べばすぐに使い始められます。エディタやブロックエディタには及びません。つを保存する必要があります。これらはタイミングを変えて保存すると不整合が起こることもあるので、原則同じタイミングで保存する必要があります。バックアップの中身を確認したり特定のバックアップの状態に戻したりするのには一般に手間とコストがかかります。等の高機能なバージョン管理システムでコンテンツを管理することができます。これらを使えば、過去の状態の確認、特定のタイミングのスナップショットへの復元等も比較的かんたんです。略で、単一ページで動くアプリケーションのことです。一般の方向けに平たくいえば「サイト内のページ遷移が高速なサイト」のことです。ブラウザでページ内のリンクをクリックしたときに、ページ全体のリフレッシュが起こらずに必要な部分だけが切り替わる動作をします。機能がデフォルトで備わっているものもあります。実現しようとすると、相応の技術力と工数が必要になります。次に静的サイトジェネレーターのデメリットと利用する上での課題について説明します。静的サイトジェネレーターを利用するには「ターミナルが扱える」「開発環境が用意できる」等の基礎的なプログラミング知識が必要です。場合はプログラミング知識が無い方でもサイト公開が可能です。今後静的サイトジェネレーターが広まれば状況が変わる可能性はありますが、現時点では少なくとも静的サイトジェネレーターは「プログラミングの基礎的な知識を持つ人」がいないと利用できません。一般的な機能に「コンタクトフォーム」「訪問者によるコメント」「アクセス制限」等の動的・インタラクティブな機能があります。静的サイトジェネレーターは静的サイトを生成するものなので、原則そのような動的機能は実現できません。サイトに動的な機能を付けたい場合は、クラウドサービスを利用したり別サイトでその機能を用意したり等といった対応が必要になります。場合は管理者が記事を投稿したらすぐにサイトに反映されることが一般的ですが、静的サイトジェネレーターの場合はビルド処理が必要な関係で、コンテンツの編集からサイトへの反映までにタイムラグが生じます。数千〜数万のコンテンツがあるサイトの場合、ビルドに数十分〜数時間もの時間がかかることもあります(これはビルド環境によるのであくまでも例です)。そのため、コンテンツが多い場合はビルド環境やワークフローに工夫が必要です。静的サイトジェネレーターに限定された特徴ですが、バージョンアップを行うと後方互換性が失われその対応に少なくない手間がかかることがあります。パッケージの問題ですが、静的サイトジェネレーターを使えば対応に追われるリスクが大きいのは事実です。場合後方互換性をできるかぎり保つポリシーで開発されており後方互換性の問題で利用者が悩む状況になることは比較的稀です。メリット・デメリットについては以上です。細かいところもあげると他にもありますが、大きなところはおおよそ押さえられているのではないでしょうか。静的サイトジェネレーターの使いどころメリット・デメリットに続いて「使いどころ」もご紹介します。これがすべてというわけではありませんので、あくまでも一例として参考にしてください。プログラマの個人ブログプログラマが個人的なブログを作るのに使います。比べるとセキュリティ上の心配が少なく気軽に利用することができます。デフォルトで使えるものが多いため、導入のコストや更新の手間も少なめです。ホスティングでもふつうは月に数百円程度ですが)。静的サイトジェネレーターの多くはプログラマが使うためのものだったので、これは長々と説明するまでもありませんね。技術チームのブログ会社のサイト全体ではなく、技術チームのブログだけに部分的に利用します。馴染みがあればかんたんに導入できますし、ある程度放置になってもセキュリティ上のリスクが少なく安心して利用できます。不慣れな初級プログラマがこれらの技術に慣れるためのトレーニングとしてもよいでしょう。更新頻度の低いサイト更新頻度の低いサイトで利用します。これは特に中小企業と個人事業主にとってよい使い方だと思います。使われていてパフォーマンスの低いサイトや、保守の手間や費用を惜しまれてセキュリティホールが放置されたサイトが大量に生まれました。心配する必要なく「ときどき更新して後は放置」というスタイルで運用できます。サイトを更新したいときは都度ビルドができるプログラマに依頼する必要がありますし、コンタクトフォーム等の動的な機能を別に用意しなくてはなりません(更新はプログラマを介さなくてもよいように自動化することもできます)。選択肢を与えてくれます。高いパフォーマンスが求められるサイトページの読み込み速度等において高いパフォーマンスが求められるサイトで利用します。これは主に大企業で静的サイトジェネレーターを採用する理由になると思います。高速化を試みたが費用対効果が悪い」というときに、静的サイトジェネレーターは有望な選択肢になります。静的サイトジェネレーターにはビルド処理が必要で、コンテンツ編集からサイトへの反映までにタイムラグがあります。そのため、ラグをどこまで許容するのか、許容できない場合はどのように対策をし緩和するのかを事前に考えておかなくてはなりません。どのように使い分ければよいのかというポイントについて述べます。使い分けはおおよそ次の感じで考えるとよいと思います。方が利用範囲が広くなると思います。並ぶ定番のサイト構築・運用ツールであるウェブアプリケーションフレームワークと静的サイトジェネレーターの使い分け問題もありますが、これは迷うほどのものではなくほとんどのケースで答えが明らかだと思いますので、ここでは説明しません。前提として、これはビジネスにおけるサイトの構築・運用を想定しています。個人の趣味や勉強での利用は対象にしていません(趣味や勉強の場合は単純に本人がやりたい方を選べばよいと思います)。有名な静的サイトジェネレーターライブラリ静的サイトジェネレーターを実際に試してみたいという方のために、記事執筆時点で有名な静的サイトジェネレーターをいくつかご紹介します。ボリュームに基づいて最も人気の高いものだけを選びました。利用には原則プログラミングの基礎知識が必要になるのでご注意ください。