Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
サーバ入門(概論〜Webサーバ構築)
Search
Yuki Watanabe
March 10, 2023
Programming
0
250
サーバ入門(概論〜Webサーバ構築)
近畿大学電子計算機研究会・KINDAI Info-Tech HUB合同勉強会における登壇資料です。
サーバ管理について、初学者向けに入門講義としてハンズオンを行いました。
Yuki Watanabe
March 10, 2023
Tweet
Share
More Decks by Yuki Watanabe
See All by Yuki Watanabe
【つよナレ#1】初心者こそバニラなPHPでWebアプリを作るべき
ukwhatn
0
55
15分間でふんわり理解するDocker @ Matsuriba MAX
ukwhatn
1
500
10分間でエンジニア就活について話す #ニックトレイン
ukwhatn
3
970
[KC3 Meet! vol.1]ちょっとだけわかるPasskey
ukwhatn
1
340
基礎からわかろうOAuth2/OpenID Connect
ukwhatn
0
340
データベース入門(数珠つなぎオンライン勉強会 #03)
ukwhatn
1
180
バックエンドロードマップ(数珠つなぎオンライン勉強会 #02)
ukwhatn
0
410
Other Decks in Programming
See All in Programming
ErdMap: Thinking about a map for Rails applications
makicamel
1
660
Azure AI Foundryのご紹介
qt_luigi
1
210
責務を分離するための例外設計 - PHPカンファレンス 2024
kajitack
9
2.4k
Запуск 1С:УХ в крупном энтерпрайзе: мечта и реальность ПМа
lamodatech
0
950
ドメインイベント増えすぎ問題
h0r15h0
2
570
Lookerは可視化だけじゃない。UIコンポーネントもあるんだ!
ymd65536
1
130
rails newと同時に型を書く
aki19035vc
5
710
PHPとAPI Platformで作る本格的なWeb APIアプリケーション(入門編) / phpcon 2024 Intro to API Platform
ttskch
0
390
AWS re:Invent 2024個人的まとめ
satoshi256kbyte
0
100
PHPUnitしか使ってこなかった 一般PHPerがPestに乗り換えた実録
mashirou1234
0
420
2025.01.17_Sansan × DMM.swift
riofujimon
2
560
為你自己學 Python
eddie
0
520
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
19
2.3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Keith and Marios Guide to Fast Websites
keithpitt
410
22k
The Invisible Side of Design
smashingmag
299
50k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
570
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.4k
Producing Creativity
orderedlist
PRO
343
39k
Code Reviewing Like a Champion
maltzj
521
39k
Practical Orchestrator
shlominoach
186
10k
Transcript
CSG/KITHUB 勉強会 サーバ入門 講師:渡邉 雄貴 Yuki Watanabe / @ukwhatn
AGENDA サーバって何? サーバの役割やあり方などを知ろう 01 サーバ運用の学び方 どこから手を付ければいいの? というあなたへ 04 いろいろな「サーバ」 社会で使われている
サーバについて知ろう 02 Webサーバを作ろう Dockerを用いた Webサーバ構築演習 03
プロフィール 渡邉 雄貴/Watanabe Yuki 近畿大学理工学部 情報学科 B2 所属(学内) • KINDAI
Info-Tech HUB (運営) • 近畿大学電子計算機研究会 所属(学外) • KC3運営委員会 (理事)
プロフィール 渡邉 雄貴/Watanabe Yuki 技術者として • DMM Webcamp(転職型プログラミングスクール) メンター •
開発長期インターン 全4社 (現3社) 電算研的には..... • 部室のでっかいサーバたちの管理者
サーバって何?
サーバ = サービスを提供するコンピュータ • 利用者に対してサービスを提供する • たとえば:ネット通販を利用するとき ◦ サイトを訪問する ◦
ログインや会員登録を行う ◦ 購入処理や決済を行う ▪ すべてにサーバが関与 サーバって何? サーバとは
どんなPCでもサーバになる • 業務においては一般のPCより 高可用・高耐久な「サーバマシン」が使われる • ただし、先程の定義からも分かる通り、 普通のPCをサービス提供に利用すればサーバになる ◦ 私は昔、macbookをDiscord Botの稼働に使っていました
サーバって何? サーバとは
クライアントとサーバ • クライアント:サービスを提供されるコンピュータ サーバって何? クライアント/サーバシステム
サーバだけでは何も成せない • クライアント端末と同様に、 ソフトウェアがサーバ上で動作してはじめて機能する ◦ 基本ソフトウェア(OS):より高いNW性能や安定性 ◦ ミドルウェア:OSとアプリケーションの橋渡し ◦ アプリケーション:目的に応じて様々に動作するソフト
サーバって何? サーバソフトウェア
サーバOS • Windows系 ◦ Windows Server ▪ 操作はGUIベース ▪ Microsoftの商品
• 6万くらいする サーバって何? サーバソフトウェア
サーバOS • Linux系 ◦ Ubuntu Server ◦ CentOS ◦ Red
Hat Enterprise Linux ▪ 操作はCLIベース ▪ オープンソースなので基本タダ サーバって何? サーバソフトウェア
サーバアプリケーション • Webサーバ ◦ Apache HTTP Server / Nginx •
メールサーバ ◦ sendmail / Postfix / Dovecot / ExchangeServer • データベースサーバ ◦ MySQL / MariaDB / PostgreSQL / MongoDB サーバって何? サーバソフトウェア
いろいろな「サーバ」
レンタルサーバ(共用サーバ) • 企業が用意したサーバの一部を借りて使う ◦ みんなでシェアハウス • 借りた瞬間から環境が用意されている ◦ 家具付き •
カスタマイズがあんまりできない ◦ 予め用意されているサーバソフトウェアを使う ▪ 基本的に追加できない いろいろな「サーバ」 サーバの置かれ方
VPS(Virtual Private Server) • サーバ上に仮想的に利用者向けの環境を用意する ◦ マンションのようなもの ◦ 共用部分はあるが、個別の鍵付き部屋が用意されている •
自分でOSやサーバソフトウェアをインストールできる ◦ 部屋の中はカスタマイズ自由!家具もなんでも置いて良い! • 専用サーバより安い! ◦ 月500円前後から使える いろいろな「サーバ」 サーバの置かれ方
クラウドサーバ • 複数のサーバに分散された機能やリソースを必要なだけ使う ◦ VPS + スケーラビリティ • 機能によってはイチからVPSを構築するより圧倒的に早い ◦
機能が豊富・カスタムもできるレンタルサーバ • 利用時間単位での課金になる ◦ 設定ミスると数十万の請求が来ることも........... いろいろな「サーバ」 サーバの置かれ方
Webサーバ • 利用者のブラウザからのリクエストに対してレスポンスを返す ◦ HTTPリクエストに対して機能するもの全般を指す ◦ アプリケーションとしてApache HTTP ServerやNginxなどがある いろいろな「サーバ」
サーバの種類 データベースサーバ • 顧客情報などのデータを保存したり抽出したりするサーバ ◦ アプリケーションとしてMySQLやPostgreSQLなどがある
メールサーバ • メールの送受信サービスを提供するサーバ ◦ 自ネットワークからメールを送ったり受け取ったりする ◦ 受信プロトコルはPOP3/IMAP、送信プロトコルはSMTP いろいろな「サーバ」 サーバの種類 アプリケーションサーバ
• アプリケーション・プログラムを動作させるサーバ ◦ 入力に対してプログラムの出力を返したりする
Webサーバを作ろう
Docker • コンテナ型仮想化プラットフォーム ◦ 自分のPCでもサーバ上でも同じ環境を作れるもの • 今回はコレを用いてPC上でサーバOSを動かしてみます Webサーバを作ろう 今回使うもの
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 インストール”などで検索
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 インストール”などで検索
Dockerコンテナに入る(ログイン) • 作成したコンテナ内のシェル(ターミナル)にログイン Webサーバを作ろう 早速やってみよう docker exec -it learning_server bash
• 画像のようになったら成功!
rootユーザに切り替え • switch userコマンドを利用してユーザを切り替え Webサーバを作ろう 早速やってみよう • でnormal-userに戻れます su root
(パスワード: eraihito) • 画像のようになったら成功! exit
パッケージリストを更新 • パッケージ(インストールできるソフト)のリストを更新 Webサーバを作ろう 早速やってみよう sudo apt update (パスワード: densanken)
• 画像のようになったら成功! • sudo = superuser do / root権限が必要な操作をするときに利用する
パッケージを更新 • 既にインストールされているパッケージを更新 Webサーバを作ろう 早速やってみよう sudo apt upgrade • 画像のようになったら成功!
• [Y/n]を求められたら を入力! Y
Webサーバ「Nginx」をインストール • aptからWebサーバをインストールする Webサーバを作ろう 早速やってみよう sudo apt install nginx •
画像のようになったら成功! • [Y/n]を求められたら を入力! Y
ブラウザからWebサーバにアクセスしてみる • nginxを起動 Webサーバを作ろう 早速やってみよう sudo nginx • 下のURLにアクセス! http://127.0.0.1:60080/
サーバログを見てみる • catコマンドでログファイルを見る Webサーバを作ろう 早速やってみよう sudo cat /var/log/nginx/access.log
HTMLファイルを作成する • エディタを開く Webサーバを作ろう 早速やってみよう sudo nano /var/www/html/index.html • 任意のテキストを入力
• 保存: → → → ◦ macの人はCommandじゃないので注意! Control + X Y Enter
作成したHTMLファイルを見てみる Webサーバを作ろう 早速やってみよう • 下のURLにアクセス! http://127.0.0.1:60080/
HTMLファイルを作成する • エディタを開く Webサーバを作ろう 早速やってみよう sudo nano /var/www/html/test.html • 任意のテキストを入力
• 保存: → → → ◦ macの人はCommandじゃないので注意! Control + X Y Enter
作成したHTMLファイルを見てみる Webサーバを作ろう 早速やってみよう • 下のURLにアクセス! http://127.0.0.1:60080/test.html
静的ファイルや画像などのホスティング Webサーバを作ろう 早速やってみよう • 今の流れで、静的Webページや画像などをWebに公開できます ◦ 静的Webページ:HTML/CSS + JSだけで構成されたWebページ
サーバ運用の学び方
「サーバをもっと学びたい!」 • やりたくてもどこから手を付けたらいいのかわからない問題 ◦ 範囲が広すぎる ▪ Linux・ネットワーク・Web・仮想化・etc ……… サーバ運用の学び方
「習うより慣れろ」 • 知らなければいけない「範囲」は多いけど 「必要な知識」は実はそこまで多くない ◦ 少しの知識でできることは結構ある ◦ 入門記事などをチュートリアル代わりにして慣れていけば、 今後やりたいことができても対応できる ◦
例: ▪ Webアプリを作りたい/データベースを使いたい など サーバ運用の学び方
だいじなこと とりあえず色々触ってみる サーバ運用の学び方
VPSサーバを借りてみよう • 最初は「さくらのVPS」がおすすめ! ◦ 安さと使いやすさが両立されている サーバ運用の学び方
VPSサーバを借りてみよう • 最初は「さくらのVPS」がおすすめ! ◦ 入門講座が豊富 サーバ運用の学び方
VPSサーバを借りてみよう • 最初は「さくらのVPS」がおすすめ! ◦ 入門講座が豊富 サーバ運用の学び方
VPSサーバを借りてみよう • 最初は「さくらのVPS」がおすすめ! ◦ 入門講座が豊富 サーバ運用の学び方
VPSサーバを借りてみよう • 最初は「さくらのVPS」がおすすめ! ◦ 入門講座が豊富 サーバ運用の学び方
EOF 楽しいサーバライフを!