Webサーバーとデータベースサーバーの違いとは?図解と身近な例でスッキリ理解
Webサイトの仕組みを調べたり、自分でブログを立ち上げようとしたりすると、必ずと言っていいほど「Webサーバー」と「データベースサーバー」という2つの言葉が登場します。
どちらも「サーバー」という名前がついているため、ITに慣れていないうちは同じもののように感じてしまうかもしれません。しかし、この2つは全く異なる役割を持っており、お互いに協力し合うことで私たちが普段見ているWebサイトを画面に映し出しています。
専門用語をなるべく使わず、直感的にイメージできるよう整理していきましょう。
レストランで例える、2つのサーバーの役割
前回、サーバー全体を「レストラン」に例えましたが、今回はそのレストランの中で働く「スタッフの役割分担」に注目してみます。
Webサーバーとデータベースサーバーは、それぞれ以下のような役割を担っています。
- Webサーバー = ホールスタッフ(接客係)お客さん(ユーザー)から「このページを見せて」という注文を受け取り、完成した料理(Webページ)をテーブルまで運ぶ役割です。
- データベースサーバー = 冷蔵庫・大きな食材庫料理を作るための食材(文章データ、会員情報、パスワード、商品データなど)を、きれいに整理して保管しておく巨大な倉庫の役割です。
もしデータベースサーバー(食材庫)がなければ、Webサーバー(接客係)は毎回同じ決まった料理(文字だけのシンプルなページなど)しか提供できません。たくさんの情報の中から、お客さんの好みに合わせた料理を瞬時に出すためには、この2つの連携が欠かせないのです。
Webサイトが表示されるまでの連携プレー
では、あなたがスマートフォンで「あるショッピングサイトで『スニーカー』を検索した時」を例に、2つのサーバーがどうやって連携しているのかを見てみましょう。
- ユーザーの注文(検索)あなたがスマホで「スニーカー」と検索ボタンを押します。
- Webサーバーの受付Webサーバーが「スニーカーのページですね、かしこまりました!」と注文を受け取ります。
- データベースへの問い合わせWebサーバーからデータベースサーバーへ「倉庫の中から、スニーカーの画像、価格、在庫状況のデータを探してきて!」と指示を出します。
- データベースのデータ抽出データベースサーバーが膨大なデータの中からスニーカーの情報だけを瞬時に見つけ出し、Webサーバーに渡します。
- Webページとして表示Webサーバーが受け取ったデータを綺麗なデザイン(HTMLやCSS)に盛り付けて、あなたのスマホ画面に表示させます。
このように、「注文の受付とデザインの表示」を担当するのがWebサーバー、「裏側で情報の整理と検索」を担当するのがデータベースサーバーという分業体制になっています。
Webサーバーとデータベースサーバーの違いまとめ
ここまでの内容を、わかりやすく表にまとめてみました。
| 項目 | Webサーバー | データベースサーバー (DBサーバー) |
| 主な役割 | ユーザーからの要求を受け取り、画面を表示する | 大量のデータを安全に保管し、必要な時に素早く取り出す |
| 扱うもの | HTML、CSS、画像ファイルなど(見た目に関するもの) | 顧客情報、ブログのテキスト、パスワード、商品の在庫数など |
| レストランの例え | 接客係(ホールスタッフ) | 食材庫(または食材を管理する人) |
| 代表的なソフト | Apache(アパッチ)、Nginx(エンジンエックス) | MySQL、PostgreSQL、Oracle Databaseなど |
初心者がつまずきやすい「よくある疑問とエラー」
1つのパソコン(機械)の中に両方入れることはできる?
はい、可能です。実は個人のブログや小規模なサイトで使われる一般的な「レンタルサーバー」では、1つの物理的な機械の中に、Webサーバーの機能とデータベースサーバーの機能が同居していることがほとんどです。
アクセス数が非常に多い大規模なサービス(XやAmazonなど)になると、処理を追いつかせるために、機械ごと完全に分けて構築するようになります。
「データベース接続確立エラー」って何?
WordPressでブログを運営していると、突然画面が真っ白になり「データベース接続確立エラー(Error establishing a database connection)」という文字だけが表示されることがあります。
これは、Webサーバー(接客係)が、データベースサーバー(食材庫)の鍵を開けられず、食材を取り出せなくなった状態です。多くの場合、パスワードの設定間違いや、アクセスが多すぎてデータベース側がパンクしてしまった時に起こります。
まとめ:2つセットで1つのサイトが動いている
複雑に見えるシステムも、分解してみれば役割分担をしているだけです。
- 表舞台で接客し、綺麗にページを見せる「Webサーバー」
- 裏方で膨大なデータを管理し、整理整頓する「データベースサーバー」
WordPressで自分のサイトを作る時にも、必ず「MySQL(データベースの種類)」を設定する場面が出てきます。その時に「あ、これは裏方の食材庫を用意しているんだな」と思い出していただければ、設定作業もグッとわかりやすくなるはずです。
Q. 画像や動画はどちらのサーバーに保存されるの?
A. 基本的には「Webサーバー」側に画像ファイルそのものを保存することが多いです。データベースサーバーには「その画像がどこに保存されているかという道案内(URLのテキストデータ)」だけを記録しておくのが一般的です。データベースは文字や数字の管理を得意としています。
Q. WebサーバーだけでWebサイトを作ることはできますか?
A. はい、可能です。HTMLやCSSだけで書かれた、誰が見ても同じ内容が表示されるシンプルなホームページ(静的サイト)であれば、データベースサーバーは必要ありません。
Q. DBってなんの略ですか?
A. データベース(Database)の略称です。ITの現場ではデータベースサーバーのことを単に「DB(デービー)」や「DBサーバー」と呼ぶことがよくあります。
