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
170
サーバ入門(概論〜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
430
10分間でエンジニア就活について話す #ニックトレイン
ukwhatn
PRO
1
840
[KC3 Meet! vol.1]ちょっとだけわかるPasskey
ukwhatn
PRO
0
210
基礎からわかろうOAuth2/OpenID Connect
ukwhatn
PRO
0
210
データベース入門(数珠つなぎオンライン勉強会 #03)
ukwhatn
PRO
1
120
バックエンドロードマップ(数珠つなぎオンライン勉強会 #02)
ukwhatn
PRO
0
300
Other Decks in Programming
See All in Programming
VS Code をプロダクトにどう取り込むか
onomax
1
780
Deep Dive into React Stream/Serialize
mugi_uno
3
750
Git Rebase
bkuhlmann
11
1.6k
敵対的ポイフル
futabato
0
150
CDKコントリビュートの最初の壁を越えよう! -簡単issueの見つけ方-
badmintoncryer
3
330
見た目から始める生産性向上
ikumatadokoro
10
1.5k
障害対応を起点としたもっといい開発と運用のサイクル作りのためにできること / Hatena Enginner Seminar #29
polamjag
0
420
パフォーマンスを求めてDBに機能を寄せる戦略
aoyagikouhei
0
110
Scalable Customer Journey Orchestration (CJO)
lewuathe
0
450
Open AI APIを使う前に知っておきたいアカウントTier の話
akki_megane
0
100
SwiftUIで使いやすいToastの作り方 / How to build a Toast system which is easy to use in SwiftUI
lovee
3
190
Domain-Driven Transformation
hschwentner
2
1.5k
Featured
See All Featured
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
245
20k
The Illustrated Children's Guide to Kubernetes
chrisshort
32
47k
10 Git Anti Patterns You Should be Aware of
lemiorhan
649
58k
Designing Experiences People Love
moore
136
23k
Into the Great Unknown - MozCon
thekraken
15
1k
Making the Leap to Tech Lead
cromwellryan
125
8.5k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
155
14k
The Cult of Friendly URLs
andyhume
74
5.7k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
79
44k
Rails Girls Zürich Keynote
gr2m
91
13k
Facilitating Awesome Meetings
lara
43
5.6k
Making Projects Easy
brettharned
109
5.5k
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 楽しいサーバライフを!