WEB+DB PRESS plusシリーズAmazon Web Services実践入門

[表紙]Amazon Web Services実践入門

紙版発売
電子版発売

A5判/368ページ

定価2,838円(本体2,580円+税10%)

ISBN 978-4-7741-7673-4

電子版

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

本書は世界最大のクラウドサービスであるAWS(Amazon Web Services)上でWebサービスを運用するために必要なポイントをまとめた実践的な解説書です。AWS上でサービスを利用するために設定手順や必要なノウハウ,日々の運用/管理を円滑に行うために必要なポイント,トラブルにも対処できるようにするための設計や運用監視,また従量課金モデルであるAWSでいかにコストを抑えるかなど,AWSを利用してWebサービスを提供していくための現場のノウハウがギュッと詰まっています。

こんな方におすすめ

  • AWSの導入を考えている人
  • AWSをより効果的に運用したいと考えているエンジニア

本書に関するお知らせ

本書に関連する記事を公開しております。

この書籍に関連する記事があります!

Amazon Web Servicesのことを知ってみよう!
Amazon Web Services(以下AWS)はAmazon.comによって提供されている,Web経由で利用可能な世界最大級のクラウドコンピューティングプラットフォーム(以下クラウド)です。
はじめに
本書は,Amazon Web Services(以下AWS)の入門書として執筆しました。

目次

第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 まとめ

著者プロフィール

舘岡守(たておかまもる)

バイク好きが高じてバイク便をやっていたこともあるインフラエンジニア。現在はAWS専業のSIerに勤務し,日々お客様の課題を解決するために走り回っている。本書5章と7章を担当。
Twitter:@iara


今井智明(いまいともあき)

SIerから㈱東急ハンズに転職して,オンプレミスデータセンターからAWSへの移行に取り組む。現在は,ハンズラボ㈱に所属して,AWSとiOSを用いたPOSの開発に取り組んでいる。本書1章と2章を担当。
Twitter:@NowTom


永淵恭子(ながふちきょうこ)

通称ぎょり。自称「クラウドゆとり代表」としてCloud Integratorに勤務し,営業に従事。お客様の課題をクラウドへの愛と勇気で解決しようと日々奔走中。本書11章を担当。
Twitter:@Nagafuchik


間瀬哲也(ませてつや)

個人向け名刺管理アプリのインフラを担当。少ないチーム人数をカバーするためにAWSを活用中。社内では口うるさい小舅的立ち位置。本書4章と6章を担当。
Twitter:@matetsu


三浦悟(みうらさとる)

cloudpackにてAWSを利用したサービスの設計や構築を行う。社内ツールの作成なども担当。本書3章と10章を担当。
Twitter:@memorycraft


柳瀬任章(やなせひであき)

オンプレミス環境のインフラエンジニアとしてキャリアをスタートさせるが,クラウドの登場を機に2008年頃からAWSの導入支援,環境構築といったことに取り組む。現在は,エンジニアとしての幅を広げるためにAWS上に構築された自社サービスの開発者として働いている。本書8章と9章を担当。
Twitter:@oko_chang