画面(フロント)が API を呼び、サーバーが DB を読み書きして返す。インフラはそれを動かす土台。
「項目を1つ足すだけなのに、なぜ2週間かかるのか」「文言を直すだけなのに、アプリはなぜすぐに変わらないのか」。エンジニアとの会話で出てくるこうした疑問の多くは、サービスがどんな部品でできていて、変更がどの部品に入るかを知ると分かるようになります。
見積もりや障害の連絡を受けたときも、どの部品の話をしているかが分かると、判断が早くなります。
Web サービスは、おおむね次の部品でできています。ユーザーが画面を操作すると、画面(フロントエンド)が API(サーバーの窓口)を呼び、サーバーが DB(データベース)を読み書きして結果を返します。インフラは、これらを動かすサーバー・ネットワーク・クラウドの土台です。
| 部品 | 役割 | PdM が気にすること |
|---|---|---|
| 画面(Web・アプリ) | 表示と操作。ブラウザやスマホの中で動く | アプリは審査があり、古い版が残る |
| CDN | 画像やページの写しを利用者の近くに置く | 更新の反映に時間差が出る |
| ロードバランサー | リクエストを複数のサーバーに振り分ける | アクセス集中に耐えられるか |
| アプリサーバー(API) | ビジネスのルールを実行する | 仕様変更の多くはここに入る |
| DB | データを保存する | 項目の追加・移行は時間がかかる。個人情報の置き場所 |
| キャッシュ(Redis など) | よく使う結果を一時的に置き、速くする | 古いデータが見えることがある |
| キュー・ワーカー | メール送信など時間のかかる処理を後で行う | 「すぐには終わらない」処理がある |
| 外部サービス | 決済・地図・メール・AI など | 止まったときの体験、料金、契約 |
構成図の読み方:箱は部品、矢印はリクエストの向きです。まず「ユーザーの1つの操作が、どの箱をどの順に通るか」を指でたどります。1本の矢印しかつながっていない箱は、そこが止まると全体が止まる場所(単一障害点)かもしれません。
SRE の「典型的な Web サービスの構成と各層の冗長化」
下の「ブラウザで試す」の図は、ブラウザに URL を入れてからページが表示されるまでを、通信の順番どおりに追うものです。DNS で名前を IP アドレスに変え、ロードバランサーと接続し、アプリサーバーが DB に問い合わせて HTML を返し、最後に CSS や画像を CDN から取ります。途中の TCP・TLS の手順は細かく読まなくてかまいません。上の表の部品(CDN・ロードバランサー・アプリサーバー・DB)が、1つの操作でどの順に出てくるかに注目してください。
面接ではこう答える
Web サービスは、画面が API を呼び、サーバーがビジネスのルールを実行して DB を読み書きし、結果を返す形で動いています。その手前には CDN やロードバランサーがあり、時間のかかる処理はキューとワーカーで後回しにし、決済や地図などは外部サービスに任せます。PdM としては、ユーザーの1つの操作がどの部品を通るかを知っておくと、仕様変更や障害のときに影響の範囲をすぐ考えられます。
PdMとの関わり仕様変更の影響範囲の見当、障害時に「どこが止まると何ができないか」の判断に使います。
ネットワーク図を読み込んでいます…