そこに仁義はあるのか(仮)

略してそこ仁!

インフラエンジニアの必須知識を広く体系的に学べる「インフラエンジニアの教科書2」を読んだ

インフラの知識が割と必要な仕事だけど、「あれってなんだっけ?」と調べることが多く、「ちゃんと勉強しないとな〜」と思っていたときにお勧めいただいたのが「インフラエンジニアの教科書2」でした。(ちなみに「インフラエンジニアの教科書1」は読んでないのですが、全然問題なかったです。今後1の方も読んでみよう。)
プロトコルやOSから、セキュリティ攻撃、RFCの読み方など、本当に幅広い必須知識が紹介されています。(目次参照)
今まで曖昧に / 所々で理解していたことを体系的に学べました。また、いくつかのChapterでは、「インフラエンジニアは何を意識すべきか」という内容も盛り込まれていてすごく良かったです。
全体的に図解も多く、かなりサクサクと読めました。

インフラエンジニアの教科書2 スキルアップに効く技術と知識

インフラエンジニアの教科書2 スキルアップに効く技術と知識

  • 作者:佐野 裕
  • 出版社/メーカー: シーアンドアール研究所
  • 発売日: 2016/08/26
  • メディア: 単行本(ソフトカバー)

📖 目次

  • CHAPTER-01 プロトコル
  • CHAPTER-02 OS
  • CHAPTER-03 ネットワーク
  • CHAPTER-04 データベース
  • CHAPTER-05 WEBのサーバサイド開発言語
  • CHAPTER-06 共通鍵暗号方式と公開鍵暗号方式
  • CHAPTER-07 障害対策と障害対応
  • CHAPTER-08 よく知られたセキュリティ攻撃
  • CHAPTER-09 インターネットの運用と発展をつかさどる組織や団体
  • CHAPTER-10 RFCの読み方と作られ方
  • CHAPTER-11 世界規模のインターネットサービス運営
  • CHAPTER-12 インフラエンジニアとして目指す方向

「インフラエンジニアの〇〇」

Chapter2〜4の『インフラエンジニアの〇〇』では「Chapterのコンテンツに対してインフラエンジニアがどう関与するか」という内容が書かれており学びが多かったですし、本書籍の特徴的な部分だと感じました。

  • Chapter2-6 インフラエンジニアのプロセス管理
  • Chapter2-9 インプラエンジニアのメモリ管理
  • Chapter2-13 インフラエンジニアのファイル管理
  • Chapter3-16 インフラエンジニアのネットワーク管理
  • Chapter4-20 インフラエンジニアとデータベース

例えば、「Chapter3-16 インフラエンジニアのネットワーク管理」から抜粋すると、

「主に監視するのはdiscatd(packet loss)とunbind」

ネットワーク機器で監視できる項目は多々ありますが、[ 1 ] 特にdiscard値とunbindの発生は特に注視すべき監視項目です。
パケットロスなどにより発生するdiscard(packet loss)値は常に0であるべきですが、ちょっとしたdiscardはたまに発生します。discardが発生した場合、原因を徹底的に分析するのが好ましいです。discardが発生しうる要因として、[ 2 ]接続先機器側の問題、ケーブル不良、スイッチバッファが溢れたなどがあります。特に外部からのリクエストが多い環境においてはネットワーク機器のCPU使用率が高い場合やキャッシュを使い果たすほどの瞬間的に大量のパケットが流れ込んだ時にパケットロスが発生しやすくなります。このような場合は、[ 3 ]ネットワーク構成を変更してトラフィック流入を物理的に減らす方法や、より高性能のスイッチに買い替えるといった方法があります。

のように「[ 1 ]何に注意すべきか」「[ 2 ]どんな原因があるか」「[ 3 ]どういう対応をするか」という内容が盛り込まれています。
また、障害対応方法以外にも、設計時にどんなことを意識するかという内容も書かれています。

CHAPTER-07 障害対策と障害対応

「障害発生した時にスピード解決するために、サーバの状態を把握するための操作は自然に手が動くようにしておきましょう」という内容のChapterです。
すごく実用的で、障害発生時、各調査事項に対してどんなコマンドを実行するのかというのが載っています。
これさ〜〜〜、いっつもなんだったっけって調べるよね〜〜〜〜〜、助かる〜〜〜〜〜、覚えなきゃ〜〜〜〜〜〜〜。
インフラエンジニアの方が実際に利用している重要なコマンドを一括で覚えられるようにしてくれていてとても助かります。

コマンドメモ。見返す。
  1. メモリ搭載量と使用量は?
    • # free
  2. パーテーションごとのディスク使用量と空き容量は?
    • # df -h
  3. 使われているCPUは何で、コア数は全体でいくつか?
    • # cat /proc/cpuinfo | grep -e "model name" -e cores
  4. ディスクのRAID構成は?
    • # MegaCli -LDInfo -Lall -aall | grel RAID
    • # hpssacli ctrl all show config
  5. CPU使用率は高いか低いか?
    1. # w
    2. # top -d 1
  6. 現在のディスクアクセス率は高いか低いか?
    • # iostat 1
  7. 現在張られているTCPコネクションの数は?
    • # netstat -an | grep ESTABLISHED | wc -l
  8. 現在サーバにログインしているアカウントは何か?
    • # last | grep "still logged in"
  9. サーバが起動してからの経過時間は?
    • # uptime
  10. Webサーバの場合、ApacheやNginxなど、何のWebサーバソフトウェアが動いているか?
    1. # netstat -lnp | grep 80
    2. # ps -ef | grep [プロセス番号]
  11. DBと連携しているWebサーバの場合、何のDBサーバソフトウェアと接続しているか?
    • netstat -an | grep ESTABLISHED
    • ※ポート番号で判断する。
  12. メモリ / ハードディスク / 電源ユニットが故障していると仮定して、その証拠はどうやって調べるか?
    1. # dmesg
    2. # more /var/log/messages
  13. サーバにはUSBメモリが接続されているか否か?
    1. # dmesg
    2. # parted -l
    3. # lsusb
  14. ネットワーク機器とサーバのネットワークインターフェースは何Gbpsで接続されているか?
    • # ethtool eth0 | grep Speed

おまけ


💬 まとめ

「インフラエンジニアの教科書2」は今まで所々で覚えていた知識を体系的に学べる良い本でした。
図解が多くて書き方もわかりやすいのでサクサク読めますが、情報量は多く充実しています。OSやプロトコルの話からRFCの読み方の話まで書いている本ってなかなかないのでは。
利用頻度が高い基本的なコマンドも多く、かつ、実際にインフラエンジニアとして何を検討・対応するのかが書いてあるのも丁寧で嬉しかったです。
インフラの知識に自信がない方に是非お勧めできる一冊でした!

インフラエンジニアの教科書2 スキルアップに効く技術と知識

インフラエンジニアの教科書2 スキルアップに効く技術と知識

  • 作者:佐野 裕
  • 出版社/メーカー: シーアンドアール研究所
  • 発売日: 2016/08/26
  • メディア: 単行本(ソフトカバー)