舘岡さん(@iara)さんに、Amazon Web Services 実践入門を頂きました。ありがとうございます!!
早速読んでみましたが、実践入門という名前に違わず入門なのに実践的という内容にまとまっていました。その辺りは、著者陣の経験の深さがにじみ出ています。著者陣は、舘岡さんを筆頭に、今井さん、永淵さん、間瀬さん、三浦さん、柳瀬さんとAWS界隈のスーパースターたちです。それぞれの所属する会社は、日本で5社しかないAWSのプレミアパートナー、従来の情報システム部の常識をスーパーのパックの刺身のツマほどの価値しか認めず常に大胆かつ合理的な方法でAWSを利用し周囲を驚かせるハンズラボ、オンラインによる名刺管理という業界を作りリーダーとして君臨するSansanの中の人とAWSを知り尽くした人々によって書かれています。
Amazon Web Services 実践入門が実践的な理由
本書で取り扱っているサービスは、EC2,Route53,VPC,S3,CloudFront,RDS,ELB,CloudWatch,IAM,Billingとそれほど多いとは言えません。しかし、AWSを有効に活用するには、まず押さえておく必要のあるサービスです。それを、概念的なところから実際の使い方、ハマりどころや注意点、場合によってはパフォーマンス・チューニングまで取り扱っています。読んでいて、そうそうと頷く部分が多かったです。
例えば、Route53の紹介の部分。月100円以下でDNSを運用できるという夢のようなサービスですが、よく勘違いされるのがDNSのキャッシュ機能です。DNSには、権威サーバとキャッシュサーバの機能があり、BINDにはこの2つの機能を併せもちます。Route53はこのうち権威サーバの機能しか持ちません。その辺り、DNSというのはどういうもので、どこに使えばよいのかとか背景からちゃんと説明されています。また、内部DNSとしての使い方までかなりのページを割いて説明しているのが良いですね。
執筆陣が苦労したのだろうなと垣間見れるところ
私もAWSの本を出したことありますが、AWS本を書くのはかなり大変です。サービスの進化が早過ぎるため、書いている途中に書いていることが古くなるためです。はじめにの部分で取り上げらていますが、日本語コンソールに変わったり、出来なかったことが機能のアップデートや新サービスで出来るようになったりです。またコンソールのUIも微妙に変わることが多々あるので、画面キャプチャの陳腐化リスクもあります。その辺り配慮して、コマンドラインでAWSを操作するCLIについても併記しているのだと思います。CLIのコマンドや結果も含めると誌面を専有するので、構成等大変だったのではと思います。
ちなみに最近のアップデートで、既に内容が変わっているところもありました。P137の1つの拠点(グローバルIP)からVPCに複数VPN接続というコラムに、IP辺りのVPC接続数は1つというのがあります。先日のアップデートで、この制限がなくなっています。きっと、1ヶ月もしないうちに増刷されて、その際には修正されることでしょう。ということで、みんな買いましょうw
感想
安心して人にお勧めできる、とっても良い本だと思います。私も社内のメンバーに読むように勧めています。初心者にとって役に立つことも間違いないですし、AWSの経験のある人にとっても新たな気付きは沢山あります。私もなるほどこんな考え方なのだと非常に参考になりました。とりあえず私は、この本持って著者の一人一人にサイン貰いに行こうと思います。
あと個人的に気になってたことがあります。私が出したAWS本の客観的な真実は、現在出ているAWS本で一番分厚いということです。紹介するときも、名前覚えられないのでそう紹介していますが、今回の本が出てどうでしょう?ということで較べてみました。
まだAWSの一番分厚い本と名乗っても大丈夫なようです
Amazon Web Services実践入門 (WEB+DB PRESS plus)
- 作者: 舘岡守,今井智明,永淵恭子,間瀬哲也,三浦悟,柳瀬任章
- 出版社/メーカー: 技術評論社
- 発売日: 2015/11/02
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
Amazon Web Services パターン別構築・運用ガイド 一番大切な知識と技術が身につく
- 作者: NRIネットコム株式会社,佐々木拓郎,林晋一郎,小西秀和,佐藤瞬
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2015/03/25
- メディア: Kindle版
- この商品を含むブログを見る
以下、詳細の目次です。項目見てるだけでも、実践的な内容が伝わってきますね。
第1章 AWSの基本知識
1.1 AWS(Amazon Web Services)の概要
AWSの特徴
豊富なサービス
柔軟なリソース
従量課金
1.2 AWSを支える概念と本書で扱うサービス
AWSを支える概念
リージョン
アベイラビリティゾーン
エッジロケーション
本書で扱うサービス
1.3 AWSへのサインアップ
サインアップの流れ
マネジメントコンソールの起動
1.4 まとめ第2章 仮想サーバの作成(EC2基本編)
2.1 Amazon EC2(Elastic Compute Cloud)の概要
EC2とは
インスタンスタイプとは
[コラム]T2インスタンスの特徴
AMI(Amazon Machine Image)とは
AMIの種類
AMIの仮想化形式
EC2のストレージ
EBS(Elastic Block Store)
インスタンスストア
2.2 EC2の起動
キーペアの作成
セキュリティグループの作成
仮想サーバの起動
AMIの選択
インスタンスタイプの選択
インスタンスの詳細設定
ストレージの追加
インスタンスのタグ付け
セキュリティグループの設定
インスタンス作成の確認
既存キーペアの選択/新規作成
EIP(Elastic IP Address)の取得と付与
EIPの取得
インスタンスへの付与
2.3 EC2への接続
キーペアを使ったSSH接続
*nixのターミナル経由の場合
WindowsのTeraTerm経由の場合
Windowsインスタンスからの接続
2.4 アプリケーションのインストール
nginxのインストール
MySQLのインストール
Webアプリケーションの配置
2.5 EC2の停止/削除/再起動(マネジメントコンソール)
EC2の停止/削除/再起動
インスタンス停止の際に起こること
インスタンス停止時のEBS、EIPの挙動
2.6 AWS CLIによる操作
AWS CLIのインストールとセットアップ
AWS CLIのインストール
AWS CLIのセットアップ
キーペアの作成
セキュリティグループの作成
EC2の起動
EIPの取得と付与
EC2の停止/削除/再起動
EC2の停止
EC2の削除
EC2の再起動
EC2インスタンスのバックアップ取得
2.7 まとめ第3章 仮想サーバの強化(EC2応用編)
3.1 バックアップの作成
インスタンスからのAMIの作成
AMIの作成
作成されたAMIの一覧
EBSのスナップショット
EBSボリュームの一覧
EBSボリュームのスナップショットの作成
作成されたEBSスナップショットの一覧
スナップショットからの復元
EC2へのタグ付け
3.2 スケールアップ
インスタンスタイプの変更
EBS-Backedインスタンスの場合
Instance Store-Backedインスタンスの場合
3.3 ディスク容量の追加
ボリュームの追加
ルートボリュームの容量の追加
追加ボリュームの容量の追加
3.4 I/Oの高速化
EC2のストレージ
プロビジョンドIOPSの設定
AMI作成時
インスタンス起動時
EBSボリューム作成時
EBS最適化オプション
RAID
ボリュームの暖機
インスタンスストアの利用
ベンチマークの計測
3.5 セキュリティの向上
セキュリティグループの設定
EBSの暗号化
セキュリティ強化のための機能
IAM(Identity and Access Management)
VPC(Virtual Private Cloud)
CloudHSM(Cloud Hardware Security Module)
サードパーティのセキュリティツール
3.6 管理の効率化
Linuxの効率的な管理(cloud-init)
AWSのアプリケーション管理サービス
Elastic Beanstalk
OpsWorks
CloudFormation
3つのアプリケーション管理サービスの比較
サードパーティの管理自動化ツール
3.7 まとめ第4章 DNSの設定と公開(Route53)
4.1 Route 53の概要
Route 53とは
Route 53における重要概念
Hosted Zone
Record Set
Routing Policy
Set ID
ヘルスチェック
主な機能
レイテンシベースルーティング(Latency Based Routing、LBR)
重み付けラウンロビン(Weighted Round Robin、WRR)
DNSフェイルオーバー
Geo Routing
各種AWSサービスとの連携
4.2 Route 53の基本操作
Hosted Zoneの作成
マネージメントコンソールの場合
AWS CLIの場合
Record Setの作成
サポートされているレコードタイプ
既存DNSサーバのゾーンファイルの移行
ゾーンファイルの移行(マネジメントコンソール)
ゾーンファイルの移行(AWS CLI)
Record Setの登録(マネジメントコンソール)
Record Setの登録(AWS CLI)
4.3 DNSフェイルオーバー
ヘルスチェックの設定
マネジメントコンソールの場合
AWS CLIの場合
DNSフェイルオーバーの設定
マネジメントコンソールの場合
AWS CLIの場合
DNSフェイルオーバーの確認
4.4 Route 53の利用停止
Record Setの削除
マネージメントコンソールの場合
AWS CLIの場合
Hosted Zoneの削除
マネージメントコンソールの場合
AWS CLIの場合
4.5 VPCの内部DNSとしての利用
マネージメントコンソールの場合
AWS CLIの場合
4.6 まとめ第5章 ネットワークの設計と設定(VPC)
5.1 Amazon VPC(Virtual Private Cloud)の概要
VPCとは
仮想プライベートネットワーク
仮想ネットワークの設計
デフォルトVPC
5.2 VPCの作成
VPCの作成
マネジメントコンソールの場合
AWS CLIの場合
サブネットの作成
マネジメントコンソールの場合
AWS CLIの場合
DHCPの設定
ネットワークACLの設定
デフォルトのネットワークACL設定
Webサーバを公開する場合のネットワークACL設定
インターネットゲートウェイの作成
マネジメントコンソールの場合
AWS CLIの場合
VPCへのアタッチ
マネジメントコンソールの場合
AWS CLIの場合
ルーティングの設定
マネジメントコンソールの場合
5.3 インターネットVPNによるVPCとの接続
CGW(Customer GateWay)の作成
マネジメントコンソールの場合
AWS CLIの場合
VGW(Virtual GateWay)の作成
マネジメントコンソールの場合
AWS CLIの場合(VGWの作成)
AWS CLIの場合(VGWのVPCへのアタッチ)
VPN接続の作成
マネジメントコンソールの場合
AWS CLIの場合
インターネットVPNへのルーティング設定
5.4 VPC同士の接続
VPCピアリングとは
[コラム]NATインスタンス
VPCピアリングの作成
マネジメントコンソールの場合
AWS CLIの場合
[コラム]1つの拠点(グローバルIPアドレス)からVPCに複数VPN接続
5.5 まとめ第6章 画像の配信(S3/CloudFront)
6.1 Amazon S3(Simple Storage Service)の概要
S3とは
S3の特徴
99.999999999%の耐久性
セキュリティ対策
ライフサイクル管理機能
制限事項
アクセス制限
6.2 S3の基本操作
バケットの作成
マネジメントコンソールの場合
AWS CLIの場合
オブジェクトのアップロード
マネジメントコンソールの場合
AWS CLIの場合
[コラム]フォルダ? プレフィックス?
プレフィックスを用いたフィルタ方法(マネジメントコンソール)
アクセス制限の設定
マネジメントコンソールの場合
AWS CLIの場合
バケットポリシーの設定
マネジメントコンソールの場合
AWS CLIの場合
6.3 EC2からのデータ移行
静的コンテンツをディレクトリごとに移行
Movable Typeの静的コンテンツのS3への移行
6.4 移行したコンテンツの公開
独自ドメインの静的ウェブサイトホスティングの設定
マネジメントコンソールの場合
AWS CLIの場合
6.5 アクセスログの取得
アクセスログ取得の設定
マネジメントコンソールの場合
AWS CLIの場合
6.6 CloudFrontによる配信の高速化
CloudFrontとは
S3とCloudFrontの連携
マネジメントコンソールの場合
AWS CLIの場合
6.7 S3のコンテンツ配信以外での利用
ログファイルの保存
logrotateによるローテートされたログをS3にアーカイブ
FluentdでログをS3に定期的にアップロード
ライフサイクルの設定
マネジメントコンソールの場合
AWS CLIの場合
まとめ第7章 DBの運用(RDS)
7.1 Amazon RDS(Relational Database Service)の概要
利用可能なエンジン
リージョンとアベイラビリティゾーン
各種設定グループ
7.2 DBインスタンスの起動と接続
RDS用セキュリティグループの作成
DBパラメータグループの作成
マネジメントコンソールの場合
AWS CLIの場合
DBオプショングループの作成
マネジメントコンソールの場合
AWS CLIの場合
DBサブネットグループの作成
マネジメントコンソールの場合
AWS CLIの場合
DBインスタンスの起動
マネジメントコンソールの場合
AWS CLIの場合
クライアントからRDSインスタンスへの接続
7.3 既存のDBからのデータ移行7.4 RDSの設定(マネジメントコンソール)
セキュリティグループの設定
DBパラメータグループの設定
DBオプショングループの設定
タイムゾーンの設定
7.5 RDSインスタンスの操作
RDSインスタンスタイプの変更
マネジメントコンソールの場合
AWS CLIの場合
RDSインスタンスの再起動
マネジメントコンソールの場合
AWS CLIの場合
RDSインスタンスの削除
マネジメントコンソールの場合
AWS CLIの場合
7.6 DBの冗長化
マルチAZ配置の作成(マネジメントコンソール)
リードレプリカの作成
マネジメントコンソールの場合
AWS CLIの場合
リードレプリカのマスタへの昇格
マネジメントコンソールの場合
AWS CLIの場合
7.7 I/Oの高速化
プロビジョンドIOPSとは
プロビジョンドIOPSの作成(マネジメントコンソール)
7.8 バックアップ
スナップショットの作成
マネジメントコンソールの場合
AWS CLIの場合
リージョン間スナップショットのコピー
マネジメントコンソールの場合
AWS CLIの場合
スナップショットの復元
マネジメントコンソールの場合
AWS CLIの場合
特定時点への復元
マネジメントコンソールの場合
AWS CLIの場合
自動バックアップ(マネジメントコンソール)
7.9 RDSの運用
DBのアップグレード(マネジメントコンソール)
DBログの確認
マネジメントコンソールの場合
AWS CLIの場合
7.10 本番リリースに向けて
メンテナンスウィンドウ
7.11 まとめ第8章 Webサーバの負荷分散(ELB)
8.1 ELB(Elastic Load Balancing)の概要
ELBとは
スケールアウトとロードバランシング
ELBの特徴
リージョンごとの構成
アベイラビリティゾーンをまたがる構成
ELB自身のスケールアウト/スケールイン
安全性の確保
名前解決
EC2インスタンスのヘルスチェック
8.2 ELBの作成
ELBの作成(マネジメントコンソール)
ロードバランサーの定義
セキュリティグループの割り当て
セキュリティ設定の構成
ヘルスチェックの設定
EC2インスタンスの追加
タグの追加
設定の確認
ELBの削除
ELBの作成(AWS CLI)
ELBの作成
ELBのヘルスチェック設定
ELB動作モードの設定
EC2インスタンスの登録/除外
ELBの削除
[コラム]その他のELB関連コマンド
ELB情報の見方
8.3 ELBの設定変更
マネジメントコンソールによる設定変更
ELBへのEC2インスタンス登録と除外
SSL Terminationの使用
SSL証明書の運用
AWS CLIによる設定変更
SSL Terminationリスナーの追加
SSLサーバ証明書の割り当てとHTTPSのリスナーの追加
HTTPSリスナーのSSLサーバ証明書の変更
作成済みリスナーの削除
既存のSSLサーバ証明書の削除
8.4 Webサーバとの連携
Keep Aliveの設定
ELBのヘルスチェック
クライアント情報の取得(クライアントIPアドレス、接続先ポート)
Cookieによる維持設定
8.5 ELB運用のポイント
カスタムドメインを使用するときの注意点
暖機運転
アイドルセッション
ELBアクセスログの取得
8.6 まとめ第9章 モニタリングとWebサーバのスケーリング(CloudWatch/Auto Scaling)
9.1 AWSにおけるモニタリングとスケーリングの概要
CloudWatch
Auto Scaling
9.2 CloudWatchとAuto Scalingの利用
CloudWatchへのアクセス
EC2の場合
RDSの場合
Auto ScalingとCloudWatchの組み合わせ
起動設定
Auto Scalingグループ
スケーリングポリシー
CloudWatchアラーム
9.3 Auto Scalingの作成(マネジメントコンソール)
起動設定の作成
Auto Scalingグループの設定
Auto Scalingグループの設定内容
スケールアウト/スケールインの設定
スケーリングポリシーの設定
SNS通知の設定
タグの設定
設定の確認
9.4 Auto Scalingの運用(マネジメントコンソール)
Auto Scalingの動作確認
Auto Scalingの削除
CloudWatchアラームの削除
Auto Scalingグループの削除
起動設定の削除
運用におけるその他の注意点
アプリケーションをデプロイするときの注意点
ログファイルの取り扱い
[コラム]LifeCycleHookの利用
9.5 Auto Scalingの作成と削除(AWS CLI)
起動設定の作成
Auto Scalingグループの作成
スケーリングポリシーの作成
CloudWatchのアラームの登録
イベントの通知設定
設定の削除
イベント通知設定の削除
CloudWatchアラームの削除
Auto Scalingグループの削除
起動設定の削除
[コラム]Auto Scaling関連のその他のコマンド
9.6 その他のAuto Scalingの運用
スケジュールアクションの設定
スタンバイの設定
EC2インスタンスのスタンバイ設定
スタンバイから実行中に切り戻す
デタッチ/アタッチの設定
デタッチの設定
アタッチの設定
9.6 まとめ第10章 アクセス権限の管理(IAM)
10.1 IAM(Identity and Access Management)の概要
IAMとは
10.2 IAMユーザとIAMグループの作成
IAMユーザの作成
グループの作成
グループへのユーザ追加
10.3 IAM権限の管理
権限の種類
ユーザベースの権限
リソースベースの権限
ポリシー
Action
Effect
Resource
AWS管理ポリシー
AWS Policy Generatorの利用
AWS Policy Generatorの選択
ステートメントの追加
ポリシーの生成
10.4 サインイン
パスワードポリシーの設定
パスワードの設定
IAMユーザのサインイン
MFAの有効化
[コラム]CloudTrail
10.5 APIアクセス権限の管理
アクセスキーの設定
10.6 ロールの管理
ロールの作成
EC2インスタンスへのロール付与
ロールによるAWS CLIの利用
[コラム]そのほかのIAM機能
10.7 まとめ第11章 ビリング(Billing)
11.1 料金の考え方
AWSの料金の基本
データ転送量課金モデルの例
従量課金モデル料金の種別
オンデマンドインスタンス
リザーブドインスタンス
[コラム]リザーブドインスタンスの売買
スポットインスタンス
ボリュームディスカウント
11.2 請求
請求レポートの取得
一括請求(Consolidated Billing)
11.3 料金確認/料金試算ツール
請求とコスト管理(マネジメントコンソール)
Trusted Advisor(マネジメントコンソール)
Salesforce
Which Instance?
Cloudability
Simple Monthly Calculator
AWS Total Cost of Ownership(TCO) Calculator
11.5 サポートとフォーラム
AWSサポート
AWS Forums
JAWS-UG
E-JAWS
契約と公開情報
11.5 まとめ
See Also:
「Amazon Web Services パターン別構築・運用ガイド」の執筆環境
「Amazon Web Services パターン別構築・運用ガイド」の目次
AWSパターン別本の狙い。例えばAutoScalingを使えるように。「Amazon Web Services パターン別構築・運用ガイド」の裏話
『Amazon Web Services パターン別構築・運用ガイド』を書きました
「Amazon Web Services パターン別構築・運用ガイド」の増刷決定&正誤表リストのGitHub管理
『Rubyによるクローラー開発技法』を書きました
本を書く前に準備したこと、執筆中にしていたこと
上級者向けの技術書が少ない理由