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
ChatGPT とつくる PHP で OS 実装
memory1994
PRO
3
190
テストコード書いてみませんか?
onopon
2
340
PicoRubyと暮らす、シェアハウスハック
ryosk7
0
220
CQRS+ES の力を使って効果を感じる / Feel the effects of using the power of CQRS+ES
seike460
PRO
0
240
技術的負債と向き合うカイゼン活動を1年続けて分かった "持続可能" なプロダクト開発
yuichiro_serita
0
300
Lookerは可視化だけじゃない。UIコンポーネントもあるんだ!
ymd65536
1
130
ESLintプラグインを使用してCDKのセオリーを適用する
yamanashi_ren01
2
240
歴史と現在から考えるスケーラブルなソフトウェア開発のプラクティス
i10416
0
300
Fixstars高速化コンテスト2024準優勝解法
eijirou
0
190
GitHub CopilotでTypeScriptの コード生成するワザップ
starfish719
26
6k
最近のVS Codeで気になるニュース 2025/01
74th
1
100
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
6
700
Featured
See All Featured
Visualization
eitanlees
146
15k
YesSQL, Process and Tooling at Scale
rocio
170
14k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
19
2.3k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.4k
For a Future-Friendly Web
brad_frost
176
9.5k
Designing on Purpose - Digital PM Summit 2013
jponch
116
7.1k
Practical Orchestrator
shlominoach
186
10k
How to Think Like a Performance Engineer
csswizardry
22
1.3k
4 Signs Your Business is Dying
shpigford
182
22k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
BBQ
matthewcrist
85
9.4k
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 楽しいサーバライフを!