スマホやパソコンの普及と同時にインターネットを利用する人も当たり前のように増えました。
インターネットでいろいろ情報を検索できるようになったのは確かに便利ですが、いろいろ難しい専門用語が多くて仕組みについては詳しく把握しづらい面があります。
中でも今回ご紹介するサーバーというのはインターネットにおいて重要な仕組みの一つです。
僕自身も大学でインターネットの仕組みについて詳しく学習するまでサーバーがどうのこうのとか、詳しい意味や仕組みをよく理解していませんでした。
しかしインターネットを利用する上で、サーバーについての知識はあるに越したことはないです。
ソシャゲでもサーバーが落ちたとか重くなった、などと使われるようですが何となくという意味で理解していると自分がどう対処すればいいかがわからなくなり、ちょっと不便になります。
今回は改めてサーバーの意味や仕組みについてわかりやすく簡潔に解説していきます。ぜひご覧ください!
サーバーとは一体何か?
改めてサーバーとは一体何でしょうか?
サーバーの正式な意味を解説しますと、サービスを受けるコンピュータ側から提供された要求に対して情報や処理結果を提供するコンピュータのこととなります。
今でこそインターネット関連の用語として定着していますが、元を辿れば英語でserverと書き「サービスを提供する物(人)」という意味です。
例えばビアホールに置いてあるビールを汲みだす機械なんかも「ビールを提供する物」になるので、ビールサーバーという呼び方をしますね。
ざっくり言うとこんな感じですが、この場合のサービスを受けるコンピュータ側というのは一般ユーザのこと、即ち普段パソコンでネット閲覧やゲームをプレイする我々だということになります。
ただし厳密に言うとここにWebブラウザというクライアントがあって、この両者がネットワークで繋がっているクライアントサーバシステムというのが一般的にはサーバーの意味として認識されています。
クライアントサーバモデルというまたも難しい用語が出てきましたね、一体どういうことなのか?
クライアントサーバモデルの仕組み
このモデルを簡単に表現しますと以下のような流れになります。
- クライアントがサーバに対してリクエストを投じる
- サーバ側でリクエストの内容を解析して必要なデータを取得する
- サーバがクライアントに対してレスポンスを返す
難しい片仮名用語がたくさん出てきたので以下のようにまとめておきます。
- クライアント:サービスを受ける側のコンピューター端末のこと
- リクエスト:要求すること
- レスポンス:応答すること
ただこの説明でもよくわかり辛いですね、次からはもっと具体的に砕けた感じで解説していきます。
クライアントサーバシステムとはファミリーレストラン!
皆さんもファミリーレストランに行って料理を注文したことはあると思います。
お店に入るとウェイターが席まで案内して、「ご注文が決まりましたらお呼び下さい。」と言って、メニューを見た後でお目当ての料理をウェイターに頼みます。
するとウェイターが厨房に対して頼まれた料理を大声で伝えます。
しばらくすると、ウェイターが頼まれた料理を自分の席まで運んでくれます。
これがファミレスでの一般的な流れですね。
もうお気づきかもしれませんが、この流れはWebブラウザで情報を検索する流れに似ています。
まずWebブラウザを開こうとする動作が、ファミレスに入って席に座る所に該当します。
そしてWebブラウザの検索窓にURLやキーワードを入力するのが、ウェイターに対して注文をする行為に該当します。ウェイターはこの場合Webブラウザですね。
Webブラウザがサーバーに対して検索されたキーワードの情報を伝える動作は我々の目には見えませんが、ウェイターが厨房に対して注文を伝える行為に該当します。
最後に我々が使うWebブラウザ、画面上に検索結果がずらずらと表示されますが、これはウェイターが頼まれた料理を我々のテーブルまで運んでくれる行為に該当します。
ファミレスで例えるとこんな感じです、一連の動作はまさにクライアントサーバシステムで、クライアントというのがWebブラウザ、すなわちウェイターで、サーバーというのが厨房で働く料理人になります。
- Webブラウザとはインターネット閲覧用のソフトのことで、Google Chrome、Microsoft Edge、Internet Explorer、Firefox、Safariなどがあります。
- Webページの情報をWebブラウザに送信するサーバコンピュータのことを特にWebサーバーと呼びます。一般的にサーバーと言えば、このWebサーバーだと思ってもらえればよいです。
料理を注文して作って運ぶ、これら一連の動作がクライアントとサーバーに分散されているのでクライアントサーバシステムは分散型システムの一種だとされています。
これなら1台のコンピューターが故障しても、他のコンピューターが代わりに処理してくれるので、システム全体に悪影響が及ばないようになっています。
サーバーやネットワーク障害で利用できないトラブルも!
インターネットやソシャゲをプレイしていると、閲覧するページの読み込みが極端に遅いと感じたり、最悪全く通信ができないといった状態になることがあります。
家のネットワーク回線は正常なのになぜこういった現象が起きるのでしょうか?
これも先ほどのファミリーレストランの例で考えるとよくわかります。
お客の数が増えると作る料理の量がとんでもなく増えます。すると単純に待ち時間が増えるのと同じことです、料理人の数にも限りがありますからね。
またファミリーレストランには席の数も限りがあるので、一定数以上の人数は受け入れられません。
これと同じことがWebシステムでも起きているのです。要は一度に多くの人がクライアントを介してデータを送信すると、単純にサーバ側で処理しきれなくなるので時間がかかってしまうということになります。
サーバーダウンが起きるのはこういった背景があるからです。
現在のWebサーバは負荷分散を行っているのが普通ですが、それでもリアルタイムで一度に百万以上のアクセスが来たりすると処理しきれません。
これを利用したのがDDoSというサイバー攻撃です。
標的のコンピュータに対して複数のマシンから大量の処理を与えてサービスを機能停止にする攻撃のことで、過去には2チャンネルやニコニコ動画、米国 Yahoo!も被害を受けたことがあります。
ソーシャルゲームのサーバーはそのゲームを運営する会社のサーバー上でデータが保管されていますが、やはり一度に大量のアクセスがあるとゲームのプレイが出来なくなったりします。
特にサービス開始初期のゲームには多いですね。
ソシャゲの鯖落ちはなぜ起きる? 運営側のサーバー能力に関係が!
またMMORPG形式のソシャゲではサーバーをクライアント側で選べますが、混雑するサーバーがあるとそれだけで通信が遅く感じるので注意が必要です。
まとめ
今回はサーバーの意味と仕組みについての解説でした、改めて最後にまとめをさせていただきます。
- サーバーとはサービスを提供するコンピュータのことで、一般的にクライアントサーバモデルとのこと
- WebサーバーはWebブラウザと呼ばれるクライアントとの間でデータのやり取りをしている
- 短時間で想定以上の負荷がかかると、一部機能が停止したり機能がうまく働かなくなってサーバーがダウンすることもある
本当はもっと難しい専門用語なども混ぜながら解説しようと考えたのですが、ややこしくなりますので今回は簡単な解説にとどめました。
今後はスマホやタブレットなどが普及すると、Webサーバーを構築したり整備できるようなシステムエンジニアがますます必要とされます。
今からでも遅くないので、ネットワーク関係の知識を勉強しておくことに越したことはないですよ!
ありがとうございました。
概念的にわかって居るつもりでしたが大体理解できました。
コメントありがとうございます。
こちらこそお役に立てれて何よりです、今後とも当ブログをよろしくお願いします!