今回はサーバーの役割について解説して、サーバーサイドの開発のイメージを掴んでいきましょう。
1.前回までのおさらい
まずは、前回までのおさらいをしていきましょう。
WEBブラウザHTTPリクエストに応じてHTTPレスポンスとして受け取ったHTMLをWEBブラウザで表示します。
表示されたHTMLに対してデザイン面を調整することがCSS、イベントに応じて画面の変化させることがJavaScriptの役割であるということを学習しました。
今回は、受け取ったHTTPリクエストに対して、どのようにサーバーが処理してHTTPレスポンスを返すのかを解説していきたいと思います。
2.WEBにおけるサーバーの種類
サーバーにはメールサーバーやNASサーバーなど様々な種類がありますが、今回はWEBにおけるサーバーに絞って解説していきたいと思います。
まずは、WEBサーバーです。WEBサーバーはHTTPリクエストを受け付けて、アクセスするリソースを探してHTTPレスポンスを返します。アクセスするリソースがHTMLやCSS、JavaScriptのみで誰がアクセスしても同じ情報を返すような静的サイトの場合は、それらのファイルの情報を返します。アクセスするリソースが、PHPやRuby、Pythonなどのプログラムファイルである場合は、そのプログラムを処理して、HTTPレスポンスを返します。
次にAPサーバーです。WEBサーバーで受け取ったHTTPリクエストのアクセス先がプログラムファイルであった場合、プログラム処理を行うのが、APサーバーになります。
最後にDBサーバーです。APサーバーで処理したプログラムの中にはデータベースと接続してデータを保存したり、読み込んだりするプログラムが含まれる場合があるかと思います。そのデータベースを搭載しているサーバになります。
WEBサイトを構築する上でWEBサーバーは必須になりますが、APサーバーやDBサーバーはWEBサイトの機能に応じて構築します。
また、それぞれのサーバーの役割を一つ一つのサーバーで担うこともあれば、一つのサーバーで担うこともあります。
3.サーバーにインストールするミドルウェア
サーバーはコンピュータです。
皆さんが使っているパソコンと同じで機械部分であるハードウェアの中にさまざまなソフトウェアをインストールして使用します。
ソフトの中でも、コンピュータがどういう振る舞いをするのかプログラムされたソフトがOSになります。
そのOSの上にそれぞれのアプリケーションを実現するために用途に合わせて必要な汎用的な機能を備えているミドルウェアがあります。
皆さんが使うソフトウェアを総じてアプリケーションと呼びますが、アプリケーションはOS、ミドルウェアの上に実現しています。
Webシステムを実現するためには3つの種類があるかと説明しましたが、それぞれの種類の役割を実現するために、ミドルウェアをコンピュータにインストールする必要があります。
WEBサーバーの機能を実現するためにはHTTP通信を処理するためのミドルウェアをインストールする必要があります。
代表的なものとしては、Apache、NginX、IISがあります。
APサーバーには、プログラム言語が実行できる環境を構築します。
DBサーバーにデータベースの機能を実現するためにはDBMS(Database Management system)と呼ばれるミドルウェアをインストールする必要があります。
代表的なものとしては、MySQLやOracle Database、Postgre SQLなどがあります。
4.オンプレミスとクラウド
先ほども説明しましたようにサーバーはコンピューターです。サーバーを構築するためには最低1台のコンピューターが必要になります。
サーバーのコンピューターを自社やデータセンターなど自分たちでサーバーを管理する方法をオンプレミスと言います。
サーバーとなるコンピューターのOSやミドルウェアインストール、ネットワークの設定など構築作業を全て自分の手でしなければならず、アクセスが集中してきたときに物理的にサーバーの台数を増やす必要があります。
これに対して、近年よく耳にするのがクラウドになります。
クラウドは、クラウド業者が用意している環境にサーバーを構築するサービスになります。
実際にはクラウドのデータセンターにコンピューターがあるのですが、サービスを利用してサーバーを構築する人たちはハードウェアを気にする必要はありません。
また、機能の拡張をするときは利用するクラウドの容量を増やすことを設定することで実現できるので、オンプレミスと比較して楽に行うことができます。
利用料は基本的に使用した分だけとなっているため、経済的にも負担が少なくなります。
代表的なクラウドサービスとしてAmazonが運営しているAWSやGoogleが運営しているGCP、Microsoftが運営するAzureなどがあります。
また、オンプレミスやクラウドとは別にレンタルサーバーというものがあります。
こちらはレンタルサーバー業者がサーバーの一部を貸し出すサービスです。サーバーとなるコンピュータを用意する必要がなくすぐに利用することが可能ですが、サーバーの性能や利用料が決まっているため制約が多いこともあります。
今回はここまでになります。
最後まで閲覧ありがとうございました。