name: overview class: title, smokescreen, shelf, no-footer # インフラ小咄<br>そもそもサーバって何? <div class=footnote> </div> --- class: img-right,compact # そもそもサーバって何ですか? <div class=footnote> (脚注) ブラウザを使っている人間もお客さんだけど、 コンピュータの動作の話をしてるから、 人間のところはちょっと忘れておいておくれ:-) </div> ![](../../network/tcpip/intro/images/menu_tenin_yobu.png) - ウエイターさんだよ - え? - つまり - お客がクライアント、たとえばWWWブラウザ - サービス(service)するのがサーバ(server)だから、 ウエイターさんがサーバってことや --- class: img-right,compact # サーバって物理なの?ソフトなの? ![](/images/background/bws_cpu_servers__P_20211014_200126.png) ![](https://apache.org/img/asf-estd-1999-logo.jpg) ![](https://nginx.org/nginx.png) - サーバの実態って何なんですか? - じつは文脈依存なんだな - ? - 強力なPC(ハードウエア)のこともサーバと言うし、 そのPCの上で動かしているソフトウエア(つまり機能)のことをサーバと言うね。 この辺は慣れてもらうしかないけれど、 インフラの設備を作るのでないなら、 たいていはソフトウエアの話をしているんだとおもうよ。 たとえば**WWWサーバ**と言えば、 たいてい、**WWWの機能を提供するソフトウエア**(例: apache, nginx)が話題で、 そのソフトウエアを動かすハードウエアの話をしているわけではない --- class: img-right,compact # 物理サーバって楽しいですか? ![](/images/background/bws_cpu_servers__P_20211014_200126.png) ![](/images/nsrg/NEC_110rb-1h_internal__P_20211014_175658.jpg) - 楽しいよ、楽しい人には - って... - まぁ好き好きだから(w) <br> 最近の人は、ネットワークケーブル(有線)すらイヤな顔をするけど、 ブラウザだって、なんとなく動いているわけではないんよ。 インターネットの裏側(実体)では、 物理のサーバが何百万台も動いているんだし、 それらを誰かが設計・構築・運用しているわけよ。 最近は、 こういうインフラまわりに興味をもつ人が少ないから、 逆に大歓迎されるね〜 --- class: img-right,compact # 仮想サーバって単語がありますよね? ![](/images/background/bws_cpu_servers__P_20211014_200126.png) ![](/slides/os/internal/basic/images/CC-BY2.0_computer_parts__416458788_804d765fcc_b.jpg) - あるねぇ - それって何?「仮想WWWサーバ」なんて単語もある? - いや、それはない - お、おう - 「仮想サーバ」は「物理サーバ」の反対語だよね。 - 反対? - 物理(ハードウエア)の反対は実体が無いということだからソフトウエアだよね。 仮想サーバ=ソフトウエアサーバってことだけど、 WWWソフトウエアのサーバじゃないよ。 **物理サーバ=コンピュータのハードウエアをソフトウエアで動かすのが仮想サーバ** --- class: img-right,compact # コンテナっていう単語もありますよね? <div class=footnote> (脚注) もうすこし詳しいところは、 <A HREF="https://lectures.fml.org/os/">OSの授業</A>って思ったけど、 そこまで出来てなかったわ:-) </div> ![](/images/background/bws_cpu_servers__P_20211014_200126.png) ![](/images/background/PD_container_ship__34201586040_283b7bb633_b.jpg) - あるねぇ - それって何?「仮想サーバ」と何がちがうんでしょう? - とりあえずは、コンテナと呼ばれる「仮想サーバ」の一種でOKだよ。 いわゆる仮想サーバとは使う技術も目的も違うのだけれど、 細かい区別より、まずはサーバなるものに慣れたほうがいいとおもうんだよね。 ユーザとして使う分には区別なんてつかないしね。 開発しようとする際には区別を勉強する必要があるだろうけど --- class: img-right,compact # 少しコンピュータの話をしないとだね <div class=footnote> (脚注) もうすこし詳しいところは、 <A HREF="https://lectures.fml.org/os/">OSの授業</A>をみておくれでないかね </div> ![height180px](images/computer_cpu.png) ![height240px](/slides/os/internal/basic/images/5elements.png) ![height240px](/slides/columns/history/os/images/computer_punchcard_scientist.png) ![height240px](images/computer_mukashi_.png) - コンピュータの心臓部はCPUというハードウエアで、 CPUは数字で与えられる命令とデータを処理している - ほい - 古代では、穴が開いてる紙テープで表現してたアレやな。 あの紙テープを読んで解釈するハードウエアがCPU - ほい - でも、しょせん数字を解釈するだけでしょ? **数字を解釈できるソフトウエアを書いたらCPUと区別できない**じゃん。 **真似っこができるじゃん?(ただし処理速度が低いけど;-)** それが**仮想サーバの心臓部** --- class: img-right,compact # え?仮想と物理の違いって? ![height180px](images/computer_cpu.png) ![height240px](/slides/os/internal/basic/images/5elements.png) ![height240px](/slides/columns/history/os/images/computer_punchcard_scientist.png) ![height240px](images/computer_mukashi_.png) - CPUを真似るソフトウエアがあると... - うん - そのソフトウエアがあれば十分なので、 仮想と物理を区別する必要があったの? - 速度の問題だね。 CPUというハードウエアはソフトウエアより速いから。 かつてはコンピュータ=ハードウエアを占有する形態が普通だったけれど、 (身の回りにあるPC上の) 仮想サーバが物理サーバと同じくらい速くて利用が現実味をおびたのは2000年代後半の話 --- class: img-right,compact # いま使っているPCが仮想かもしれないのかな? ![height240px](/images/background/bg_network_dennou_sekai.jpg) ![height240px](images/chromebook.png) - いま使っているPCが仮想か物理か区別できますか? - もちろん目の前で使っているPCは物理だとおもうけどね:-) でも、その上で仮想PCを起動していることもあるね。 いずれにせよ、おおむね出来ると思うよ - ほほぉ - それには2、3コマンドを実行する必要があるね。 いよいよ Unix コマンドに親しんでみようじゃないかね (おぉ、やっと本題に入った?:-)