本書の概要
インフラエンジニアという言葉がひろく一般に使われるようになったのは、ここ数年のことでしょうか。
一般的な言葉として使われるようになった一方で、「インフラエンジニアが何をやっているのか」ということは、意外と知られていません。
技術的なことは、ネットワークやサーバの解説書を読めばわかります。しかし、インフラエンジニアが、現場でどのような仕事をしているのか、どういう技術が必要なのか、といった情報があまり知られていないな……ということから本書の企画がはじまりました。
「単なる技術書ではない、インフラエンジニアの仕事を支える現場の知識を多くのインフラエンジニア志望者に伝えたい」
これが、本書のコンセプトです。
これからインフラエンジニアを目指そう、あるいはインフラエンジニアになってしまったけど、自分の知識はこれでいいのだろうかと思っている方にも、ぜひ読んででいただきたいと思います。
まえがき
第0章.はじめに
0.1 本書の読み方
0.1.1 本書のターゲット
0.1.2 本書の構成
0.2 インフラエンジニアとは
0.2.1 本書で扱うインフラの範囲
0.2.2 インフラエンジニアの役割と業務の目的
コラム:スペシャリストとエキスパート、そしてゼネラリスト
第1章 インフラ技術の基礎知識
1.1 ネットワークとプロトコル
1.1.1 OSI参照モデルとTCP/IPの階層モデル
1.2 IPプロトコルの役割
1.2.1 IPアドレスとプロトコル
1.2.2 サブネットでネットワークを分割する
1.2.3 特別なIPアドレス
1.2.4 ルーティング
1.2.5 IPv4とIPv6
1.3 ポートとプロトコル
コラム:TCPとUDP
1.4 ドメイン名とDNS
1.4.1 ドメイン名
1.4.2 ドメイン名の種類
コラム:そうはいっても”独自ドメイン”
1.4.3 DNSの仕組み
コラム:DNSの使い方も進化している
1.5 Webサービスのインフラ構成
1.5.1 ロケーションをどこにするか?
1.5.2 ネットワークをどこから引いてくるか?
1.5.3 ハードウェアをどうするか?
1.5.4 OSを何にするか?
1.5.5 ミドルウェアとアプリケーション実行環境
コラム:ミドルウェアのトレンドと移り変わり
第2章 インフラの変遷と特徴
2.1 インフラサービス以前のサービス構築
2.1.1 インフラサービスが登場する前
コラム:データセンターに預けても……
2.1.2 オンプレミスで情報システムを構成する
2.1.3 インフラサービスの登場と利用するメリット
2.1.4 インフラサービスの種類
2.2 VPSを利用してシステムを作る
2.2.1 VPSの特徴
2.2.2 VPSを実現する仮想化技術
2.2.3 VPSを利用した複数台構成
2.2.4 VPSの用途、および注意点
2.2.5 ハイパーバイザー型仮想化とコンテナ型仮想化
コラム:VPS事業者はVPSをどのように作っているのか
2.2.6 VPS事業者を選択するときのポイント
2.3 クラウドを利用してシステムを作る
2.3.1 クラウドとは?
2.3.2 ソフトウェアを提供するSaaS
2.3.3 社内の情報系サービスをSaaSを利用して外に出す
コラム:SaaSでのコラボレーションで気をつけたいこと
2.3.4 SaaSを利用する上での注意点
コラム:2段階認証とは?
2.4 プラットフォームを提供するPaaS
2.4.1 PaaSのメリット
2.4.2 PaaSを利用する上での注意点
コラム:PaaSは提供元に振り回される面もある
2.4.3 システムの機能を提供するようになったPaaS
2.4.4 どのようなPaaSがあるのか
2.4.2 PaaSを利用する上での注意点
コラム:自分のサーバの上でPaaSを作る
2.5 インフラを提供するIaaS
2.5.1 IaaSとは?
コラム:自分が構築したサーバの設定を利用する
2.5.2 IaaSが利用しやすいシーン
2.5.3 従量課金は料金の把握が難しい
コラム:クラウド破産を防ぐには
2.5.4 ネットワークと複数台構成
2.5.5 冗長構成とリージョンとゾーン
コラム:システムに耐障害性を持たせる
2.5.6 IaaSに付属するサービス
2.5.7 プライベートクラウドとパブリッククラウド
2.5.8 IaaSでシステムを汲むときの注意点
2.6 専用サーバとベアメタル
2.6.1 専用サーバのメリット
コラム:データベースサーバの増強
2.6.2 専用サーバのデメリット
2.6.3 専用サーバの復権「ベアメタル」
2.6.4 専用サーバ/ベアメタルの利用シーン
コラム:長期的にみるとベアメタルはコストパフォマンスがよい
第3章 システムの検討から構築まで
3.1 システム構築の流れ
3.1.1 要件定義・提案フェーズ
コラム:落とし穴に注意!
コラム:目的別に切り分けてみる
3.1.2 設計フェーズ
3.1.3 構築フェーズ
コラム:設計・構築から運用への引き継ぎ
3.2 可用性
3.2.1 物理的な冗長構成を理解する
3.2.2 ネットワークの冗長化
3.2.3 フロント部分の冗長化
3.2.4 Webサイトの同時接続数の予測
3.2.5 冗長構成を取るためのWebアーキテクチャの変遷
3.3 セキュリティ対応を理解する
3.3.1 ファイアウォール
3.3.2 IDS/IPS
3.3.3 WAF
3.3.4 VLAN
3.3.5 通信経路の暗号化
3.3.6 SSLアクセラレーションを理解する
3.3.7 Webサーバのセキュリティ
3.3.8 データベースのセキュリティ
3.3.9 メールサーバのセキュリティ
3.4 システム構成例
3.4.1 比較的小規模なWebサービス構成
3.4.2 大規模サイトの場合
3.4.3 ゲーム用のシステムの場合
3.4.4 基幹システムの場合
コラム:基幹システムでVPNを使う場合の注意
第4章 運用体制の構築から障害対応、予防運用まで
4.1 運用とは
4.1.1 運用フェーズに入る前に考慮すべきこと
4.1.2 運用設計
コラム:どう考えても無理……な場合
4.2 運用体制の構築
4.2.1 構築担当者との構成共有
4.2.2 監視項目の決定とその設定
コラム:ハードウェアベンダーの管理ツール
コラム:監視間隔の適正値は?
4.2.3 案件共有、対応ドキュメント作成
コラム:決まった対応は自動化がおすすめ
コラム:新人エンジニアにこそ手順書作成を!
4.3 テストとリリース
4.3.1 テストの実施
4.3.2 ストレステスト
コラム:シナリオ作成時に考慮すること
4.3.3 障害対応テスト
コラム:ボンディング切り替えテスト
4.3.4 リリース前テスト・移行テスト
4.3.5 リリース
4.4 監視と障害対応
4.4.1 ケース1:Webサイトが閲覧できない
4.4.2 ケース2:メールの送受信ができない
コラム:DNSが仇となる!?
4.5 予防運用
4.5.1 障害予兆検知
4.5.2 性能劣化監視と定期性能評価
コラム:意味ある監視になっていますか?
4.5.3 脆弱性情報収集・対応
4.6 メンテナンス
4.6.1 活性メンテナンスと非活性メンテナンス
4.6.2 計画メンテナンスと緊急メンテナンス
コラム:お客様のいうことは%信じてはいけない!?
4.6.3 活性メンテナンスへのアプローチ
4.6.4 メンテナンス方針
4.6.5 最後に
第5章 インフラエンジニアのためのセキュリティ入門
5.1 コンピュータセキュリティインシデントとは
5.1.1 インシデントレスポンスの必要性
5.2 インシデントの種類と傾向
5.2.1 スキャン
5.2.2 Dos攻撃
5.2.3 Web改ざん
5.2.4 フィッシング
5.2.5 標的型攻撃
5.3 インシデントが発生する要因と対策
5.3.1 外部公開しているサーバにおけるインシデント
コラム:CMSやそのテーマ、プラグインの脆弱性にも注意!
5.3.2 内部ネットワークにおけるインシデント
5.3.3 インシデントとその発生要因、対策
5.4 クラウドでのセキュリティ
5.4.1 クラウドを利用する上でのセキュリティ
5.4.2 クラウドにおける責任の分担
5.5 運用中のシステムの脆弱性対応
5.5.1 システム構成を把握する
5.5.2 信頼できる情報源を把握する
5.5.3 脆弱性情報への対応
5.6 定期的な健康診断の必要性
5.6.1 異常なイベントに気がつくためには
5.6.2 システムのセキュリティ診断
5.6.3 セルフ脆弱性診断を活用するには.
5.6.4 まとめ
コラム:インシデント対応マニュアル
第6章 DevOps時代に求められるスキル
6.1 インフラエンジニアを取り巻く環境
6.1.1 クラウド登場以前- 手作業を主体としていた時代
6.1.2 クラウド登場以後- インフラ構成管理の概念が普及
コラム:障害注入テスト
6.1.3 現在- スピード感あるシステム開発・運用を支える
6.2 Infrastructure as Code(コードとしてのインフラ)
6.2.1 Infrastructure as codeとは
6.2.2 Infrastructure as codeに関連するツールのレイヤー分類
コラム:JSONを手軽に取り扱う
6.2.3 Infrastructure as Codeへの移行パス
6.2.4 Infrastructure as Codeへの移行事例
6.3 システム開発における3つのプラクティス
6.3.1 バージョン管理
コラム:機密情報の取り扱い
6.3.2 テスティング
6.3.3 プロジェクトの自動化
6.4 DevOpsを支えるプラクティスツール
6.4.1 継続的デリバリー
6.4.2 時代に即したデプロイメント手法
コラム:アプリケーションレイヤーでのImmutable
6.4.3 開発から運用に至るまでのフローをサポート
コラム:DevOpsを支えるツール群
6.4.4 ワークフローの改善
第7章 おわりに
7.1 インフラエンジニアに必要な力
7.1.1 コミュニケーション力
7.1.2 仮説を作る力
7.1.3 改善力(+コードを書く力)
7.2 インフラエンジニア生存戦略(キャリアパス)
7.2.1 イノベーター理論的立ち位置
7.2.2 エンジニア組織内での立ち位置
7.2.3 インフラエンジニア以外の立ち位置
7.2.4 立ち位置によらない大事なこと
索引
著者紹介
お問い合わせ
本書に関するお問い合わせは、下記のボタンをクリックしてお問い合わせフォームよりお問い合わせください。