LinuC技術解説セミナー
クラウドを学ぶ前に知っておこう「なぜLinuxについて学習をする必要があるか」

担当︓河原⽊忠司© LPI-Japan / EDUCO all rights reserved.

⾃⼰紹介
n河原⽊忠司（かわらぎただし） 20数年ほど、講師/エンジニアとして活動しております。
 最近は講師、研修コンサルティング、執筆業に従事させていただいております。

- サーバーインフラ系のコース、セキュリティ系のコースを中⼼に担当させていただいております。
- LinuC Lv.1/Lv.2のver.10試験開発にも協⼒させていただきました。
https://linuc.org/linuc/thanks.html

n執筆した主な書籍「基礎からしっかり学ぶ Linux入門」（技術評論社）
https://gihyo.jp/book/2022/978-4-297-12545-5「最短突破 LinuCレベル1
合格教本 ver.10対応」（技術評論社）
好評発売中です。
https://gihyo.jp/book/2020/978-4-297-11527-2「標準テキスト CentOS8 構
築・運用・管理パーフェクトガ
イド[CentOS Stream対応] 」（共著、SBクリエイティブ）
https://www.sbcr.jp/product/4815602567/© LPI-Japan all rights reserved.

2

本⽇お話しする内容
nOS（Linux）の関する知識はさまざまな場⾯で役に⽴つ 直接、細かな部分まで操作をしない場合でも「仕組み」を理解しておくことで、クラウドサービス利⽤の場合やサーバー管理の場合、あるいはさまざまな場⾯で役に⽴つ。
 クラウドサービス上でサービスを提供（サーバーを構成）することを想定し、解説。
 以下の内容を想定して、 LinuC Lv.1の出題範囲の知識、技術で解説。
- クラウドサービス上でWebアプリサービスを構成
ü 不正アクセスの特定と対策
ü サーバーの負荷の確認- コマンドの実⾏例が出てきますが、コマンド⾃体や実⾏例を理解するというより、こうしたことができる・・ということを理解していただきたい内容です。

© LPI-Japan all rights reserved.

3

何のためにLinuxを使う︖
nLinux / Linuxカーネルはさまざまな場⾯で使われている

サーバー

PC

スマホ
今回はサーバー用途を想定
LinuCでも202試験を中心に出題

IoT端末/情報家電

通信機器© LPI-Japan all rights reserved.

4企業におけるクラウドサービスの利⽤統計

出典︓
総務省「情報通信⽩書

令和５年度版」© LPI-Japan all rights reserved.

5

クラウドサービスで何をする︖
nインターネット（クラウド）上でサービス（Webアプリ）を提供
 例︓ログイン処理を⾏い、正しくログインできたユーザーだけアクセスできるページを表⽰

Webアプリサーバー

DBサーバー（DBMS）

https://サーバー→サーバーに接続

Webブラウザ

入力したユーザー名とパスワードを送信

入力したユーザー名とパスワードの情報が存在するか検索

ユーザー情報が登録済み© LPI-Japan all rights reserved.

6

クラウドサービスの便利なポイントnサーバー/ネットワークを⽤意する必要がない
 初期投資が不要
 時間的コストの⼼配もない パブリックIPアドレスの確保の必要もない（クラウドサービス上で実現）nスケールアップ、スケールアウトといった対応がしやすい スケールアップ︓サーバーの処理能⼒を向上（メモリの増量など）させる スケールアウト︓サーバーの台数を増やす→こうしたことで、⾼負荷の場合、負荷分散を⾏う

nさまざまなサービス、機能が利⽤できる
 ロードバランサー、ファイアウォール、DB機能などさまざまな機能をサービスとして利⽤
スケールアウト
複数台でサービス提供
することで負荷分散© LPI-Japan all rights reserved.

7

サービスが利⽤できるようになるまで必要な⼿順
nWebアプリサーバーの場合
1.
2.
3.
4.

クラウドサービスの管理画面で設定

仮想インスタンス（仮想マシン、ネットワーク）を作成
必要なパッケージをインストール
クラウドサービスで作成したインスタンスに接続して設定＝OS上で設定サービスの起動
アプリデータの作成、配置© LPI-Japan all rights reserved.

8

仮想インスタンスの作成（AWS EC2）[インスタンスを起動]で作成
さまざまなOSの環境を選択できる© LPI-Japan all rights reserved.

9

Webサーバーで利⽤されるOSの統計
n圧倒的にLinuxの割合が多い 実績の多さ- 主要なWebサーバーソフトウェアがLinuxを前提

 コストの問題
 OSSのため、チューニングがしやすい

https://w3techs.com より引⽤
© LPI-Japan all rights reserved.

10

インスタンス作成後の⼿順
n必要なパッケージをインストール[root@ip-172-31-37-49 ~]# yum –y install httpd php php-pgsql
nサービスの起動
httpdやアプリ処理のため[root@ip-172-31-37-49 ~]# systemctl --now enable httpdの機能をインストール
nアプリデータの作成、配置httpdサービスを起動し、システ[root@ip-172-31-37-49 ~]# cd /var/www/html
ム起動時にも自動起動[root@ip-172-31-37-49 html]# vim index.php
公開用領域にアプリを作成

