注目の記事

インフラ未経験の私が内定から入社までに読んだ技術書11冊

インフラ未経験で入社した私がインフラを勉強するために読んだ技術書11冊を感想とともにまとめました。
2020.01.16

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

大阪オフィスのYuiです。

ジョインブログでも書いた通り、今までは主にアプリケーションプログラマとして仕事してきました。 インフラ周りの知識は趣味でAWSを触ったりする程度だったので、クラスメソッドから内定が出てから、「とりあえず勉強しないと!」ということで技術書を読み漁りました。その期間で読んだ11冊をインフラ初心者の目線で紹介したいと思います。

インフラ全般

インフラエンジニアの教科書

概要

インフラエンジニアとはどういう仕事なのか、どういう知識やスキルが求められるのかなどを解説した本。

目次
  • CHAPTER1 インフラエンジニアの仕事
  • CHAPTER2 サーバ
  • CHAPTER3 OS
  • CHAPTER4 ネットワーク
  • CHAPTER5 ストレージ
  • CHAPTER6 購買と商談
  • CHAPTER7 データセンター
  • CHAPTER8 ソリューションとセキュリティ
  • CHAPTER9 インフラ運用
  • CHAPTER10 大規模インフラ
  • CHAPTER11 インフラエンジニアの成長
感想

インフラの基礎知識についても丁寧に説明されているのですが、特にインフラエンジニアの仕事内容、インフラエンジニアとして仕事をするために最低限何を知っていないといけないのかが分かりやすかったです。ハードウェアの選定など、クラウドしか触ったことないと知り得ない物理インフラの知識が得られるのも良かったです。

インフラエンジニアの教科書2

概要

実務経験を数年積んだインフラエンジニアを対象が次のステップに進むために必要な知識を解説した本。

目次
  • CHAPTER1 プロトコル
  • CHAPTER2 OS
  • CHAPTER3 ネットワーク
  • CHAPTER4 データベース
  • CHAPTER5 WEBのサーバサイド言語
  • CHAPTER6 共通鍵暗号方式と公開鍵暗号方式
  • CHAPTER7 障害対策と障害対応
  • CHAPTER8 よく知られたセキュリティ攻撃
  • CHAPTER9 インターネットの運用と発展をつかさどる組織や団体
  • CHAPTER10 RFCの読み方と作られ方
  • CHAPTER11 世界規模のインターネットサービス運営
  • CHAPTER12 インフラエンジニアとして目指す方向
感想

知識と合わせて実務面に対する記述も多く、特に、障害対応について詳細に解説されているのが良かったです。 インフラに関する幅広い分野に言及されていて、インフラエンジニアでなくてもクラウドを扱うなら知っておきたい知識だと思いました。 「インフラエンジニアの教科書」からさらに内容を深めて解説されているのでどちらも読んで良かったです。

絵で見てわかるITインフラの仕組み

概要

ITに関わる仕事を始めて5年目くらいまでのエンジニアを対象に、ITインフラという領域全体を、ミクロ、マクロの視点で、わかりやすいように絵(図)で説明した本。

目次
  • 第1章 インフラアーキテクチャを見てみよう
  • 第2章 サーバーを開けてみよう
  • 第3章 3階層型システムを見てみよう
  • 第4章 インフラを支える理論の基本
  • 第5章 インフラを支える理論の応用
  • 第6章 システムをつなぐネットワークの仕組み
  • 第7章 止めないためのインフラの仕組み
  • 第8章 性能を引き出すためのインフラの仕組み
感想

物理的なサーバーの仕組み、内部構成から始まり、OSカーネルやプロセス、スレッドがどういう関係なのか、どうやって処理が渡されているのかがとてもわかりやすかったです。図が豊富なので初学者が最初に読むのにぴったりだと思いました。 また、階層ごとの冗長化についての解説が丁寧だったのがよかったです。

絵で見てわかるOS/ストレージ/ネットワーク

概要

データベースにおけるデータのI/O(入出力)、ハードディスクやメモリの役割/動作に重点を置き、インフラ技術を図を用いて解説した本。

