大書:Webサービスを提供をするにあたっての、コンピュータ、ネットワークなどの基盤とよばれている検討から、設計、実装、導入後のチューニングの方法までを扱っています。
前半は、基盤技術の基礎の解説、後半は、監視・モニタリングから、ボトルネックの調査、解析と、チューニング方法がのべられています。
要点・項目のみかいつまんで
■基盤設計
・Webシステム構築の対象
コロケーション(データセンター、空調など)、ネットワーク、ハードウエア、OS、ミドルウエア、アプリ実行環境、アプリ
・工程 要件定義⇒設計⇒調達⇒構築⇒運用
・インフラ要素技術
OS,サーバ、ストレージ、データセンター、ドメイン、DNS,ネットワーク機器、ネットワーク技術、SSL証明書
・非機能要件
可用性、性能・拡張性、運用・保守性、移行性、セキュリティ、システム環境
・新体制 RAS 信頼性、可用性、保守性
・サービス稼働率の向上 ホットスタンバイ、コールドスタンバイ
Active-Active,Active-Standby(Hot Standby,Warm Standby,Cold Standby)
大規模災害対策 DL:ディザスタリカバリー
・プロビジョニング
スケールアップ 性能向上
スケールアウト サーバの台数をふやす
■基礎知識
・ネットワーク IPアドレス、ドメイン、ルーティング、NAT,プロトコル、ファイアーウォール、スイッチ
・サーバ CPU、コア数、スレッド数、メモリ、
・ディスク SATA,SAS,RAID(0,1,5,6,10,50,60) HDD,SSD,PCIexpress
・データ ACID 電子性、一貫性、独立性、永続性、ロック・排他、バッファ、キャッシュ
暗号化
・冗長性 Master/Slave フェールオーバクラスタリング
■サーバ構成
・APサーバ、Webサーバ、DBサーバの配置
・ロードバランシング(ラウンドロビンと最小コネクション)
・仮想化、クラウド(AWS,GCPetc)
■運用
・システム監視 障害監視、リソースモニタリング、ファイアウォールログ解析
■チューニング 推測するな計測せよ
・キャパシティプラニング、ボトルネックアプローチ、システムリソースの確認、処理能力の向上、負荷の軽減、データ転送量の軽減、CPU利用率の軽減、等
目次は以下です。
#1 Webサービスにおけるインフラの役割
#1-01 Webサービス構築に関係するインフラ領域の全体像
#1-02 インフラの要件定義から運用までのフローの注意点
#1-03 インフラ設計の際の注意点
#1-04 RASを検討する
#2 インフラ技術の基礎知識
#2-01 インターネットという巨大ネットワーク
#2-02 インターネットごしにデータを届ける・受け取るしくみ
#2-03 URLを分解してみる
#2-04 プロトコルの裏側を覗いてみる
#2-05 ネットワークセキュリティの話
#2-06 インフラ要素のスペックの読み方と選び方
#2-07 性能とデータに関する基礎知識
#2-08 冗長化の仕組み
#2-09 暗号化とハッシュ化
#3 Webサービスのサーバ構成ベストプラクティス
#3-01 基本的な構成
#3-02 負荷分散(ロードバランシング)の 基礎知識
#4 インフラ手配の基礎知識
#4-01 インフラ手配の際、まず何を決める?
#4-02 インターネット回線のキャパシティ計算
#4-03 サーバ台数のキャパシティ計算
#4-04 利用する基盤の選定
#4-05 構築が終わったら確認すべきこと
#4-06 バックアップ
#5 Webサービスの運用(1) システム監視の基本
#5-01 システム監視概論
#5-02 システム監視実装
#5-03 いざ障害が発生したときの障害対応方法
#5-04 大障害のときの心構え
#5-05 日々起きる障害の管理と振り返り
#6 Webサービスの運用(2) ステータスモニタリング
#6-01 ステータスモニタリングの基礎知識
#6-02 ステータスモニタリングデータの読み方(OS)
#6-03 ステータスモニタリングデータの読み方(MySQL)
#6-04 リアルタイムモニタリングのしかた
#6-05 トラブル対応で使うモニタリングツール
#7 Webサービスのチューニング(1) ボトルネックの見つけ方
#7-01 キャパシティの考え方とキャパシティ向上
#7-02 システムチューニングの鉄則
#7-03 ボトルネックの見つけ方(基礎編)
#7-04 ボトルネックの見つけ方(ログ編)
#7-05 ボトルネックの見つけ方(サーバリソース編)
#7-06 ボトルネックの見つけ方(アプリケーションコード編)
#8 Webサービスのチューニング(2) チューニングレシピ
#8-01 ポイント別チューニングレシピ
#8-02 SQLチューニングでの高速化
#8-03 システム構成変更でのボトルネック対策の基礎
#8-04 「DB」のスケールアウトの実装例
#8-05 機能分割実装例
#8-06 キャッシュ適用での高速化
おわりに
Index