Amazon Web Services パターン別構築・運用ガイド 改訂第2版

AWSの概要と導入方法がわかる

Amazon Web Serviceによるクラウドシステム構築・運用のノウハウが紹介されており、体系づけて基礎から順に学べます。システム構築にAWSの導入を考えている方、WordPressを用いたサイト公開をしたい方など、少しでもAWSに興味のある方におすすめの1冊です。

NRIネットコム株式会社 (著), 佐々木 拓郎 (著), 林 晋一郎 (著), 小西 秀和 (著), 佐藤 瞬 (著)
出版社: SBクリエイティブ (2018/3/22)、出典:出版社HP

本書に関するお問い合わせ

この度は小物をご購入いただき誠にありがとうございます。小社では本書の内容に関するご質問を受け付けております。本書を読み進めていただきます中でご不明な所がございましたらお問い合わせください。なお、お問い合わせにしましては下記のガイドラインを設けております。恐れ入りますが、ご質問の際は最初に下記ガイドラインをご確認ください。

ご質問の前に
小社Webサイトで「正話表」をご確認ください。最新の正情報をサポートページに掲載しております。

◆本書サポートページ
URL http://isbn.sbor.jp/92579/

上記ページの「正誤情報のリンクをクリックしてください。なお、正情報がない場合、リンクをクリックすることはできません。

ご質問の際の注意点
・ご質問はメール、または郵便など、必ず文書にてお願いいたします。お電話では承っておりません。
・ご質問は本書の記述に関することのみとさせていただいております。従いまして、○○ページの○○行目というように管所をはっきりお書き添えください。記述箇所が明記されていない場合、ご質問を承れないことがございます。
・小社出版物の著作権は著者に帰属いたします。従いまして、ご質問に関する目答も基本的に著者に確認の上回答いたしております。これに伴い返信は数日ないしそれ以上かかる場合がございます。あらかじめご了承ください。

ご質問送付先
ご質問については下記のいずれかの方法をご利用ください。

Webページより上記のサポートページ内にある「この商品に関する問い合わせはこちら」をクリックすると、メールフォームが開きます。要綱に従って質問内容を記入の上、送信ボタンを押してください。
郵送
郵送の場合は下記までお願いいたします。
〒106-0032
東京都港区六本木2-4-5
SBクリエイティブ 読者サポート係

■本書内に記されている会社名、商品名、製品名などは一般に各社の登録商標または商標です。本中では、TMマークは明記しておりません。
■本書の出版にあたっては正な記に努めましたが、本書の内容に基づく運用結果について、著者およびBクリエイティブ株式会社一切の責任を負いかねますのでご了承ください。

本書の内容は著作権法上の保護を受けています。著作者・出版者の文書による許諾を得ずに、本の一部または全部を無断で複写・類転載することは禁じられております。

はじめに

本書は、世界最大のクラウドであるAWSを利用して、どのようにインフラを構築するのかをテーマにした本です。AWSは26年に登場し、既に10年以上の歴史があります。10年経った今も、新機能の発表やサービスの更新が毎年のように何十・何百と行われて、むしろ進化が加速しています。またAWSが対象とする領域も、クラウド上のインスタンス・ストレージ・ネットワークのみならず、IoTと呼ばれるようなデータセンタから飛び出して我々の身の回りのものまでサービスでカバーするまでに広がっています。

そんな状況なので、初めてAWSを使おうとする人がメニューを見て沢山のサービスに圧倒されることが多くなってきています。事実2018年3月現在では、AWSのコンソールのトップレベルだけで1以上のサービスが存在しています。実際に筆者がAWSの構築を支援してきたなかでも、種類が多すぎてAWSのどのサービスを使えばよいのかわからないという声が多いのも事実です。

そこで本書では、仮想サーバであるEC2とオンラインストレージであるS3、そしてネットワークのサービスであるVPC、AWSの中心的サービスであるこの3つを徹底的に解説します。またそれに付随する沢山のサービスの使い方・使い分け、あるいはブログラムやコマンドラインからAWSを操作するためのSDK・CLIの使い方といった実用的な技能までカバーします。本書で書かれた内容を理解することにより、10年使えるAWSの基本を身につけることができます。

読者の皆さんには、オンプレミスの延長ではなく、クラウドとしてのインフラの使い方を習得されることを願います。AWSであれば、ハードウェアトラブルからも解放され、たとえ仮想サーバに障害があったとしても、自動的に復旧する手段もあります。ぜひ、システムのために利用者が24時間働くのではなく、利用者のためにシステムが24時間働くという世界を目指しましょう。

