Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
サーバ入門(概論〜Webサーバ構築)
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Yuki Watanabe
March 10, 2023
Programming
670
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
サーバ入門(概論〜Webサーバ構築)
近畿大学電子計算機研究会・KINDAI Info-Tech HUB合同勉強会における登壇資料です。
サーバ管理について、初学者向けに入門講義としてハンズオンを行いました。
Yuki Watanabe
March 10, 2023
More Decks by Yuki Watanabe
See All by Yuki Watanabe
【つよナレ#1】初心者こそバニラなPHPでWebアプリを作るべき
ukwhatn
0
480
15分間でふんわり理解するDocker @ Matsuriba MAX
ukwhatn
1
600
10分間でエンジニア就活について話す #ニックトレイン
ukwhatn
3
1.5k
[KC3 Meet! vol.1]ちょっとだけわかるPasskey
ukwhatn
2
500
基礎からわかろうOAuth2/OpenID Connect
ukwhatn
0
540
データベース入門(数珠つなぎオンライン勉強会 #03)
ukwhatn
1
310
バックエンドロードマップ(数珠つなぎオンライン勉強会 #02)
ukwhatn
0
660
Other Decks in Programming
See All in Programming
What We Talk About When We Talk About XP
m_seki
2
680
Agents on Rails - Rails at Scale 2026
irinanazarova
0
200
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
460
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
440
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
2.9k
パズルゲームの作り方 / how to make puzzle games
kaityo256
PRO
2
170
すこし踏み込む CancellationToken
htkym
2
940
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
220
技術的負債の返済は、AI時代の複利で効く投資 — 経営としての意思決定とその遂行
curekoshimizu
0
1.8k
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
250
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
5
4.4k
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
360
Featured
See All Featured
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
340
Code Reviewing Like a Champion
maltzj
528
40k
Mobile First: as difficult as doing things right
swwweet
225
10k
Between Models and Reality
mayunak
4
460
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
700
Statistics for Hackers
jakevdp
799
230k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
240
Scaling GitHub
holman
464
140k
Side Projects
sachag
456
43k
4 Signs Your Business is Dying
shpigford
187
23k
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 楽しいサーバライフを!