o-mitz サイトのシステムアーキテクチャについて

この記事の要約 (Key Takeaways)

本システムは、ヘッドレスCMSである Contentful、ソースコード管理の GitHub、そしてビルド・ホスティング基盤である Netlify を連携させた Jamstack (SSG: 静的サイト生成) アーキテクチャを採用しています。本記事では、このブログを裏側で支える構成と自動化の仕組みをご紹介します。 全体システム構成 以下のコードは、当サイトの全体的な連携フローをまとめ...

本システムは、ヘッドレスCMSである Contentful、ソースコード管理の GitHub、そしてビルド・ホスティング基盤である Netlify を連携させた Jamstack (SSG: 静的サイト生成) アーキテクチャを採用しています。本記事では、このブログを裏側で支える構成と自動化の仕組みをご紹介します。


全体システム構成

以下のコードは、当サイトの全体的な連携フローをまとめた Mermaid 構成図です。管理者の執筆から、開発者のコード反映までがシームレスに繋がっています。

システムアーキテクチャ図


デプロイ & 配信フロー

当サイトでは、記事の更新やソースコードの修正が行われると、自動的にビルドが走りユーザーに配信される仕組みになっています。

記事更新時の自動ビルド

  1. 執筆者が Contentful 上でお知らせ(News)または技術ブログ(TechBlog)を公開・更新します。

  2. Contentful の Webhook が Netlify の Build Hook エンドポイントをトリガーします。

  3. Netlify 上で

    gatsby build
    が実行され、Contentful GraphQL API から最新データをフェッチして静的ページを再生成します。

  4. 生成されたファイルが Netlify Edge CDN にデプロイされ、全世界のエッジノードに即時反映されます。

ソースコード変更時のデプロイ

  1. 開発者が GitHub の

    main
    ブランチにプッシュまたは PR をマージします。

  2. Netlify が自動検知し、依存関係のキャッシュを活用しながら

    gatsby build
    を実行します。

  3. ビルド成功後、アトミックデプロイによりダウンタイムゼロで最新バージョンが公開されます。


環境変数と秘匿情報の管理

ビルドおよび開発に必要な環境変数は、ローカル環境では .env.development や .env.production を使用し、Netlify 上では環境変数ダッシュボードにて安全に管理されています。

環境変数名用途参照元
CONTENTFUL_SPACE_IDContentful スペースの識別子Contentful 管理画面
CONTENTFUL_ACCESS_TOKENContentful CD API アクセストークンContentful API keys
GTM-KMNV65KDGoogle Tag Manager コンテナIDgatsby-config.js

以上が o-mitz サイトを支えるアーキテクチャの全容です。静的サイト生成とCDN配信の組み合わせにより、高速でセキュアなブログ体験を提供しています。

大音 匠平

大音 匠平 o-mitz代表

約10年以上にわたり、大手メディア、EC通販、大手家電メーカーなどのWebシステム・サイト構築に携わってきました。CMSやECサイト開発、AWS環境でのバックエンド開発において豊富な経験を持っています。

お気軽にご相談ください

記事内容に関するご質問や、システム構築・運用改善のご相談など、いつでも承っております。

お問い合わせはこちら