なお本書の記述は、筆者陣の個人的見解に基づいています。Amazon Web Services Inc.およびアマゾンデータサービスジャパン株式会社とは一切関係ありません。また、本書は公開された情報に基いて記述され、NDA情報に関するものは含まれていません。

佐々木拓郎

NRIネットコム株式会社 (著), 佐々木 拓郎 (著), 林 晋一郎 (著), 小西 秀和 (著), 佐藤 瞬 (著)
出版社: SBクリエイティブ (2018/3/22)、出典:出版社HP

Contents

Chapter1 AWSの基本

1-1 AWSとは
クラウドとは
・インフラストラクチャサービス(IaaS)
・プラットフォームサービス(Pass)
・アプリケーションサービス(SaaS)
物理サーバ(オンプレミス)とAWSの違い
・所有と利用
・キャパシティ設計
レンタルサーバ(共有サーバ)とAWSの違い
・レンタルサーバの利用形態
・AWSとレンタルサーバの強いプライベートクラウドとAWS.10
・一般的なパブリッククラウドとプライベートクラウドの定義
・AWSにおけるプライベートクラウドの定義AWSのサービスの全体像
・AWSの基本的な考え方
・本書で利用する主なAWSサービス

1-2 AWSのネットワークサービス
リージョンとアベイラビリティーゾーン
・リージョン
・アベイラビリティーゾーン
・Web+DBシステムのマルチAZ基本構成
Amazon Virtual Private Cloud (VPC)
・AWS Direct Connect
·EC2-ClassicとEC2-VPC
Amazon Route 53
・ドメインレジストラとしてのRoute 53
・フォールトトレラントアーキテクチャとしてのRoute 53
AWSネットワークとVPCネットワーク

1-3 ハードウェアリソースとしてのAWS
Amazon Elastic Compute Cloud (EC2)
・インスタンスとは
・インスタンスとして選択できるOSの種類
・インスタンスに適用できるインスタンスタイプ
・インスタンスストレージ
・EBS-BackedインスタンスとInstance Store-Backedインスタンス
・インスタンスの料金
・インスタンス料金の最適化
・EC2インスタンスで使用するOSのライセンスAmazon Elastic Block Store (EBS)
・EBSのボリュームタイプ
・EBSの料金・EBSのサイズ変更
・EBSの暗号化
・EC2、EBSのSLA
EC2におけるバックアップ
・AMI(Amazon Machine Image)
・EBSスナップショット
・AMIとEBSスナップショットのリージョン間コピー
・AMIとEBSスナップショットのAWSアカウント間共有
・AMIとEBSスナップショットの料金
Amazon Simple Storage Service (S3)
・S3の冗長化構成
・S3のバケットとオブジェクトの概念
・S3のストレージオプション
・S3の料金
・S3の暗号化
・S3のアクセス管理
・S3のイベント通知
・S3のSLA
・S3のWebホスティング機能
・EBSスナップショットとS3オブジェクトの違い
・S3のバージョン管理
・S3のライフサイクル設定
Amazon Glacier
・Glacierの料金
・GlacierのSLA

1-4 アプリケーション基盤としてのAWS
Amazon Relational Database Service (RDS)
・ADSとは
・ADSで利用できるデータベースエンジン
・RDSのインスタンスタイプ
・RDSの料金
・RDSのSLA
・RDSのライセンス
・RDSのバックアップ
・RDSのネットワーク
・ストレージタイプ
・RDSのログ
・パラメータグループ
・オプショングループ
・メンテナンス
・Amazon Aurora
AWS Elastic Beanstalk
・Elastic Beanstalksとは
・Elastic Beanstalkの料金
・対応言語プラットフォーム
・アプリケーションのデプロイ方法
・Docker
・環境枠(Environment Tiers)
・環境タイプ(Environment Type)
Amazon ElastiCache
・ElastiCache
・ElastiCacheがサポートしているキャッシュエンジン
・ElastiCacheのキャッシュノードタイプ
・ElastiCacheの料金
・ElastiCacheのSLA
・ElastiCacheのネットワーク
・ElastiCacheクラスタ・ノードのIPアドレスとDNS
・ElastiCacheのアクセスポート
・セキュリティグループ
・RedisのマルチAZ機能
・オートディスカバリ
・ElastiCacheクラスタークライアント
・パラメータグループ
・メンテナンス

