Jamstack構成でセキュアなホームページの開設方法
2024-10-14

現在、WordPressはWP Engineによる商標権を巡る訴訟に直面しており、これはOSSの透明性や自由な貢献の文化に対する懸念を引き起こしています。コミュニティ内での混乱も指摘されており、OSSの理念が危機にさらされている現状があります。これを機に、多くのWebサイトオーナーや開発者が代替のCMSや技術スタックを模索する動きが加速するかもしれません。その一つの選択肢として、近年注目を集めている「JAMstack」構成は、非常に有望です。

WordPressの現状と課題

メリット

  1. 大規模なエコシステム:
    数多くのテーマやプラグインが存在し、ほとんどのニーズに応えることができる。
  2. ユーザーフレンドリーな管理画面:
    非技術者でも簡単にサイトを運営できる。
  3. オープンソースの自由:
    カスタマイズの自由度が高く、コミュニティによるサポートも豊富。

デメリット

  1. セキュリティリスク:
    プラグインやテーマの多様さゆえに、セキュリティホールや脆弱性が発生しやすい。
  2. パフォーマンスの問題:
    特にプラグインを多用すると、ページの読み込み速度が遅くなり、サーバーに負荷がかかる。
  3. メンテナンスが必要: 定期的なアップデートやバックアップ、脆弱性対策が不可欠で、特に初心者には負担が大きい。

また、プラグインに関しては、今回ACFプラグイン(Advanced Custom Fields)がSCFプラグイン(Secure Custom Fields)と名前を変え、所有者がWP EngineからWordPress.orgに強制的に変更されるという GNU General Public Licenseではあるまじき行為です。これが許されると、他のプラグインでも同様のことが起こるのではという懸念は払拭できなくなります。ということで、これを機に、近年注目の「JAMstack」構成のブログサイトの運営を視野に入れても良いかもしれません。

Jamstack*構成とは

JAMstackは、Webサイトやアプリの構築方法の一つで、「Webの見た目」と「データ処理やビジネスロジック(つまり、裏で行われる計算や処理)」を切り離すアプローチです。これにより、Webサイトの柔軟性、拡張性、パフォーマンス、そしてメンテナンスのしやすさが向上します。
Webの見た目とは、JAMstackにおいて、ユーザーが実際に目にするWebページの部分です。この部分は静的サイトジェネレーター(SSG:Static Site Generator)という技術を使って作成されます。
データ処理やビジネスロジックとは、サイトの裏側で行われる様々な処理のことです。たとえば、ブログ記事の管理、ユーザー情報の保存、商品の在庫チェックなどです。JAMstackでは、この部分をHeadless CMSと呼ばれるシステムで扱います。
特に、現代の高速化されたインターネット環境や、セキュリティへの関心の高まりから、静的サイトの需要が急速に増えています。

「Webの見た目」:静的サイトジェネレーター(SSG: Static Site Generator)

静的サイトジェネレーター(SSG)とは、Webページの内容を事前に作成し、サーバーにアップロードしておく技術です。たとえば、ブログや会社の紹介サイトのページがすでに用意されているようなイメージです。
SSGは「事前に準備しておくWebページのレシピ」です。これにより、ユーザーがページを開いたときに、すぐに表示されます。

メリット

  1. 高速なページ読み込み:
    事前にHTMLファイルを生成して配信するため、WordPressのようにサーバーが動的にページを生成するプロセスが不要。これにより、ページの表示速度が飛躍的に向上する。
  2. セキュリティ性の向上:
    動的なバックエンドを持たないため、データベースやサーバー側での攻撃リスクが減少。特に、SQLインジェクションやXSS(クロスサイトスクリプティング)のリスクが軽減される。
  3. 低コスト・高パフォーマンス:
    動的な処理を行わないため、サーバーリソースを最小限に抑えることができる。CDN(コンテンツデリバリーネットワーク)を活用すれば、世界中に高速にコンテンツを配信できる。
  4. メンテナンスが容易:
    プラグインの管理やデータベースのメンテナンス、脆弱性のアップデートといった煩雑な作業が不要。

デメリット

  1. 動的コンテンツには不向き:
    コメント機能やユーザー生成コンテンツ(UGC)など、リアルタイムのデータ処理が必要なサイトには追加の技術(APIやサーバーレス機能)が必要。
  2. 初期設定の難易度:
    WordPressのような「セットアップしてすぐに使える」利便性には劣る。ある程度の技術知識が必要となる。
  3. コンテンツ管理の手間:
    静的サイトでは、WordPressのようなWYSIWYG(見たまま編集)機能が欠けているため、Markdownやコード編集が求められる場合がある。

「データ処理やビジネスロジック」:Headless CMS

ヘッドレスCMSとは、Webサイトのコンテンツ(例えば、ブログ記事や商品の説明文など)を管理するシステムです。ただし、JAMstackでは「見た目(フロントエンド)」の部分とは切り離して使われます。
ヘッドレスCMSは「コンテンツを保管する倉庫」で、表示方法は自由です。データはAPIという手段でSSGなどのフロントエンドに提供されます。

メリット

  1. フロントエンドの自由度: 開発者はどんなフロントエンド技術を使用しても良いため、ReactやVue.jsなどの最新の技術スタックを柔軟に採用できる。
  2. 一元管理されたコンテンツ: 複数のWebサイトやアプリケーションで同じコンテンツを使いまわすことが容易になる。これにより、異なるプラットフォームで一貫性のあるブランドメッセージを提供できる。
  3. セキュリティとスケーラビリティの向上: コンテンツとビジネスロジックを分離することで、セキュリティのリスクを抑えながら、必要な処理をスケーラブルに展開できる。

デメリット

  1. 学習コストが高い

WordPressから静的サイトへの移行の考慮点

セキュリティやパフォーマンスの観点から見ると、JAMstack構成は非常に魅力的です。

ブログを運営するにあたり、表示速度はとても重要です。Googleは公式サイト「Think With Google」でも以下のように書かれています。

ユーザーの 40% が、サイト表示に 3 秒以上待てないと答えています。

引用:モバイル サイトの動作を重くする 7 つの原因

この点、静的サイトは、事前にHTMLファイルを生成して配信するため、ページの表示速度が飛躍的に向上します。

結論

WordPressからの移行を検討しているユーザーにとって、JAMstackのような革新技術は、新たな価値と柔軟性を提供します。今こそ、技術の転換点としてのチャンスを活かし、次世代のWebサイト運営へと進化する時です。

Jamstack構成でセキュアなホームページの開設方法
https://notes.midnightstops.com/posts/8/
作者
Author
公開日
2024-10-14