目次
  • 第1部 OS - プロセス/メモリの制御からパフォーマンス情報の見方まで
  • 第1章 DBサーバーにおけるOSの役割
  • 第2章 システムの動きがよくわかる超メモリ入門
  • 第3章 より深く理解するための上級者向けOS内部講座
  • 第2部 ストレージ - DBMSから見たストレージ技術の基礎と応用
  • 第4章 アーキテクチャから学ぶストレージの基本と使い方
  • 第5章 ディスクを考慮した設計とパフォーマンス分析
  • 第3部 ネットワーク - 利用する側が知っておくべき通信の知識
  • 第6章 ネットワーク基礎の基礎 - 通信の仕組みと待ち行列
  • 第7章 システムの性能にも影響するネットワーク通信の仕組みと理論
  • 第8章 現場で生かせる性能問題解決とトラブルシューティングの王道
  • APPENDIX OracleデータベースはOS/ストレージ/ネットワークをこう使っている
感想

インフラをデータベース側から捉えてどのように連携・処理しているかを追いながら解説されているので、サーバーサイドの知識をベースに読めて、とっつきやすかったです。また、プログラムを書いているだけだとなかなかイメージしにくいコアの部分が知れるのも面白かったです。

インフラ設計のセオリー

概要

著者が、現場実務から得た知見をもとに、要件をわかりやすくまとめたインフラ上流工程の実務入門書。要件定義から可用性、性能・拡張、運用保守、セキュリティまで、設計の全体像を分かりやすく工程別に解説している本。

目次
  • 序章 システムインフラについて
  • 第1章 インフラ構築の流れ(設計の前にI)
  • 第2章 インフラの要件定義と非機能要求(設計の前にII)
  • 第3章 要件定義から設計へ
  • 第4章 可用性設計のセオリー
  • 第5章 性能・拡張性設計のセオリー
  • 第6章 運用・保守性設計のセオリー
  • 第7章 セキュリティ設計のセオリー
  • 付録 商用システムに置けるシステム構成の変遷
感想

“設計”がそもそも何をするものなのか、非機能要件をどうやって解決するのかなど、上流工程をあまりやったことがない私でも説明が丁寧でわかりやすかったです。 冗長性、拡張性、可用性を考慮した設計の手法など、インフラ設計をする上で考慮すべき基本的な考え方が学べる本でした。

ネットワーク

ネットワークはなぜつながるのか

概要

ブラウザにURLを入力してからWebページが表示されるまでの道筋をたどりながら、その裏側で働くTCP/IP、LAN、光ファイバなどの技術を説明している本。

目次
  • 第1章 Webブラウザがメッセージを作る
  • 第2章 TCP/IPのデータを電気信号にして送る
  • 第3章 ケーブルの先はLAN機器だった
  • 第4章 アクセス回線を通ってインターネットの内部へ
  • 第5章 サーバー側のLANには何がある
  • 第6章 Webサーバーに到着し、応答データがWebブラウザに戻る
感想

WEBブラウザでリクエストを投げてレスポンスが返り、画面に表示するまでの処理の流れを追って説明されているので、なぜその処理をするのかがわかりやすく、ネットワーク初心者でも読みやすかったです。今までよくわからなかったネットワークの基礎知識、流れが初めて腑に落ちたので読んで良かったです。

マスタリングTCP/IP 入門編

概要

インターネット接続のための標準プロトコルであるTCP/IPについて基礎から解説した本。

目次
  • 第1章 ネットワーク基礎知識
  • 第2章 TCP/IP基礎知識
  • 第3章 データリンク
  • 第4章 IPプロトコル
  • 第5章 IPに関連する技術
  • 第6章 TCPとUDP
  • 第7章 ルーティングプロトコル(経路制御プロトコル)
  • 第8章 アプリケーションプロトコル
  • 第9章 セキュリティ
感想

専門用語が多くて(当たり前ですが)、最初はハードルが高かったです。一度読もうとして挫折したので、前述の「ネットワークはなぜつながるのか」を読んでから再読しました。読み終わった後はTCP/IPの仕組み、ルーターやスイッチなどに対する理解が深まり、ネットワークって面白いなと思うようになりました。

セキュリティ

図解まるわかり セキュリティの仕組み

概要

セキュリティの基礎知識や攻撃・対策方法について幅広く解説した本。

目次
  • 第1章 セキュリティの基本的な考え方〜分解して考える〜
  • 第2章 ネットワークを狙った攻撃〜招かれざる訪問者〜
  • 第3章 ウイルスとスパイウェア〜感染からパンデミックへ〜
  • 第4章 脆弱性への対応〜不備を狙った攻撃〜
  • 第5章 暗号/署名/証明書とは〜秘密を守る技術〜
  • 第6章 組織的な対応〜環境の変化に対応する〜
  • 第7章 セキュリティ関連の法律・ルールなど〜知らなかったでは済まされない〜