1-5 サービスとしてのAWS
AWSのアプリケーションサービスの概念
・冗長化されたインフラ
・構築および運用が不要
SESとSQS
・Amazon Simple Email Service (SES)
・SESの制約
・Amazon Simple Queue Service (SOS)
・SOSの機能
・SOSの動作
SNSとCloudWatch
・Amazon Simple Notification Service (SNS)
・SNSの利用
・Amazon CloudWatch

1-6 AWSの利用コスト
AWSの料金体系
・AWSの料金体系
・AWSの無料枠
AWSの料金計算の仕方
・AWSの料金計算ツール
・一般的な構成での利用料金の内訳

Chapter2 AWSを利用する

2-1 AWS利用の準備AWSアカウントの作成
・アカウント作成の流れ
・AWSマネジメントコンソールへのサインイン
・MFA(Multi-Factor Authentication)の設定
・MFAデバイスの用意
・MFAの設定
・MFAを使ったサインイン
IAMユーザー(ユーザーアカウント)の作成
・IAMユーザーの追加
・IAMグループの作成
・アクセスキーの入手
・IAMポリシーの付与
・ポリシーの記述方法
・カスタマー管理ポリシーの作成
・ポリシーの付与
・IAMユーザーのポリシーを確認する
・IAMユーザーでのサインイン
・パスワードポリシーの設定

2-2 AWS CLI
CLIのインストールと設定
・macOSへのインストール
・Linux(CentOS7)へのインストール
・Windowsへのインストール
・CLIの基本設定
・設定の確認
・複数profileの設定
・設定ファイルの保存場所
CLIの基本的な使用方法
・CLIの基本的な記法
・CLIの基本的なオプション
・-region、-outputオプションによるリージョンと出力形式の指定
・-filtersオプションによる検索条件指定
・-queryオプションによる結果出力の絞り込み

2-3 AWSSDK
サポートされる言語とバージョン
SDKのインストールと設定
・AWS SDK for Rubyのインストール
・AWS SDK for PHPのインストール
・AWS SDK for JavaのインストールSDKの基本的な使用方法
・AWS認証情報と検索の優先順位
・AWS SDK for Rubyの使用方法の例
・AWS SDK for PHPの使用方法の例
・AWS SDK for Javaの使用方法の例

2-4 VPCネットワークの作成
デフォルトVPC
カスタムVPCを作成する
・リージョンの選択
・VPCネットワークの作成
・サブネットの作成
・ルートテーブルの作成
・サブネットとルートテーブルの関連付け
・インターネットゲートウェイの作成
・インターネットゲートウェイをルーティング先に指定する
・ネットワークACLとセキュリティグループの設定

2-5 仮想サーバ(EC2)の利用
AWS操作用の公開鍵・秘密鍵の作成
・AWSマネジメントコンソールからのキーペア作成
・CLIからキーペアを作成する
・AWS外部で作成した公開鍵のインポートセキュリティグループを作成する
・AWSマネジメントコンソールからのセキュリティグループ作成
・セキュリティグループのルールの設定
・CLIからセキュリティグループを作成する
・EC2を起動する
・AMIの選択
・インスタンスタイプの選択
・詳細設定
・ストレージの追加
・タグの追加
・セキュリティグループの設定
・EC2インスタンスの起動
・CLIからEC2インスタンスを起動する
・EC2インスタンスへのログイン
・HTTPサーバをインストールしてアクセスするAMIを作成する
・AWSマネジメントコンソールからAMIを作成する
・CLIからAMIを作成する
Elastic IP (EIP)の利用
・EIPの取得とEC2インスタンスへの割り当て
・CLIからEIPの取得
・EC2インスタンスへの割り当て

2-6 ELBを利用する
ELBサービスの詳細
・ELBサービスの可用性
・シングルAZ構成とマルチAZ構成(Cross Zone Load Balancing)
・External-ELBとInternal-ELB
・ヘルスチェック
・SSLターミネーション
・スティッキーセッション
・ログ取得機能
・ELBの作成
・サブネットの追加
・別のAZにEC2インスタンスを作成する
・ELB用のセキュリティグループを作成する
・ELBの作成
・CLIでの作成、アクセス分散を確認する

