超要約!エンジニアの話

ITとエンジニア、時々わらい

WEBサーバの三段階構造について

前回はLAMP環境のお話したので、
今回はWEBサーバについて。

正直、実際にLAMP環境を作ってください!と言われても
どのような構成で作るのかは、色々と選択肢がある。

そういえば、そもそもWEBサーバって何やねん?

それさえあればインターネットで何でもできるの?

という人用にブログ書いてます。
古参はスルーしてください。
間違ってたらご指摘いただけると嬉しい。

基本的に、WEBサーバは三階層構造で作られている
・WEBサーバ(Apache,Linuxが入ってる)
・APサーバ(PHPLinuxが入ってる)
・DBサーバ(MySQLLinuxが入ってる)

LAMPについては前回の記事を参照。

なんでひとつにまとめられないの?

まじ意味わかんないし、ITって面倒くさいわ。


っていう人は下記参照
f:id:amandas20160701:20170305140240j:plain
今回は下2つのお話。



①webサーバ→インターネットの受付場所
apacheやNginxなど
例)
暇だな…暇つぶしに2ちゃんねるでもネットサーフィンするか。
といって、アクセスするドア
これがないとサイトの存在を知っているが、つなぐことができない
Apacheについては前回の図書館のドアを参照

②APサーバ→ぽちぽちタップすると色々とページだしてくれる行動の場所
JavaPHPで実際に作ったアプリが動く場所だと思ってください。

③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%ではないが、それにできるだけ近しい)

って感じ。