感想

セキュリティ全般について広く解説されているので入門にぴったりでした。 セキュリティの基本的な考え方、人的要因で漏洩が起きる理由・リスク対策が特に勉強になりました。また、最後に脆弱性の原因となるのは技術的要因ではなく"人"によるものだという観点を初めて知れて面白かったです。

監視

入門監視

概要

システムをどのように監視すべきか、監視をどのように改善していくべきかを解説し、強力な監視の基盤を設計・実装するための方法を示している本。

目次
  • 第Ⅰ部 監視の原則
  • 1章 監視のアンチパターン
  • 2章 監視のデザインパターン
  • 3章 アラート、オンコール、インシデント管理
  • 4章 統計入門
  • 第Ⅱ部 監視戦略
  • 5章 ビジネスを監視する
  • 6章 フロントエンド監視
  • 7章 アプリケーション監視
  • 8章 サーバ監視
  • 9章 ネットワーク監視
  • 10章 セキュリティ監視
  • 11章 監視アセスメントの実行
感想

監視の基本的な考え方、アンチパターン、ベストプラクティスが学べるのが良かったです。 ただ、監視をやったことがない状態で読んだので噛み砕けない部分も多かったです(対象読者はすでに監視の経験がある方だと思います)。実務経験を積んだあとにまた読み直したいと思いました。

その他

Infrastructure as Code

概要

Infrastructure as Codeの原則と考え方を説明し、次にダイナミックインフラストラクチャプラットフォーム、インフラストラクチャ定義ツール、サーバ構成ツール、インフラストラクチャサービスの4つにカテゴライズして解説している本。特定のツールに縛られることなくInfrastructure as Codeを適切に実現することを目指す。

目次
  • 第Ⅰ部 基礎
  • 1章 課題と原則
  • 2章 ダイナミックインフラストラクチャプラットフォーム
  • 3章 インフラストラクチャ定義ツール
  • 4章 サーバー構成ツール
  • 5章 主要なインフラストラクチャサービス
  • 第II部 パターン
  • 6章 サーバーのプロビジョニングのパターン
  • 7章 サーバーテンプレート管理のパターン
  • 8章 サーバーのアップデート/変更のパターン
  • 9章 インフラストラクチャ定義のパターン
  • 第Ⅲ部 プラクティス
  • 10章 インフラストラクチャのためのソフトウェア工学プラクティス
  • 11章 インフラストラクチャ変更のテスト
  • 12章 インフラストラクチャの変更管理パイプライン
  • 13章 インフラストラクチャチームのワークフロー
  • 14章 継続性とダイナミックインフラストラクチャ
  • 15章 Infrastructure as Codeのための組織
感想

IaCにおける考え方、CI/CD、DevOpsのメリットがわかりやすかったです。IaCを取り入れる上でのベストプラクティスや大きな変更ではなく小さな変更を繰り返すことのメリット(小さな変更だとバグが見つけやすい、改善しやすいなど)が印象的でした。

Raspberry Pi で学ぶコンピュータアーキテクチャ

概要

Raspberry Piを題材にコンピュータの「仕組み」、コンピュータサイエンスの基本を学べる本。

目次
  • 1章 驚くべきコンピュータの姿
  • 2章 速習:コンピュータが動く仕組み
  • 3章 メモリ
  • 4章 ARMプロセッサとSoC
  • 5章 プログラミング
  • 6章 不揮発性ストレージ
  • 7章 有線イーサネットと無線イーサネット
  • 8章 オペレーティングシステム
  • 9章 ビデオコーデックと動画圧縮
  • 10章 3Dグラフィックス
  • 11章 オーディオ
  • 12章 入出力
感想

こちらはインフラというよりは、コンピューター内部の勉強がしたいと思って読みました。 技術面に加えて歴史的な背景の解説も多く、"なぜそうなったのか"が分かるのが良かったです。また、ハード面だけでなく、プログラミングや開発手法にも言及されており、プログラム実行時の内部の挙動やキャッシュの技術、スクラム、TDD、CI、ペアプロなどのアジャイルの手法の話が面白かったです。

最後に

私と同じように「インフラの勉強したいけどどうしよう」と思ってる方の参考になれば幸いです。 噛み砕けていない部分もたくさんあるので、これから経験を積んでいく中でまた読み直して知識を深めていきたいと思います。

以上、大阪オフィスのYuiでした(`・ω・´)