今回は、WEBディレクション業務の中で、度々知識を求められる【サーバ】について、説明します。
これからWEB業界を目指す方も、WEB業界に入ったばかりの方も必須の知識なので、是非ご覧ください。
サーバーとは?
まずは、サーバーとは何かについて簡単に説明します。
Server = 情報を提供する側
Client = 普段の私たち。情報をもらう側
皆さんが普段から閲覧している、ウェブサイトやアプリケーションをインターネット経由で多数の人に提供するためのコンピューターです。
サーバーといっても、要はコンピューターのことなので、ご自身のデスクトップ、ノートパソコンでもサーバーになり得ます。
ただ、私達が普段使うようなコンピューター(パソコン)は、様々な機能が盛り込まれているため、サーバーとしての役割を担うには非効率。
なので、サーバー機能に特化したコンピューターを使うことで不特定多数の方に、WEBサービスをお届けできます。(個人のパソコンレベルでも、ローカルサーバーを立てることはできます。)
サーバーの種類
サーバーには複数の種類があります。
こちらは、WEBディレクタション業務で議題に上がる3つのサーバーについて説明します。
WEBサーバー
WEBサーバーには、皆さんが普段から目にするインターネットで表示されているコンテンツの情報が入っています。
具体的には、HTMLやCSS、Jvavascriptのデータです。コンテンツを表示するためのデータを格納しておき、コンテンツを閲覧したいというリクエスト(アクセス)に対し、レスポンスを返すことで、皆さんのパソコンの画面にコンテンツが表示されます。
- リクエスト = コンテンツを閲覧したいという要求。URLへのアクセス。
- レスポンス = リクエストに対してデータ(HTMLなど)を返すこと。
WEBサーバの代表的なものには、Apache(正式名称: Apache HTTP Server)があります。
XAMPPをダウンロードすると、簡単に自分のPCをサーバ化できる
XAMPPというアプリケーションをダウンロードすると、Apache、MySQLなどがPCに揃うので、サーバとしての役割を担うことができます。
XAMPPにWordpressをインストールして、検証環境を用意したりできます。
DBサーバー
DB(データベース)サーバーは、その名の通りデータベース専用のサーバーです。
DBとは、データの保管庫と理解しておけば問題ありません。
皆さんも色々なサービスを使われると思いますが、その中でも会員機能ってありますよね。
サービスを利用するために、自分の個人情報をWEB上で入力して送信!
すると、会員ページにログインができて、サービスを受けられますね。
では、その個人情報ってどこにいったんでしょうか?
その答えが、DBサーバーになります。
あなたがWEBディレクターだとして、お客様に「サーバーがパソコンみたいなものなら、WEBサーバーもDBサーバーも一緒でいいんじゃないの?」と言われたらどうしましょうか。
答えはYESです。が…
実際、同じサーバー内にWEBサーバとDBサーバが同居することは可能です。しかし、問題点があります。
1つ目の問題は、セキュリティ
WEBサーバーはクライアントが参照することができます(参照することでコンテンツを見ていますから)。
そこに、DBサーバーがあったらどうでしょうか。
個人情報のような大切なデータが、不特定多数が見れるコンテンツと同じ場所にあったら、怖いですね。
WEBサーバは公開される特性上、サイバー攻撃の対象になります。WEBサーバ経由でDBサーバに不正にアクセスされる可能性も否定できません。
そのため、通常はWEBサーバーとDBサーバーは分けて、DBはブラウザから参照できない仕様に設計します。
2つ目の問題は、負荷です。
一つのコンピューターにWEBサーバーとDBサーバーを同居させるより、それぞれ別のコンピューターで機能を持たせた方がコンピューターの負荷が減ります。
サーバーを2台用意して、1つはWEBサーバー専用、もう1つはDBサーバ専用というのが一般的です。
アクセスの多いサイトであれば、WEBサーバを複数用意することもあります。
複数のWEBサーバがあるとき、ユーザーはどのサーバでコンテンツを閲覧するのかという話になりますが、負荷分散(ロードバランサー)という機能があるので、それぞれサーバの負荷に応じて、ユーザーがアクセスするサーバーを自動で切り替えることができます。
DNSサーバー
DNSの役割
- ドメイン名 → IPアドレス変換:
人間が覚えやすいドメイン名(例:example.com
)を、コンピュータが理解できるIPアドレス(例:192.0.2.1
)に変換します。 - IPアドレス → ドメイン名変換(逆引き):
IPアドレスから対応するドメイン名を調べることもできます(逆引きDNS)。
なぜDNSが必要なのか?
インターネット上のデータ送信はIPアドレスを使って行われますが、覚えやすいドメイン名を使った方が利便性が高いため、DNSがドメインとIPアドレスを橋渡ししています。
DNSの仕組み
- ユーザーのリクエスト:
ブラウザでwww.example.com
にアクセスすると、デバイスはDNSサーバーにIPアドレスを問い合わせます。 - DNSクエリの流れ:
- ローカルDNSキャッシュ:
まず、デバイスやルーター内のキャッシュが参照されます。 - リゾルバ(DNSリゾルバ):
ISPが提供するリゾルバ(再帰的DNSサーバー)に問い合わせます。 - ルートDNSサーバー:
.
(ルート)を管理するサーバーが、TLD(Top-Level Domain、例:.com
)のサーバー情報を返します。 - TLDサーバー:
com
サーバーが、ドメイン名(example.com
)を管理するサーバーの情報を返します。 - 権威DNSサーバー:
最終的に、ドメインの実際のIPアドレスを返します。
- ローカルDNSキャッシュ:
- IPアドレス取得:
デバイスは取得したIPアドレスを使い、目的のサーバーに接続します。
主なDNSサーバーの種類
- リゾルバ(再帰的DNSサーバー):
ユーザーのリクエストを処理し、IPアドレスを見つけるまで他のDNSサーバーを巡回します。 - 権威DNSサーバー:
特定のドメインに関する情報を持つサーバー。ドメインのIPアドレスを公式に回答します。 - ルートDNSサーバー:
インターネット全体で13個存在し、DNSクエリの最初の窓口となります。 - キャッシュDNSサーバー:
よく参照されるドメインのIPアドレスを一時保存し、クエリの速度を向上させます。
代表的なパブリックDNSサーバー
- Google DNS:
8.8.8.8
、8.8.4.4
- Cloudflare DNS:
1.1.1.1
、1.0.0.1
- OpenDNS:
208.67.222.222
、208.67.220.220
DNS関連の用語
MXレコード: メールサーバーの情報。
ゾーンファイル: ドメインに関する設定情報が含まれたファイル(例: Aレコード、CNAME、MXレコード)。
レコードタイプ:
Aレコード: ドメイン名とIPv4アドレスの関連付け。
AAAAレコード: ドメイン名とIPv6アドレスの関連付け。
CNAMEレコード: 別名(エイリアス)を設定するためのレコード。
まとめ
WEBサーバはウェブページのデータを提供する役割を持ち、ユーザーがブラウザでアクセスする情報を送信します。
DBサーバはデータベースを管理し、ウェブサイトやアプリのデータ(例: ユーザー情報、商品リストなど)を保存・提供します。
DNS(ドメインネームシステム)は、わかりやすいドメイン名(例: example.com)をIPアドレスに変換する仕組みで、インターネット上でデータを正しい場所に届ける役割を果たします。この3つが連携して、ウェブサービスがスムーズに動作します。