オリジンサーバー おりじんさーばー
CDNキャッシュエッジサーバーコンテンツ配信リバースプロキシフォールバック
オリジンサーバーって何?CDNとどう違うの?
簡単に言うとこんな感じ!
オリジンサーバーは「本物のデータが置いてある本店」だよ!CDNのエッジサーバーが「全国の支店」だとすると、オリジンは「すべての在庫の原本を持つ本社倉庫」みたいなもの。支店がデータを持っていないとき、本店に取りに行くんだ!
オリジンサーバーとは
オリジンサーバー(Origin Server) とは、Webサイトやアプリの「オリジナルのコンテンツ」を保持している、最も源泉となるサーバーのことです。HTMLファイル・画像・動画・APIのレスポンスなど、すべてのリソースの「正本」がここに存在します。
CDN(コンテンツデリバリーネットワーク)を使う構成では、ユーザーのリクエストはまず世界各地に分散配置されたエッジサーバー(キャッシュサーバー)が受け取ります。エッジサーバーにキャッシュ済みのデータがあればそのまま返しますが、キャッシュが存在しない・期限切れの場合には、エッジサーバーがオリジンサーバーに問い合わせて最新データを取得します。この「最後の答えを持っている場所」こそがオリジンサーバーです。
システム発注の観点では、オリジンサーバーのスペック・可用性・所在地がサービス全体の信頼性を左右します。CDNでキャッシュできるコンテンツはエッジで捌けますが、オリジンが落ちるとキャッシュ切れ時に全ユーザーへの影響が出るため、オリジンの冗長化は欠かせません。
オリジンサーバーの役割と構造
| 役割 | 説明 |
|---|---|
| コンテンツの正本管理 | HTMLや画像・動画など全リソースの「元データ」を保持する |
| 動的コンテンツの生成 | ログイン状態やパーソナライズなど、キャッシュできないレスポンスを生成する |
| キャッシュミス時の応答 | エッジサーバーにキャッシュがないとき、代わりにレスポンスを返す |
| 認証・決済処理 | セキュアな処理はオリジンで直接行う |
リクエストの流れ(キャッシュヒット vs キャッシュミス)
【キャッシュヒット(エッジで解決)】
ユーザー → エッジサーバー → ✅ キャッシュあり → ユーザーへ返却
(オリジンへの通信なし)
【キャッシュミス(オリジンへ問い合わせ)】
ユーザー → エッジサーバー → ❌ キャッシュなし → オリジンサーバー
↓
エッジにキャッシュ保存 ←
↓
ユーザーへ返却
オリジンサーバーが直接対応するケース
- 動的ページ:ログイン後のマイページ、カート内容など個人に依存するコンテンツ
- POSTリクエスト:フォーム送信・注文処理など書き込みを伴う操作
- 認証トークンの検証:セキュリティ上、エッジに委ねられない処理
- リアルタイムデータ:在庫数・株価など常に最新が必要な情報
歴史と背景
- 1990年代前半:Webサーバーがすなわちオリジンサーバーであるシンプルな構成。全リクエストを1台のサーバーで捌いていた
- 1990年代後半:インターネット普及によりトラフィックが急増。単一サーバーへの集中がボトルネックに
- 1998年:Akamai Technologies創業。CDNという概念が登場し「エッジサーバーにコンテンツをキャッシュする」アーキテクチャが生まれた。これにより「元データを持つサーバー=オリジン」という概念が明確化された
- 2000年代:CDNが普及し、オリジンサーバーとエッジサーバーの役割分担が業界標準に
- 2010年代:クラウド化が進み、オリジンサーバー自体がAWSやGCPなどのクラウド上に置かれるケースが主流に。Auto Scalingによるオリジンの自動スケールも一般化
- 2020年代:エッジコンピューティングの発展により、オリジンで行っていた一部処理(認証・A/Bテストなど)をエッジで実行する動きが加速。オリジンへの負荷をさらに軽減する設計が進化している
CDN・エッジとの関係
オリジンサーバー vs エッジサーバーの比較
| 比較項目 | オリジンサーバー | エッジサーバー(CDN) |
|---|---|---|
| 役割 | コンテンツの正本保持・動的処理 | キャッシュ配信・負荷分散 |
| 台数 | 少数(1〜数台) | 世界中に多数(数十〜数千) |
| 応答速度 | ユーザーとの距離次第で遅い場合あり | 地理的に近く高速 |
| 扱うコンテンツ | 静的・動的どちらも | 主に静的コンテンツ |
| ダウン時の影響 | 大(キャッシュ切れ時に全影響) | 中(他のエッジや直接アクセスで補える) |
| コスト | 処理能力に応じて変動 | CDN利用料(転送量課金が多い) |
オリジンシールド(Origin Shield)とは
オリジンシールドは、複数のエッジサーバーとオリジンの間に中間キャッシュ層を設ける機能です。エッジが直接オリジンに問い合わせるのではなく、シールドサーバーが代表して問い合わせることで、オリジンへのリクエスト数を大幅に削減できます。
通常: Edge①→Origin
Edge②→Origin ← オリジンに3回アクセス
Edge③→Origin
シールド: Edge①→Shield→Origin
Edge②→Shield ← オリジンへは1回だけ
Edge③→Shield
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 7234 | HTTP/1.1 キャッシュ制御の仕様。Cache-Controlヘッダーによるオリジンとエッジのキャッシュ動作を定義 |
| RFC 9111 | HTTP キャッシュの最新仕様(RFC 7234の更新版)。オリジンがレスポンスにキャッシュ可否を指示する方法を規定 |
| RFC 7231 | HTTPセマンティクス全般。オリジンサーバーのレスポンスコード・ヘッダーの基本仕様 |
関連用語
- CDN(コンテンツデリバリーネットワーク) — コンテンツを世界中のエッジサーバーからユーザーに届けるネットワーク
- エッジサーバー — ユーザーの近くに配置されたCDNのキャッシュサーバー
- キャッシュ — データを一時保存して再利用する仕組み。CDNの中心的な機能
- リバースプロキシ — クライアントとオリジンの間に立ち、リクエストを中継するサーバー
- Cache-Control — オリジンサーバーがキャッシュの有効期限などを指示するHTTPヘッダー
- ロードバランサー — オリジンサーバーへのリクエストを複数台に振り分け負荷を分散する装置
- エッジコンピューティング — オリジンではなくエッジで処理を実行する分散コンピューティングの考え方
- TTL(Time to Live) — キャッシュやDNSレコードの有効期限。オリジンへの問い合わせ頻度に直結する