インスタンス作成後、Linux上でコマンド操作が必要© LPI-Japan all rights reserved.

11

n⼿順書さえ⽤意されていたら、別にLinuxについて知らなくてもいいんじゃない︖

n⼿順書通り、動かなかったら︖© LPI-Japan all rights reserved.

12

「仕組み」を理解することの重要さ
n「仕組み」を理解することで、効率的なトラブルシュートが可能
n「仕組み」を理解することで、広く、⻑く使える知識を⾝につけることができる
 「上もの」の知識、技術は将来的に変わっていく可能性があるが、「⼟台」の知識、技術は⻑く利⽤できる
 「上もの」が違っても、「⼟台」の知識、技術は同じように使える- 例︓どのようなクラウドサービスを利⽤する場合でも、Linuxインスタンスを作成して、利⽤するのであれば、Linuxについての知識、技術が常に必要となる© LPI-Japan all rights reserved.

13

サーバーシステムの「仕組み」
nサーバープロセスが起動
 サーバープロセスがアプリケーションポートを待機 待機しているポートにクライアントが接続- サーバーのウェルノウンポートに接続
ü 22→SSHü 80→HTTPü 443→HTTPS
http://サーバー→サーバーにHTTPで接続（Web通信）80

httpd22sshd

ssh サーバー→サーバーにSSHで接続（リモート管理）© LPI-Japan all rights reserved.

14

サービスの起動と確認[root@alma ~]# systemctl status httpd● httpd.service - The Apache HTTP Server
Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; preset: enabled)
Active: active (running) since Tue 2024-05-21 20:43:49 JST; 7min ago：[root@alma ~]# systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; preset: enabled)
Active: active (running) since Tue 2024-05-21 20:18:57 JST; 32min ago：
システム起動時にサー現在のサービスの状態
ビスを自動起動するかactive(running)→起動enabled→自動起動する中• 出題範囲
1.01.3 ブートプロセスとsystemd© LPI-Japan all rights reserved.

15

ログインの確認[root@alma ~]# whoroot
root

pts/0
pts/1

ログイン
ユーザー

2024-05-21 20:19 (192.168.56.1)
2024-05-21 20:43 (192.168.56.1)
端末名

接続開始時刻と接続元• 出題範囲1.10.1 セキュリティ管理業務の実施© LPI-Japan all rights reserved.

16

サーバープロセスの確認[root@alma ~]# ps -ef | grep -e sshd -e httpdroot815
100 startups
root
1809
root
1840
root
1900
root
1903
root
1945
apache1946
apache1947
apache1948
apache
1949
ユーザー
権限

1

0 20:18 ?

00:00:00 sshd: /usr/sbin/sshd -D [listener] 0 of 10-815
1809
815
1900
1
1945
1945
1945
1945

0 20:19 ?
0 20:19 ?
0 20:43 ?
0 20:43 ?
0 20:43 ?
0 20:43 ?
0 20:43 ?
0 20:43 ?
0 20:43 ?

00:00:00 sshd: root [priv]
00:00:00 sshd: root@pts/0
00:00:00 sshd: root [priv]
00:00:00 sshd: root@pts/1
00:00:00 /usr/sbin/httpd -DFOREGROUND
00:00:00 /usr/sbin/httpd -DFOREGROUND
00:00:00 /usr/sbin/httpd -DFOREGROUND
00:00:00 /usr/sbin/httpd -DFOREGROUND
00:00:00 /usr/sbin/httpd -DFOREGROUNDPIDPPID（親PID）• 出題範囲1.01.4 プロセスの生成、監視、終了© LPI-Japan all rights reserved.

17

ネットワーク通信の確認[root@alma ~]# ss -ntap | grep 22
LISTEN 0
128
0.0.0.0:22
0.0.0.0:*
users:(("sshd",pid=815,fd=3))
ESTAB 00192.168.56.11:22
192.168.56.1:53565
users:(("sshd",pid=1903,fd=4),("sshd",pid=1900,fd=4))
接続ホストのIPアドレス
ESTAB 052
192.168.56.11:22
192.168.56.1:53208とポート番号
users:(("sshd",pid=1840,fd=4),("sshd",pid=1809,fd=4))
LISTEN 0
128[::]:22[::]:*
users:(("sshd",pid=815,fd=4))ESTAB：接続確立中
LISTEN：接続待機中

自ホストのIPアドレスとポート番号

通信に利用している
プロセス• 出題範囲1.07.3 基本的なネットワークの問題解決© LPI-Japan all rights reserved.

18

SSH接続の構成[root@alma ~]# pstree -p | grep sshd|-sshd(815)-+-sshd(1809)---sshd(1840)---bash(1847)-+-grep(3178)|`-sshd(1900)---sshd(1903)---bash(3143)

pts/0

sshd（子）1809
sshd（親）815
sshd（子）1900

pts/1© LPI-Japan all rights reserved.

19

