Skip to content

Web インフラ概略

jizi-web.png

DNSサーバー(Domain Name System)は、インターネットの「住所録」のような役割を果たします。

例えば、私たちが「www.example.com」というウェブサイトにアクセスしたい時:

  1. DNSサーバーは「www.example.com」という名前を「203.0.113.1」のような数字のIPアドレスに変換します
  2. この変換によって、ブラウザは実際のサーバーを見つけることができます

つまり DNS は、

  • 人間にわかりやすい「ドメイン名」
  • コンピュータが理解できる「IPアドレス」

この2つを相互に変換する電話帳のような仕組みです。
JIZI の全サービスも DNS によってユーザーがアクセスしやすい形で公開しています。

JIZI では Cloudflare が提供する DNS サービスを使用しています。


JIZI の各サービスに対する HTTP リクエストは(一部を除いて)すべて Cloudflare のプロキシを経由します。

Cloudflare のプロキシサーバーは世界中に配置されており、
Web ページに含まれる画像や静的ファイルをユーザーに近い場所で配信することで高速化しています。

Cloudflare のプロキシが提供する主な機能:

  • bot対策: 不正アクセスやスキャンを遮断
  • CDN: ファイルをキャッシュして高速に配信
  • DDoS対策: 大量リクエストからサービスを守る
  • WAF: 攻撃的なリクエストを自動的に検出・遮断

JIZI の Web サービスの安定性と可用性を支える重要なレイヤーです。


VPS(Virtual Private Server)は、仮想的な専用サーバーを借りて運用できるサービスです。

JIZIでは現在、以下のようなサービスがVPS上で動いています:

  • 部内 OSS サービス:JIZI Wiki (GROWI)、JIZI MD (CodiMD)
  • 旧 JIZI ポータル(移行予定)
  • 旧 工大祭ポータル(移行予定)
  • Discord Bot
  • その他、補助的な API / 常駐プロセス

VPS は自由度が高い反面、

  • セキュリティ管理を自分たちで行う必要がある
  • バックアップやアップデートの負荷が高い

などの理由から、Cloudflare・Workers を中心とした構成へ少しずつ移行しています。


Wasabi は、JIZI が利用している S3互換オブジェクトストレージです。
大きなファイルや長期保存が必要なデータを扱うのに適しています。

2025年12月現在、以下の用途で使用しています:

  • 工大祭ポータルのファイル保存(例:企画書PDFなど)
  • Terraform の tfstate 保存
    → IaC 運用のための重要データ

Wasabi はコストが安く、S3互換 API が使えるため Terraform との相性が良いのが特徴です。


Cloudflare Workers は、Cloudflare が提供する サーバーレス実行環境です。

特徴:

  • サーバー管理が不要
  • 世界中のエッジで実行されレイテンシが低い
  • 小規模な API / 認証 / プロキシ処理に向いている

JIZIでは、静的サイトや小規模 API のホスティングに Workers を利用しています。


Workers と併せて利用できる Cloudflare の永続化サービスです。

  • キーと値のペアを保存する高速ストレージ
  • キャッシュのような用途に強い
  • 書き込みの反映が最終整合性で、即時同期されない点に注意
  • SQLite をベースにした軽量データベース
  • 小〜中規模の構造化データ管理に向いている
  • Workers から直接扱えるため、サーバー不要の API 開発が可能
  • Cloudflare 提供の S3互換ストレージ
  • 大容量ファイルの保存に適している
  • Egress(外部転送)が無料という強い利点がある

Durable Objects は、Workers と併用できる 排他的で永続的な状態管理の仕組みです。

  • 特定のキーに関連付けられた「1つだけのオブジェクト」が存在する
  • そのオブジェクトへのリクエストは逐次処理され、衝突しない
  • チャットルーム・リアルタイムカウンタなどに向く

Workers の弱点である「状態を持てない」を補う拡張機能です。


以上が、JIZI の Web インフラの主要構成要素です。
各コンポーネントがどのような役割を持ち、どのように連携しているかを理解することで、今後の講習内容(アプリ、CI/CD、IaC)への理解がスムーズになります。