「未経験からいきなりAWS」時代のインフラ勉強術

スタイルズ（弊社）は、AWSのパートナーとかもしていて、システムインフラは、ほとんど、AWSが主になっています。
インフラチームに配属される新入社員も、配属されたとたんにAWSを業務にすることが多くなっています。昔のように、オンプレをじっくり勉強して、Linux、ストレージ、ネットワークを学んでから、クラウドに進んでいくということはなくなりました。それはそれで別に良いと思っています。
しかし、最初からAWSを学ぶといっても、やはりインフラ全般の基礎知識は必要なわけで、AWSで業務しながらでも最低限、ここまでは知らないと。。。ということがあるはずです。
そのあたりをちょっとまとめてみました。


##３階層型システムのインフラ全体像をざっくり抑える

<a href="https://www.amazon.co.jp/%E7%B5%B5%E3%81%A7%E8%A6%8B%E3%81%A6%E3%82%8F%E3%81%8B%E3%82%8BIT%E3%82%A4%E3%83%B3%E3%83%95%E3%83%A9%E3%81%AE%E4%BB%95%E7%B5%84%E3%81%BF-%E6%96%B0%E8%A3%85%E7%89%88-%E5%B1%B1%E5%B4%8E-%E6%B3%B0%E5%8F%B2/dp/4798158461/ref=as_li_ss_il?_encoding=UTF8&qid=&sr=&linkCode=li3&tag=interofficeco-22&linkId=52150d0919548f1ff4d27b2dabe8b4ea&language=ja_JP" target="_blank"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=4798158461&Format=_SL250_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=interofficeco-22&language=ja_JP" ></a><img src="https://ir-jp.amazon-adsystem.com/e/ir?t=interofficeco-22&language=ja_JP&l=li3&o=9&a=4798158461" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />

表紙を見るとすごく簡単そうに見えるんですが、実は内容がかなり深くて、読み応えのあります。「探索アルゴリズム」とかはなんで出てくるんだろうという感じはありますが、「キャッシュ」「I/Oサイズ」「冗長化」「ボトルネック」あたりの中堅でも朝得ておきたいことがしっかり解説されています。


- 第１章　インフラアーキテクチャーを見てみよう
- 第２章　サーバーを開けてみよう
- 第３章　３階層型システムを見てみよう
- 第４章　インフラを支える理論の基本
- 第５章　インフラを支える理論の応用
- 第６章　システムをつなぐネットワークの仕組み
- 第７章　止めないためのインフラ作り
- 第８章　性能を引き出すためのインフラの仕組み


##なぜWebシステムは動いているのかということを理解する

<a href="https://www.amazon.co.jp/%E3%80%8C%E3%83%97%E3%83%AD%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AEWeb%E6%8A%80%E8%A1%93%E5%85%A5%E9%96%80%E3%80%8D-%E2%80%95%E2%80%95%E3%81%AA%E3%81%9C%E3%80%81%E3%81%82%E3%81%AA%E3%81%9F%E3%81%AFWeb%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%82%92%E9%96%8B%E7%99%BA%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%81%AE%E3%81%8B-%E5%B0%8F%E6%A3%AE-%E8%A3%95%E4%BB%8B/dp/4774142352/ref=as_li_ss_il?s=books&ie=UTF8&qid=1458616836&sr=1-2&keywords=%E3%83%97%E3%83%AD+Web&linkCode=li3&tag=interofficeco-22&linkId=87b970fbc5603e975d44b5020886d880&language=ja_JP" target="_blank"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=4774142352&Format=_SL250_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=interofficeco-22&language=ja_JP" ></a><img src="https://ir-jp.amazon-adsystem.com/e/ir?t=interofficeco-22&language=ja_JP&l=li3&o=9&a=4774142352" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />

多くの人は、Webシステムのプログラムを開発したり、AWSでその基盤を作ったり、またはその両方を同時に担当したりするわけですが、まず、その「大きな流れ」を「ざっくりと理解する」必要があると思います。この本は１０年前に出版されているわけで、例えば最新のフロントエンドのことが書かれているわけでは全然ないが、ブラウザとサーバーサイドの間で、どんなやり取りがされて、Webシステムが動いているかという原理原則については、今でも「良書」だと思います。

- はじめに
- LESSON 0 はじめに
- LESSON 1 「Webアプリケーション」とは何か
- LESSON 2 Webはどのように発展したか
- LESSON 3 HTTPを知る
- LESSON 4 CGIからWebアプリケーションへ
- LESSON 5 Webアプリケーションの構成要素
- LESSON 6 Webアプリケーションを効率よく開発するための仕組み
- LESSON 7 セキュリティを確保するための仕組み
- LESSON 8 おわりに
- LESSON 9 付録


##インフラをコードとして書くこと

<a href="https://www.amazon.co.jp/dp/4873117968/ref=as_li_ss_il?ie=UTF8&linkCode=li3&tag=interofficeco-22&linkId=b0dd1f2de936a6d86d563a66edb20a4f&language=ja_JP" target="_blank"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=4873117968&Format=_SL250_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=interofficeco-22&language=ja_JP" ></a><img src="https://ir-jp.amazon-adsystem.com/e/ir?t=interofficeco-22&language=ja_JP&l=li3&o=9&a=4873117968" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />

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

##パフォーマンスの勘所

パフォーマンスは一朝一夕で獲得できる技術ではないですが、この本で考え方の指針はまなべると思います

<a href="https://www.amazon.co.jp/dp/4798134600/ref=as_li_ss_il?ie=UTF8&linkCode=li3&tag=interofficeco-22&linkId=e00d5b6e8446ae9d3c67ac8d65b7475a&language=ja_JP" target="_blank"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=4798134600&Format=_SL250_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=interofficeco-22&language=ja_JP" ></a><img src="https://ir-jp.amazon-adsystem.com/e/ir?t=interofficeco-22&language=ja_JP&l=li3&o=9&a=4798134600" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />

- 1章 パフォーマンスの基本的な考え方
- 2章 パフォーマンスの分析の基本
- 3章 実システムのパフォーマンス分析
- 4章 パフォーマンスチューニング
- 5章 パフォーマンステスト
- 6章 仮想化環境におけるパフォーマンス
- 7章 クラウド環境におけるパフォーマンス

##システムを監視する

システムを構築することと、きちんと動いているかを監視するのは別のノウハウなので。

<a href="https://www.amazon.co.jp/dp/4873118646/ref=as_li_ss_il?ie=UTF8&linkCode=li3&tag=interofficeco-22&linkId=51a6961439fcb7fa9357abdc28cf44aa&language=ja_JP" target="_blank"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=4873118646&Format=_SL250_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=interofficeco-22&language=ja_JP" ></a><img src="https://ir-jp.amazon-adsystem.com/e/ir?t=interofficeco-22&language=ja_JP&l=li3&o=9&a=4873118646" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />

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

以上です。