ボタンを押してから、画面が返ってくるまで

初級の解説は準備中のため、初級の内容を表示しています。

概要 — まず全体をつかむ

検索ボタンを押すと、一瞬で結果が返ってくる。あの数百ミリ秒のあいだに、裏では何台もの機械がバケツリレーをしています。まず全体を1枚の地図で見て、次に順番に追いかけましょう。

この記事は「サービス全体の構成の旅」です。そもそもURL入力から画面表示までの通信経路の詳細は URLを打ってから表示されるまで で見られます。

詳細 — 1段階ずつ追う

まず全体を1枚で

アニメーション『1リクエストの流れ(全体図)』を開く
ネットワーク(すべてを載せて・つなぐ土台)🔒 セキュリティオリジン(自分のサーバ群)を守るエッジ=利用者の近く無ければオリジンへ端末(ブラウザ)=フロントCDNエッジ世界中に分散・近い入口(LB/WAF)振り分け・門番フロントサーバ画面配信・SSRバックエンドサーバAPI・処理DBサーバ構造データキャッシュRedis等・高速ストレージサーバ画像・ファイル各ノードをクリックすると、その解説へ移動します

左のあなた(ブラウザ)から出たお願いが、右のデータまで往復して戻ってくる——これが1リクエストの流れです。各マスをクリックすると、その機械の解説へ飛べます(このあと1つずつ作っていきます)。

ポイントは2つの「囲い」:

  • ネットワーク=これらの機械をつなぐ土台。図の線はぜんぶネットワーク。
  • セキュリティ=あなたの手元(端末)以外を、まとめて守る囲い。

リクエストの旅(順番に追う)

  1. あなた(ブラウザ ※1)が「このページください」とお願いを出す
  2. 画像や見た目の部品は、まず近くの CDN(※2) が持っていれば即返す(往復が短くて速い)
  3. データが要るお願いは、入口(※3) が受け取り、空いているサーバへ振り分ける(同時に、あやしいお願いは門番が弾く)
  4. フロントサーバ(※4) が画面の器を用意し、中身を バックエンド(※5) に頼む
  5. バックエンドが「何を返すか」を考え、必要なデータを DBサーバ(※6) に取りに行く
  6. よく使うデータは キャッシュ(※7) にあれば、DBまで行かずに即返す(近道)
  7. 画像・動画など大きな塊は ストレージサーバ(※8) から出す
  8. 集めたデータでバックが答えを組み立て、フロント経由であなたに返る → 画面が表示される

登場人物メモ(※の説明):

  • ※1 ブラウザ — あなたの手元の画面。お願いを出し、返ってきたものを表示する。この図では「フロント(前面)」の役
  • ※2 CDN — 世界中に分散した“利用者の近くの倉庫”。変わらないもの(画像・CSS・JS)を配る係。無ければオリジンに取りに行く
  • ※3 入口(ロードバランサ/WAF) — 混雑を捌く受付(振り分け)+あやしいお願いを弾く門番
  • ※4 フロントサーバ — 画面(見た目)を組み立てて返す係
  • ※5 バックエンドサーバ — 「何を返すか」を考える頭脳。判断・計算・データ出し入れの指示
  • ※6 DBサーバ — 表の形に整理されたデータの保管係。探す・並べるが得意
  • ※7 キャッシュ — よく使う答えを手元に置く“メモ”。DBより速い(Redisなど)
  • ※8 ストレージサーバ — 画像・動画・ファイルなど大きな塊の倉庫

速くする・強くするための工夫

基本は「ブラウザ→入口→フロント→バック→DB」の一本道。そこに、快適さのための脇役が足されます。

  • CDN — “配信”を速く。近くの倉庫から静的なものを返す
  • キャッシュ — “処理”を速く。よく使う答えを手元に置き、DBまで行かない
  • 入口(ロードバランサ) — 混雑に強く。同時に来たお願いを複数のサーバへ振り分ける

CDNとキャッシュは名前が似ていますが、CDN=配信の近道/キャッシュ=処理の近道、と向きが違います。

⚠️ うまくいかないとき

  • 混雑 — アクセスが集中。入口が複数サーバに分散するが、それでも溢れると「503(混んでいます)」
  • 見つからない — そのページが無い →「404」
  • 裏で失敗 — サーバの処理でエラー →「500」
  • 遅い — 毎回DBまで行くと遅い → キャッシュ・CDNで近道を作る

どれも「どの機械で起きたか」を知っていると、原因の見当がつくようになります。

理解度チェック

そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。

1. 画像やCSSなど「変わらないもの」を、利用者の近くから速く配る係はどれ?

2. CDN と(アプリの)キャッシュの違いとして正しいのは?

3. 「何を返すか」を考える頭脳として、判断・計算・データ出し入れの指示を担うのはどれ?

4. 同時に来たお願いを空いているサーバへ振り分け、あやしいお願いを弾く「入口」の役はどれ?

5. 表の形に整理されたデータを保管し、探す・並べるのが得意な係はどれ?

6. アクセスが集中し、入口が振り分けても捌ききれず溢れたときに返りやすいのはどれ?

7. よく使う答えを手元に置き、DBまで行かずに即返す“処理の近道”の仕組みを何と呼ぶ?

8. 画像・動画・ファイルなど「大きな塊」を保管する倉庫のサーバを何サーバと呼ぶ?