Slide 1

Slide 1 text

CSG/KITHUB 勉強会 サーバ入門 講師:渡邉 雄貴 Yuki Watanabe / @ukwhatn

Slide 2

Slide 2 text

AGENDA サーバって何? サーバの役割やあり方などを知ろう 01 サーバ運用の学び方 どこから手を付ければいいの? というあなたへ 04 いろいろな「サーバ」 社会で使われている サーバについて知ろう 02 Webサーバを作ろう Dockerを用いた Webサーバ構築演習 03

Slide 3

Slide 3 text

プロフィール 渡邉 雄貴/Watanabe Yuki 近畿大学理工学部 情報学科 B2 所属(学内) ● KINDAI Info-Tech HUB (運営) ● 近畿大学電子計算機研究会 所属(学外) ● KC3運営委員会 (理事)

Slide 4

Slide 4 text

プロフィール 渡邉 雄貴/Watanabe Yuki 技術者として ● DMM Webcamp(転職型プログラミングスクール) メンター ● 開発長期インターン 全4社 (現3社) 電算研的には..... ● 部室のでっかいサーバたちの管理者

Slide 5

Slide 5 text

サーバって何?

Slide 6

Slide 6 text

サーバ = サービスを提供するコンピュータ ● 利用者に対してサービスを提供する ● たとえば:ネット通販を利用するとき ○ サイトを訪問する ○ ログインや会員登録を行う ○ 購入処理や決済を行う ■ すべてにサーバが関与 サーバって何? サーバとは

Slide 7

Slide 7 text

どんなPCでもサーバになる ● 業務においては一般のPCより 高可用・高耐久な「サーバマシン」が使われる ● ただし、先程の定義からも分かる通り、 普通のPCをサービス提供に利用すればサーバになる ○ 私は昔、macbookをDiscord Botの稼働に使っていました サーバって何? サーバとは

Slide 8

Slide 8 text

クライアントとサーバ ● クライアント:サービスを提供されるコンピュータ サーバって何? クライアント/サーバシステム

Slide 9

Slide 9 text

サーバだけでは何も成せない ● クライアント端末と同様に、 ソフトウェアがサーバ上で動作してはじめて機能する ○ 基本ソフトウェア(OS):より高いNW性能や安定性 ○ ミドルウェア:OSとアプリケーションの橋渡し ○ アプリケーション:目的に応じて様々に動作するソフト サーバって何? サーバソフトウェア

Slide 10

Slide 10 text

サーバOS ● Windows系 ○ Windows Server ■ 操作はGUIベース ■ Microsoftの商品 ● 6万くらいする サーバって何? サーバソフトウェア

Slide 11

Slide 11 text

サーバOS ● Linux系 ○ Ubuntu Server ○ CentOS ○ Red Hat Enterprise Linux ■ 操作はCLIベース ■ オープンソースなので基本タダ サーバって何? サーバソフトウェア

Slide 12

Slide 12 text

サーバアプリケーション ● Webサーバ ○ Apache HTTP Server / Nginx ● メールサーバ ○ sendmail / Postfix / Dovecot / ExchangeServer ● データベースサーバ ○ MySQL / MariaDB / PostgreSQL / MongoDB サーバって何? サーバソフトウェア

Slide 13

Slide 13 text

いろいろな「サーバ」

Slide 14

Slide 14 text

レンタルサーバ(共用サーバ) ● 企業が用意したサーバの一部を借りて使う ○ みんなでシェアハウス ● 借りた瞬間から環境が用意されている ○ 家具付き ● カスタマイズがあんまりできない ○ 予め用意されているサーバソフトウェアを使う ■ 基本的に追加できない いろいろな「サーバ」 サーバの置かれ方

Slide 15

Slide 15 text

VPS(Virtual Private Server) ● サーバ上に仮想的に利用者向けの環境を用意する ○ マンションのようなもの ○ 共用部分はあるが、個別の鍵付き部屋が用意されている ● 自分でOSやサーバソフトウェアをインストールできる ○ 部屋の中はカスタマイズ自由!家具もなんでも置いて良い! ● 専用サーバより安い! ○ 月500円前後から使える いろいろな「サーバ」 サーバの置かれ方

Slide 16

Slide 16 text

クラウドサーバ ● 複数のサーバに分散された機能やリソースを必要なだけ使う ○ VPS + スケーラビリティ ● 機能によってはイチからVPSを構築するより圧倒的に早い ○ 機能が豊富・カスタムもできるレンタルサーバ ● 利用時間単位での課金になる ○ 設定ミスると数十万の請求が来ることも........... いろいろな「サーバ」 サーバの置かれ方

Slide 17

Slide 17 text

Webサーバ ● 利用者のブラウザからのリクエストに対してレスポンスを返す ○ HTTPリクエストに対して機能するもの全般を指す ○ アプリケーションとしてApache HTTP ServerやNginxなどがある いろいろな「サーバ」 サーバの種類 データベースサーバ ● 顧客情報などのデータを保存したり抽出したりするサーバ ○ アプリケーションとしてMySQLやPostgreSQLなどがある

Slide 18

Slide 18 text

メールサーバ ● メールの送受信サービスを提供するサーバ ○ 自ネットワークからメールを送ったり受け取ったりする ○ 受信プロトコルはPOP3/IMAP、送信プロトコルはSMTP いろいろな「サーバ」 サーバの種類 アプリケーションサーバ ● アプリケーション・プログラムを動作させるサーバ ○ 入力に対してプログラムの出力を返したりする

Slide 19

Slide 19 text

Webサーバを作ろう

Slide 20

Slide 20 text

Docker ● コンテナ型仮想化プラットフォーム ○ 自分のPCでもサーバ上でも同じ環境を作れるもの ● 今回はコレを用いてPC上でサーバOSを動かしてみます Webサーバを作ろう 今回使うもの