NRIネットコム株式会社 (著), 佐々木 拓郎 (著), 林 晋一郎 (著), 小西 秀和 (著), 佐藤 瞬 (著)
出版社: SBクリエイティブ (2018/3/22)、出典:出版社HP

Chapter3パターン別構築例
3-1EC2を利用した動的サイトの構築
WordPressを使ったブログサイトの構築
・構築するパターン
・VPCネットワークの作成・サブネットの作成
・インターネットゲートウェイの作成
・ルートテーブルの作成
・セキュリティグループの作成
・DBサブネットグループの作成
・ADSインスタンスの作成
・EC2インスタンスの起動
・ミドルウェアのインストールとセットアップ
ロードバランシングとHTTPSサイトの構築
・ロードバランシング
・HTTPSでのアクセス
Marketplaceから、構築済みのインスタンスを利用する
・AMIMOTO
・AMIMOTOの起動

3-2ElasticBeanstalkによる構築レスな動的サイトElastic Beanstalkを利用した再構築
・WordPressのダウンロード
・アプリケーションの作成
・アプリケーションへのアクセス
・Elastic Beanstalkによって作成されたインスタンス
Elastic Beanstalkを利用したロードバランシングとHTTPSサイトの構築
・ebコマンド(awsebcli)のインストール
・ebコマンドによるアプリケーションの作成
・ADS付きのアプリケーション環境の作成
・WordPressの修正
・ELB、ADS. Auto Scalingの設定変更
・アクセス確認

3-3S3による静的サイトのサーバレス構築
S3による静的サイトの構築
・静的ウェブサイトポスティングの設定
・バケットポリシーの変更
・コンテンツのアップロード
・Webサイトへのアクセス
・リダイレクトルールの編集
・S3上のファイルの操作Route53を利用してDNSを設定する
・Route53の設定Route53へのドメイン移管・移管する際の前提条件
・ドメインの移管CloudFrontとの連携
・CDN(Contents Delivery Network)
・CloudFrontの設定
・Route53との連携
・証明書の発行

3-4 Auto Scalingによる自動スケーリングシステムの構築Auto Scalingの設定
・起動設定の主な項目
Auto Scalingグループの設定
・スケーリングポリシーの設定
・定期的にAuto Scalingを実行するAuto Scalingを利用するためのアプリケーション構成
・Auto Scalingを考慮したアプリケーションのデプロイ
・Auto Scalingを考慮したアプリケーションのセッション保持
・Auto Scalingを考慮したインスタンス、アプリケーションのログの保存
Auto Scaling使用時のEC2インスタンスの初期化処理。
・EC2インスタンス起動時のユーザーデータ
・ユーザーデータを使用するうえでの注意点
・EC2インスタンスのメタデータの取得
イミュータブルインフラストラクチャ
・ステートレスとステートフル
・イミュータブルインフラストラクチャを実現する構成

3-5 Elastic BeanstalkとLambdaによるバッチサーバの構築
Elastic Beanstalkによるバッチサーバの冗長化構成
・Elastic Beanstalkのワーカーの動作構造
・ワーカーの作成
・ワーカーの動作
Lambdaによるサーバレスな処理システムの構築
・Lambdaの特徴
・Lambdaの処理の作成フルマネージドなバッチ処理基盤「AWS Batch」

3-6 CloudFormationによるテンプレートを利用した自動構築
CloudFormationの概要
・CloudFormationのイメージ..
・CloudFormationの用途
CloudFormationによるネットワーク構築
・テンプレートの構造
・ネットワークの構築
・CloudFormationによる構築
・Update Stackによるネットワークの変更
Cloud Formationによるサーバ構築
・Cloud Formationによる単純なサーバ構築
・Cloud Formationからサーバにデータを渡す仕組み
・入れ子のテンプレートを実行する。

3-7 SESによるメール送信システムの構築
SESを使ってメールを送信する
・SESの特徴
・SESの設定
・CLIでの設定
・SESのSDKを使ったメール送信
EC2インスタンスにメールサーバを構築する
・メール送信に必要な準備
・EC2インスタンスにメールサーバを構築する
・メールサーバのホスト名をDNSに登録する
・メール不正中継のテストをする
・メールの送信制限解除申請をする
外部のメール送信サービスを利用する
・SendGridとは

3-8 AWS上に開発環境を構築する
開発環境の構築と運用
・Cloud Formationの活用
・環境のコード化
・EC2インスタンスの自動起動・停止
・開発環境を構築するうえでの注意点
継続的インテグレーション(CI)を実施する
・継続的インテグレーション
・リポジトリサーバ・ビルドサーバ(Jenkins)

