概要
サーバーとはクライアントの要求に対してさまざまな機能を提供する、ネットワークに繋がったコンピューターのことです。サーバーがクライアントとやり取りするには、ネットワークで繋がっている必要があります。
サーバーには、Webサーバー、アプリケーションサーバー、データベースサーバーといった役割があります。この3つで構成されているWebアプリケーションの構成をWeb3層構成と呼びます。
各サーバーには、役割に応じたサーバーソフトウェアがインストールされています。WebサーバーのサーバーソフトウェアにはApacheやNginxなどがあります。同様に、アプリケーションサーバーにはPumaやTomcat、データベースサーバーにはMySQLやPostgreSQLなどがあります。開発環境では、1台のコンピューターに3つのサーバーソフトウェアをインストールする場合もありますが、本番環境ではそれぞれ別のコンピューターを用意するのが一般的です。
ユーザーがWebアプリケーションにアクセスしたとき、サーバーではどのような処理が行われているか見てみましょう。
まずは、トップページのような静的なページについてです。この場合はWebサーバーがリクエストを受け取り、用意されたHTMLファイルをレスポンスします。
次に、ログイン後のユーザー情報のように、ユーザー毎に表示内容が変わる動的なページについてです。この場合は、Webサーバーを経由してアプリケーションサーバーへリクエストが届きます。アプリケーションサーバーは必要に応じてデータベースサーバーからデータを取得して計算を行い、その結果をWebサーバー経由でレスポンスします。
学ぶ目的
Webアプリケーションの公開のために必要となるサーバーの役割やスペック、調達方法を決められるようになりましょう。
WebアプリケーションはWeb3層構成の上で運用する形が一般的ですが、システムの規模や目的によってはメールサーバーやプロキシサーバーなども組み合わせる必要があります。必要なサーバーソフトウェアをどのコンピュータにインストールするかは、システム全体の仕様と設計に従って行います。
各サーバーのスペックや台数を決めるためには、想定されるユーザー数や必要となる処理能力を試算する必要があります。基本的なスペックの基準となるメモリやCPU、ストレージについても押さえておきましょう。
それぞれのサーバーの役割を良く理解し、アプリケーションの公開に向けて必要なサーバー構成を実現できるようになりましょう。
ここから学ぼう
サーバーの構築や設定をするためには、その仕組みへの理解が必要です。ここでは、実作業の前に仕組みについて学んで、全体像のイメージを掴みましょう。
OSの基本機能について学ぼう
メモリ管理方式について学ぼう
タスク管理方式について学ぼう
データ管理方式について学ぼう
コンピュータハードウェアの構成と動作原理について学ぼう
CPU/MPU/GPU、オペランド、クロックなどプロセッサについて学ぼう
RAM/ROM、キャッシュなどのメモリの種類と特徴について学ぼう
おすすめ教材
新人エンジニアのためのインフラ入門(Think IT Books) - インプレスブックス
インフラを構成する上での基本がわかりやすく説明されています。Web3層構成についても解説されているので、入門として読んでみましょう。
新人エンジニアのためのインフラ入門(Think IT Books) - インプレスブックス
ITインフラ全体を1冊で見渡せる本!
book.impress.co.jp