Slide 21

Slide 21 text

Dockerコンテナの作成 ● サーバOSの実行環境とOS自体を構築 Webサーバを作ろう 早速やってみよう docker run -d -p 127.0.0.1:60080:80 --name learning_server --hostname learning_server -it ukwhatn/csg_learning_server:latest ● VPSや物理サーバなどでは、OSイメージを用いてインストールします ○ “Ubuntu Server インストール”などで検索

Slide 22

Slide 22 text

Dockerコンテナの作成 ● サーバOSの実行環境とOS自体を構築 Webサーバを作ろう 早速やってみよう docker run -d -p 127.0.0.1:60080:80 --name learning_server --hostname learning_server -it ukwhatn/csg_learning_server:latest ● VPSや物理サーバなどでは、OSイメージを用いてインストールします ○ “Ubuntu Server インストール”などで検索

Slide 23

Slide 23 text

Dockerコンテナに入る(ログイン) ● 作成したコンテナ内のシェル(ターミナル)にログイン Webサーバを作ろう 早速やってみよう docker exec -it learning_server bash ● 画像のようになったら成功!

Slide 24

Slide 24 text

rootユーザに切り替え ● switch userコマンドを利用してユーザを切り替え Webサーバを作ろう 早速やってみよう ● でnormal-userに戻れます su root (パスワード: eraihito) ● 画像のようになったら成功! exit

Slide 25

Slide 25 text

パッケージリストを更新 ● パッケージ(インストールできるソフト)のリストを更新 Webサーバを作ろう 早速やってみよう sudo apt update (パスワード: densanken) ● 画像のようになったら成功! ● sudo = superuser do / root権限が必要な操作をするときに利用する

Slide 26

Slide 26 text

パッケージを更新 ● 既にインストールされているパッケージを更新 Webサーバを作ろう 早速やってみよう sudo apt upgrade ● 画像のようになったら成功! ● [Y/n]を求められたら を入力! Y

Slide 27

Slide 27 text

Webサーバ「Nginx」をインストール ● aptからWebサーバをインストールする Webサーバを作ろう 早速やってみよう sudo apt install nginx ● 画像のようになったら成功! ● [Y/n]を求められたら を入力! Y

Slide 28

Slide 28 text

ブラウザからWebサーバにアクセスしてみる ● nginxを起動 Webサーバを作ろう 早速やってみよう sudo nginx ● 下のURLにアクセス! http://127.0.0.1:60080/

Slide 29

Slide 29 text

サーバログを見てみる ● catコマンドでログファイルを見る Webサーバを作ろう 早速やってみよう sudo cat /var/log/nginx/access.log

Slide 30

Slide 30 text

HTMLファイルを作成する ● エディタを開く Webサーバを作ろう 早速やってみよう sudo nano /var/www/html/index.html ● 任意のテキストを入力 ● 保存: → → → ○ macの人はCommandじゃないので注意! Control + X Y Enter

Slide 31

Slide 31 text

作成したHTMLファイルを見てみる Webサーバを作ろう 早速やってみよう ● 下のURLにアクセス! http://127.0.0.1:60080/

Slide 32

Slide 32 text

HTMLファイルを作成する ● エディタを開く Webサーバを作ろう 早速やってみよう sudo nano /var/www/html/test.html ● 任意のテキストを入力 ● 保存: → → → ○ macの人はCommandじゃないので注意! Control + X Y Enter

Slide 33

Slide 33 text

作成したHTMLファイルを見てみる Webサーバを作ろう 早速やってみよう ● 下のURLにアクセス! http://127.0.0.1:60080/test.html

Slide 34

Slide 34 text

静的ファイルや画像などのホスティング Webサーバを作ろう 早速やってみよう ● 今の流れで、静的Webページや画像などをWebに公開できます ○ 静的Webページ:HTML/CSS + JSだけで構成されたWebページ

Slide 35

Slide 35 text

サーバ運用の学び方

Slide 36

Slide 36 text

「サーバをもっと学びたい!」 ● やりたくてもどこから手を付けたらいいのかわからない問題 ○ 範囲が広すぎる ■ Linux・ネットワーク・Web・仮想化・etc ……… サーバ運用の学び方

Slide 37

Slide 37 text

「習うより慣れろ」 ● 知らなければいけない「範囲」は多いけど 「必要な知識」は実はそこまで多くない ○ 少しの知識でできることは結構ある ○ 入門記事などをチュートリアル代わりにして慣れていけば、 今後やりたいことができても対応できる ○ 例: ■ Webアプリを作りたい/データベースを使いたい など サーバ運用の学び方

Slide 38

Slide 38 text

だいじなこと とりあえず色々触ってみる サーバ運用の学び方

Slide 39

Slide 39 text

VPSサーバを借りてみよう ● 最初は「さくらのVPS」がおすすめ! ○ 安さと使いやすさが両立されている サーバ運用の学び方

Slide 40

Slide 40 text

VPSサーバを借りてみよう ● 最初は「さくらのVPS」がおすすめ! ○ 入門講座が豊富 サーバ運用の学び方

Slide 41

Slide 41 text

VPSサーバを借りてみよう ● 最初は「さくらのVPS」がおすすめ! ○ 入門講座が豊富 サーバ運用の学び方

Slide 42

Slide 42 text

VPSサーバを借りてみよう ● 最初は「さくらのVPS」がおすすめ! ○ 入門講座が豊富 サーバ運用の学び方

Slide 43

Slide 43 text

VPSサーバを借りてみよう ● 最初は「さくらのVPS」がおすすめ! ○ 入門講座が豊富 サーバ運用の学び方

Slide 44

Slide 44 text

EOF 楽しいサーバライフを!