3-9モバイルアプリからAWS上のリソースを利用する
Cognitoによるユーザー認証
・3Tierアーキテクチャと2Tierアーキテクチャ
・サーバレスアーキテクチャによる3Tier
・Cognitoを中心としたユーザー認証とアクセス認可
・Cognitoのデータ同期機能
・CognitoのIDブールの作成
AWSのモバイル開発プラットフォーム
・Mobile SDK
・AWS Mobile SDK for iOSの環境準備とサンプルアプリ
SNSによるモバイルブッシュ通知
・SNSのモバイルプッシュ通知機能
・モバイルプッシュ通知の登録
・モバイルブッシュ用のIOSアプリの作成

Chapter4 AWSのセキュリティ
4-1AWSのセキュリティへの取り組み
責任共有モデル
第三者認証

4-2 IAM(Identity and Access Management)
AWSのアカウント
・AWSアカウント
・IAMユーザー
・多要素認証(MFA: Malti-Factor Authentication).
・JAMのポリシー
IAMユーザーとIAMグループ
・IAMユーザー
・IAMグループ
IAMロール
・IAMロールの使用例

4-3データ暗号化AWSが提供するデータ暗号化サービス・機能
・通信時の暗号化
・データの暗号化
・暗号化キーの管理サービス

4-4外部からの攻撃対策外部からの攻撃の種類と防御方法
・代表的な攻撃の種類と防御方法AWSにおける防御方法
・AWSWAF
・Shield StandardとAdvanced
Deep Security
4-5セキュリティを高める
VPCでのサブネット構成
セキュリティグループとネットワークACL
・比較単位
・サポートルール

4-6 AWSと脆弱性
診断侵入(ペネトレーション)テスト
・AWSにおける侵入テストの実施手順
侵入(ペネトレーション)テストツール
・侵入テストの実施
・継続的な侵入テストの実施
・Amazon Inspector

Chapter5管理と運用
5-1ジョブ管理
ジョブ管理システムの概念
・ジョブ管理システムの主な機能
・ジョブ管理システムの実行形
・AWS向けのジョブ管理システム
AWSのサービスを利用したジョブ管理システム.
・Step Functions
・Cloud Watch Events

5-2システムを監視する
AWSのなかから監視する
・CloudWatchでのデフォルトの監視項目
・デフォルトの監視項目以外の監視方法
・Cloud Watch Agentを作成する
・Cloud Watch Agentを設定する
・Cloud Watchを利用するうえでの注意点
AWSの外から監視する
・Zabbixによる監視
・SaaSによる監視

5-3アラートを通知するAWSの機能を利用した通知方法
・SNSを利用したEメール通知
・SNSによるEメール通知の実装
・配信先にモバイルブッシュ通知を追加する
Twilioを利用した電話通知
・SNSからAPIを呼び出す方法
・Twilioの実装
・Lambdaの設定

5-4データをバックアップする
EBSのデータバックアップ
・スナップショットの取得
・スナップショットからEBSボリュームを作成する
・スナップショットを使ったEBSの操作
S3とGlacierを使ったバックアップと管理
・S3によるバージョン管理
・S3のオブジェクトライフサイクル管理
AMIの運用方法.
・バッチ処理による定期取得
・設定変更時の手動取得
・AMIのオンライン取得

5-5 AWSにおけるログ管理
AWSのサービスログ/操作履歴のログを収集保存する
・AWSのサービスのログを収集する
・AWSの操作ログを収集する
EC2インスタンスのログを収集保存する
・準リアルタイムにログを保存する
・シャットダウン時にログを保存する
・ログの可視化

5-6 AWSにおけるコスト管理
AWSにおけるコスト管理
・コスト管理に関する設定
・一括請求
AWSのコストを節約する
・リザーブドインスタンス
・スポットインスタンス
・さまざまなサービスを活用する

5-7AWSの利用を支えるサポートの仕組み
AWSサポート
・サポートへの問い合わせ方法
・リソース制限の増加申請
AWS Trusted Advisor
・各リソースの制限値の確認

NRIネットコム株式会社 (著), 佐々木 拓郎 (著), 林 晋一郎 (著), 小西 秀和 (著), 佐藤 瞬 (著)
出版社: SBクリエイティブ (2018/3/22)、出典:出版社HP