WEBサーバの三段階構造について
前回はLAMP環境のお話したので、
今回はWEBサーバについて。
正直、実際にLAMP環境を作ってください!と言われても
どのような構成で作るのかは、色々と選択肢がある。
そういえば、そもそもWEBサーバって何やねん?
それさえあればインターネットで何でもできるの?
という人用にブログ書いてます。
古参はスルーしてください。
間違ってたらご指摘いただけると嬉しい。
基本的に、WEBサーバは三階層構造で作られている
・WEBサーバ(Apache,Linuxが入ってる)
・APサーバ(PHPとLinuxが入ってる)
・DBサーバ(MySQLとLinuxが入ってる)
LAMPについては前回の記事を参照。
なんでひとつにまとめられないの?
まじ意味わかんないし、ITって面倒くさいわ。
っていう人は下記参照
今回は下2つのお話。
①webサーバ→インターネットの受付場所
apacheやNginxなど
例)
暇だな…暇つぶしに2ちゃんねるでもネットサーフィンするか。
といって、アクセスするドア
これがないとサイトの存在を知っているが、つなぐことができない
Apacheについては前回の図書館のドアを参照
②APサーバ→ぽちぽちタップすると色々とページだしてくれる行動の場所
JavaやPHPで実際に作ったアプリが動く場所だと思ってください。
③DBサーバ→資料の保管庫
MySQL,PostgreSQLなどのデータベースが実際に動く場所
インフラエンジニアのよく言う『自己研鑽』は上記サーバを立てたりしていること。
サーバの実機を購入したりクラウドサーバ使って、自分で組み立て、物理的設計、論理的設計したり。
中にLinux入れる??WEBアプリ入れる?データ出し入れするからデータベースも作る?
みたいな。
OSはデバイスとユーザーを仲介しているのみのもの。
上記の環境構築は、それぞれ3つのパソコンに分けてサーバを立てても良いし、
1つのパソコンに全部入れても良い。
<お金がない場合:主に個人>
一つのMacbook(物理サーバ)の中に、LinuxOSをインストール。
このOSの上にWEBサーバー、APサーバ、DBサーバ全部インストールし
もともとのMacbookの容量を使ってアプリを動かしている
メリット:コストもかからず、管理も楽チン。
デメリット:容量大きいパソコン使わないと、すぐにメモリいっぱいになっちゃう。
<お金がある場合:主に会社>
それぞれの物理サーバを立てているため、3つの種類のサーバが出来上がっている
※超売れっ子のパズドラやモンストのサーバは1,000台単位である。
一台のサーバに裁く容量決まってるのでたくさん必要なのね。
ではなぜWEBサーバー、APサーバー、DBサーバーと分けた方がいいの?
メリット:
①通信スピードの速さを守る。
DBサーバの負荷がかかりすぎると、道連れみんな動きが遅くなるけど、
分かれていたら負荷の道連れがなくなる
②物理サーバーが壊れた時に他サーバを守る。
例えばMacbookちゃん1台でサーバ立ててた時に、いきなりお亡くなりになったらみんな壊れてしまうが
分かれていたら、ほかのサーバーは生きのこれる。
壊れたものだけ立て直せばOK
デメリット:金かかる
じゃあクラウドサーバは?
例えばAWSなら有事のときにも備え複数のサーバに同じデータを保存してるので
壊れてもデータがなくなる危険性が非常に低い。
(100%ではないが、それにできるだけ近しい)
って感じ。