AWS構成図
今回AWS構成図というものを作ってみました。
ポートフォリオをデプロイしてみたものの、正直何をやってるのか・・・・
「私は今一体何を立ち上げているのか・・・」状態だったので、
基本を勉強しつつ、以下の表が何なのかわかるように、
まとめていきたいと思います。
サーバー周りはとても難しく感じます。
まずは基礎知識の確認
サーバーについて
サーバーって何? → サービスを提供するコンピュータのことWEBアプリケーションで必要になるサーバーは?
→
WEBサーバー、APサーバー、DBサーバー
WEBサーバーって何?
→
WEBクライアントのリクエストを受け取り、静的コンテンツを配信したり、
動的処理が必要なものであれば、APサーバーに処理を依頼し、
動的→静的になったものをWEBクライアントに渡す。
APサーバーって何?
→
アプリケーションサーバーのことで、WEBサーバーから送られてきたデータを
プログラムを実行したのちに、WEBサーバーに返す。
DBサーバーって何?
→
APサーバーが処理に必要なデータを持っている。
APサーバーのリクエストに対し、該当のデータを渡す。
上記の3つサーバーの連なりが、
「Websプリケーションの三層構造」と言われるやつです。
ここまでは、なんとか理解できました。
サーバーの中身というか成り立ち
下記のような4層構造になっています。
[アプリケーション]
[ミドルウェア]
[ OS ]
[ハードウェア]
「OS」とは、オペレーティングシステムです!
OSというとよくわかりませんが、オペレーティングシステムというと理解しやすいです。
WindowsかLinuxのどちらかになりますが
Linuxの使用が多いのではないかと思います。
[ミドルウェア]OSとアプリケーションの中間に位置するプログラムを、
ミドルウェアと言います。
WEBサーバーやAPサーバー、DBMSなどがこれにあたります。
WEBサーバー達は以下のように位置するということですね・・・
今回選定したミドルウェアは、
WEBサーバーが、nginx(エンジンエックス)で、
APサーバーはPUMA
DBサーバーは、MYSQLです。
うーーん。難しい。
表にそって処理を見ていく...
いよいよ一番上の表です。
まずユーザーがやるのは「HTTPリクエスト」です。
このページ見せて!というリクエストです。
さて、これを受け取るのは誰かというと・・・
WEBサーバーです!
そして今回選定されてるWEBサーバーはNGINXなので、 NGINXに対してリクエストが送信されます。 しかしながら、NGINX静的処理しかできません・・・。なので動的処理が来た場合に呼ぶのは、
APサーバーです!
NGINX「PUMAさん!動的処理できないのでヘルプお願いします!!!」 →このNGINXの働きをリバースプロキシというそうです。そしてPUMAはrailsにリクエストの内容を伝え処理をしてもらいます。
(※PUMAとrailsの間には、Rackという通訳みたいな仕組みが存在しているそうです。)
適宜アクセスするのが、
データベースサーバーです!
処理が終わったらrailsはPUMAへ動的→静的にしたコンテンツを
返却します。
さらにPUMAは静的ファイルをNIGNXし、NGINXはレスポンスを返し、
表示されると。
終わりに
正直、理解がまだまだな部分です。 色々と閲覧し、自分が理解できる範囲でまとめてみました。参考にしたところ
youtubeの動画が開きますのでご注意ください。