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
PRO
March 10, 2023
Programming
0
230
サーバ入門(概論〜Webサーバ構築)
近畿大学電子計算機研究会・KINDAI Info-Tech HUB合同勉強会における登壇資料です。
サーバ管理について、初学者向けに入門講義としてハンズオンを行いました。
Yuki Watanabe
PRO
March 10, 2023
Tweet
Share
More Decks by Yuki Watanabe
See All by Yuki Watanabe
15分間でふんわり理解するDocker @ Matsuriba MAX
ukwhatn
PRO
1
470
10分間でエンジニア就活について話す #ニックトレイン
ukwhatn
PRO
2
920
[KC3 Meet! vol.1]ちょっとだけわかるPasskey
ukwhatn
PRO
1
310
基礎からわかろうOAuth2/OpenID Connect
ukwhatn
PRO
0
310
データベース入門(数珠つなぎオンライン勉強会 #03)
ukwhatn
PRO
1
150
バックエンドロードマップ(数珠つなぎオンライン勉強会 #02)
ukwhatn
PRO
0
360
Other Decks in Programming
See All in Programming
ポケモンで考えるコミュニケーション / Communication Lessons from Pokémon
mackey0225
4
170
Cloud Adoption Framework にみる組織とクラウド導入戦略
tomokusaba
2
500
Subclassing, Composition, Python, and You
hynek
3
170
dbt-ga4パッケージを実業務に導入してみた話
t_tokumaru_feedcorp
0
130
自分だけの世界を創るクリエイティブコーディング / Creative Coding: Creating Your Own World
chobishiba
2
1.1k
What is TDD?
urakawa_jinsei
1
220
The Efficiency Paradox and How to Save Yourself and the World
hollycummins
0
180
ML-прайсинг_на_Lamoda__вошли_и_вышли__приключение_на_20_минут__Слава_Цыганков.pdf
lamodatech
0
170
Cloud Adoption Frameworkにみる組織とクラウド導入戦略(縮小版)
tomokusaba
1
200
Vue :: Better Testing 2024
up1
1
400
Competitionsだけじゃない! Kaggle Notebooks Grandmasterのすすめ
corochann
1
270
ACES Meet におけるリリース作業改善の取り組み
fukucheee
0
130
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
167
14k
Scaling GitHub
holman
458
140k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.5k
Clear Off the Table
cherdarchuk
91
320k
How to Think Like a Performance Engineer
csswizardry
16
1k
Building Adaptive Systems
keathley
38
2.2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.3k
Adopting Sorbet at Scale
ufuk
73
9k
Done Done
chrislema
181
16k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
3
230
In The Pink: A Labor of Love
frogandcode
139
22k
How to Ace a Technical Interview
jacobian
275
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 楽しいサーバライフを!