サーバー
Server
サーバーは、クライアントからの要求に応じて機能やデータを提供するプログラム、またはそれを動かす機器です。常時稼働する本番システムだけでなく、手元のPCで動かす開発用Webサーバーも含みます。
🐾 猫で例えると?
ご飯を提供する給餌器をサーバー、受け取るアメショをクライアントに見立てると、役割分担が分かります。ただし、タイマーで一方的にご飯を出す動作は、Webの要求・応答そのものではありません。「猫がボタンで要求し、給餌器が量を確認して返す」と考えると、リクエストとレスポンスに対応します。
💻 IT現場における「サーバー」とは?
ITの現場において「サーバー」という言葉は、大きく2つの意味で使われます。1つ目は「ハードウェアとしてのサーバー(データセンターなどにある強力なコンピュータ機器)」、2つ目は「ソフトウェアとしてのサーバー(WebサーバーソフトやDBサーバーソフトなど)」です。
私たちが普段スマートフォンで見ているWebサイトやアプリ、SNSのタイムラインなどは、すべて世界のどこかで稼働しているサーバーが、私たちのスマホ(クライアント)からの「このページを見せて」というリクエストに対してデータを返してくれているおかげで成り立っています。
⚠️ サーバーの種類と役割(クライアント・サーバーモデル)
提供するサービスに応じて、サーバーには様々な種類があります。Webページを表示する「Webサーバー」、データを安全に保管・抽出する「データベース(DB)サーバー」、メールの送受信を担う「メールサーバー」などです。近年では、物理的な機械を自社で買わずに、AWSやGoogle Cloudなどの「クラウドサーバー」を利用するのが主流となっています。
リクエストとレスポンスの仕組み
クライアントからサーバーへの要求を「リクエスト」、サーバーからクライアントへの返答を「レスポンス」と呼びます。
HTTP/1.1 200 OK
Content-Type: application/json
{
"item": "カリカリ",
"amountGrams": 20
} HTTP/1.1形式で簡略化した応答例です。200 はHTTP側の状態で、JSON本文の項目ではありません。本文に "status": 200 と書くだけでは、実際のHTTPステータスは変更されない点に注意しましょう。
🛠️ サーバー構築・運用のポイント
システムを安全かつ快適に動かすために、サーバー運用で気を付けるべき重要なポイントは以下の通りです。
- 必要な可用性に合わせる: 1台の停止が許容できないサービスでは、複数台構成や切替を検討します。台数を増やすだけでなく、共有DBやネットワークの障害、復旧手順も確認します。学習用や停止を許容する用途なら、単純な構成が適することもあります。
- セキュリティ対策を万全に: サーバーは常にインターネット等のネットワークと繋がっているため、サイバー攻撃の標的になりやすいです。不要な通信経路(ポート)は閉じる、ファイアウォールを設置するなどの防御が重要です。
- リソース(CPU/メモリ)の監視: アクセスが急増すると、サーバーが処理しきれずにダウン(サーバー落ち)することがあります。常に稼働状況を監視し、必要に応じてスペックを上げる(スケールアップ)対応が求められます。
猫の要求に応えるカリカリマシーンのように、サーバーは要求を受けて処理を返します。電源が入っているだけでサービスが使えるとは限らないため、アプリの応答、処理のログ、資源の使用量を分けて確認することが運用の基本です。