SSH接続を切断
nkill 1900

pts/0

sshd（子）1809
sshd（親）815sshd（子）
1900

pts/1

• 出題範囲1.01.4 プロセスの生成、監視、終了© LPI-Japan all rights reserved.

20

ネットワーク通信の確認[root@alma ~]# ss –ntap
：
ESTAB
00
192.168.56.11:48730
users:(("ssh",pid=2002,fd=3))
ESTAB
00
192.168.56.11:22
users:(("sshd",pid=1923,fd=4),("sshd",pid=1891,fd=4))
ESTAB
0
0
192.168.56.11:22
users:(("sshd",pid=1964,fd=4),("sshd",pid=1961,fd=4))：192.168.56.21:22
192.168.56.1:55603
192.168.56.1:55606

接続相手の22番ポートに接続→クライアントとして接続している© LPI-Japan all rights reserved.

21

メモリ利⽤の状態を確認
ntopコマンドで確認
top - 21:11:27 up 52 min, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 172 total,
1 running, 171 sleeping,
0 stopped,
0 zombie%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem :1763.7 total,
745.2 free,634.3 used,
540.1 buff/cache
MiB Swap:
2084.0 total,
2084.0 free,
0.0 used.
1129.4 avail Mem

物理メモリの空き容量• 出題範囲1.01.4 プロセスの生成、監視、終了© LPI-Japan all rights reserved.

22

HTTP接続が多数発⽣すると・・[root@alma ~]# ab -n 100000 -c 1000 http://127.0.0.1/
This is ApacheBench, Version 2.3 <$Revision: 1903618 $>Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 127.0.0.1 (be patient)Completed 10000 requests：
Completed 90000 requests
Completed 100000 requests
Finished 100000 requests

ApacheBench
Apache httpdの負荷テストに利用できるコマンド
この例は、1000ユーザーで100000アクセスしたという想定© LPI-Japan all rights reserved.

23

プロセスの状態を確認[root@alma ~]# ps -ef | grep httpdroot
apacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapacheapache

1945
1946
2235
2301
2302
2436
2502
2503
2634
2635
2636
2637
2898
2899
2965

1 0 20:43 ?
1945 0 20:43 ?
1945 4 21:13 ?
1945 3 21:13 ?
1945 3 21:13 ?
1945 5 21:14 ?
1945 4 21:14 ?
1945 4 21:14 ?
1945 4 21:14 ?
1945 5 21:14 ?
1945 4 21:14 ?
1945 4 21:14 ?
1945 4 21:14 ?
1945 4 21:14 ?
1945 4 21:14 ?

00:00:00 /usr/sbin/httpd -DFOREGROUND
00:00:00 /usr/sbin/httpd -DFOREGROUND
00:00:02 /usr/sbin/httpd -DFOREGROUND
00:00:01 /usr/sbin/httpd -DFOREGROUND
00:00:01 /usr/sbin/httpd -DFOREGROUND
00:00:01 /usr/sbin/httpd -DFOREGROUND
00:00:00 /usr/sbin/httpd -DFOREGROUND
00:00:00 /usr/sbin/httpd -DFOREGROUND
00:00:00 /usr/sbin/httpd -DFOREGROUND
00:00:00 /usr/sbin/httpd -DFOREGROUND
00:00:00 /usr/sbin/httpd -DFOREGROUND
00:00:00 /usr/sbin/httpd -DFOREGROUND
00:00:00 /usr/sbin/httpd -DFOREGROUND
00:00:00 /usr/sbin/httpd -DFOREGROUND
00:00:00 /usr/sbin/httpd -DFOREGROUND

子プロセスが増加→メモリ消費も増加© LPI-Japan all rights reserved.

24

メモリ利⽤の状態を確認
top - 21:14:27 up 55 min, 1 user, load average: 49.63, 12.47, 4.17
Tasks: 180 total,
1 running, 179 sleeping,
0 stopped,0 zombie%Cpu(s): 3.0 us, 3.0 sy, 0.0 ni, 93.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem :1763.7 total,
578.1 free,764.2 used,
577.4 buff/cache
MiB Swap:
2084.0 total,
2084.0 free,
0.0 used.
999.5 avail Mem

物理メモリの空き容量
子
子

メモリ使用量が増加

子
子

子

httpd（親）httpd（親）

子
子

子
RAM

アクセスが増えると・・・

子子RAM© LPI-Japan all rights reserved.

25

Q&A / おわりにnご参加いただき、ありがとうございました。
nご質問がありましたら、お声がけください。

「基礎からしっかり学ぶ Linux入門」（技術評論社）
https://gihyo.jp/book/2022/978-4-297-12545-5「最短突破 LinuCレベル1
合格教本 ver.10対応」（技術評論社）
好評発売中です。
https://gihyo.jp/book/2020/978-4-297-11527-2「標準テキスト CentOS8 構
築・運用・管理パーフェクトガ
イド[CentOS Stream対応] 」（共著、SBクリエイティブ）
https://www.sbcr.jp/product/4815602567/© LPI-Japan all rights reserved.

26