サーバー構築経験が少ないアプリエンジニアにも安心!イチから分かるクラウド入門
サーバー構築経験が少ないアプリエンジニアにも安心! イチから分かるクラウド入門!
クラウドサービスの普及により、業務システム開発においても「クラウドファースト」と呼ばれる開発スタイルの採用が増えてきました。本書は、クラウドサービスの最大手「Amazon Web Services(AWS)」を使って、クラウドでのシステム開発手法を説明する入門書です。
一言にAWSと言っても、提供されるサービスが多岐にわたり、どこから手をつけてよいか分からない、という声もよく聞きます。本書では、クラウドに最適化されたアーキテクチャではなく、レガシーアーキテクチャを採用し、業務システムで広く使われているJavaによるWebシステムを構築する手順を紹介することで、AWSを初めて利用する人へのハードルを低くしています。
AWSの基本的な考え方や操作方法に十分に慣れたところで、クラウドネイティブなアーキテクチャでシステムを構築し、無理のないクラウド化を進めていただくことが狙いです。
1章 クラウドの役割
1.1 システム基盤と従来インフラの問題点
1.1.1 システム基盤とは
1.1.2 データセンター保有の問題点
1.2 クラウドシステムとは
1.2.1 クラウドのサービス体系
1.2.2 クラウドは万能か?
1.3 主要なクラウドサービス
1.3.1 Amazon Web Services
1.3.2 Microsoft Azure
1.3.3 IBM SoftLayer / Bluemix
1.3.4 Google Cloud Platform
1.3.5 さくらのクラウド
1.3.6 ニフティクラウド
1.4 クラウドサービスの活用例
1.4.1 ビッグデータ
1.4.2 業務システムでのクラウド活用
1.4.3 モバイルアプリのバックエンド機能
1.4.4 ディザスタリカバリシステム
2章 AWSの基本とアカウント登録
2.1 Amazon Web Servicesのサービス
2.1.1 コンピューティング関連のサービス
2.1.2 ストレージ&コンテンツ配信関連のサービス
2.1.3 データベース関連のサービス
2.1.4 ネットワーク関連のサービス
2.1.5 その他のサービス
2.2 AWSクラウドデザインパターン
2.2.1 Multi-Serverパターン(サーバー冗長化)
2.2.2 Scale Upパターン(サーバーの増強)
2.2.3 DB Replicationパターン(データベース複製)
2.2.4 Functional Firewallパターン(階層別アクセス)
2.3 AWSのデータセンター
2.3.1 リージョン
2.3.2 アベイラビリティゾーン(AZ)
2.4 AWSアカウント登録と利用開始
2.4.1 AWSアカウントの登録
2.4.2 AWSの課金と無料利用枠
2.5 AWSの開発ツール
2.5.1 AWSマネージメントコンソール
2.5.2 AWSコマンドラインインターフェイス(CLI)
2.5.3 ソフトウェア開発キット(SDK)
2.5.4 統合開発環境(IDE)のプラグイン
3章 Webサーバーの構築
3.1 WebのしくみとHTTP通信の基本
3.1.1 Webアプリとは
3.1.2 Webサーバーへのリクエストとレスポンス
3.1.3 WebサーバーへのアクセスとURLの書式
3.1.4 IPアドレスとドメイン名
3.1.5 HTTP通信のしくみ
3.2 S3を使ったWebサイトの構築
3.2.1 Amazon Simple Storage Service(Amazon S3)とは
3.2.2 S3の基本用語
3.2.3 S3を使ったWebサイト構築
3.3 EC2を使ったWebサーバー構築
3.3.1 Amazon Elastic Compute Cloud(Amazon EC2)とは
3.3.2 EC2の基本用語
3.3.3 EC2インスタンスの起動
3.3.4 EC2インスタンスの状態確認
3.3.5 Webサーバーのインストール
3.3.6 Webコンテンツのアップロードと動作確認
3.3.7 EC2インスタンスの開始/停止/再起動/削除
3.4 ELBを使った負荷分散
3.4.1 カスタムAMIによるEC2インスタンスの生成
3.4.2 ELBによる負荷分散システム構築
3.4.3 ELBの動作確認
3.5 Elastic IPを使った独自ドメインでのサイト運用
3.5.1 固定IPアドレス(Elastic IP)の割り当て
3.5.2 Route 53によるDNSサーバー設定
3.6 CloudFrontを使ったデータ配信
3.6.1 CloudFrontとは
3.6.2 CloudFrontを使ったWebコンテンツ配信
4章 Webアプリケーションサーバーの構築
4.1 Webアプリのアーキテクチャーの基本
4.1.1 Webシステムアーキテクチャー
4.1.2 AWSでのWebシステムアーキテクチャー
4.2 アプリ開発環境の構築
4.2.1 統合開発環境
4.2.2 EclipseのインストールとAWS Toolkitの設定
4.2.3 AWS Toolkitの設定
4.3 MySQLによるデータベースサーバー構築
4.3.1 Amazon Relational Database Service(RDS)とは
4.3.2 セキュリティグループの作成
4.3.3 パラメータグループの作成
4.3.4 RDSのインスタンス生成
4.3.5 データの登録(AWS Toolkitでの実行)
4.3.6 データの登録(MySQLコマンドラインでのSQL実行)
4.4 TomcatによるWebアプリケーションサーバー構築
4.4.1 Apache Tomcatとは?
4.4.2 セキュリティグループの作成
4.4.3 EC2のインスタンス起動
4.4.4 Apache Tomcatのインストール
4.4.5 JDBCドライバーのインストール
4.4.6 Webアプリのデプロイ
4.4.7 Tomcat 8の起動
4.4.8 Webアプリの動作確認
4.4.9 Webアプリケーションサーバー用AMIの作成
5章 ネットワークの構築
5.1 ネットワークの基礎技術
5.1.1 ネットワークアドレス
5.1.2 ネットワークプロトコル
5.1.3 ファイアーウォールとルーター
5.2 セキュリティグループによるパケットフィルタリング
5.2.1 セキュリティグループとは
5.2.2 セキュリティポリシーの検討
5.2.3 EC2セキュリティグループの修正手順
5.2.4 RDSセキュリティグループの修正手順
5.2.5 セキュリティ設定の動作確認
5.3 VPCによる仮想ネットワーク構築
5.3.1 Amazon VPCとは
5.3.2 ネットワーク構成の検討
5.3.3 仮想ネットワーク(VPC)の作成
5.3.4 仮想ルーター(インターネットゲートウェイ)の作成
5.3.5 ファイアーウォール(セキュリティグループ)の作成
5.3.6 サーバー(インスタンス)の作成
5.3.7 ロードバランサーの作成
5.3.8 メンテナンスのためのネットワーク構成
5.3.9 メンテナンス環境の動作確認
6章 AWSのセキュリティ
6.1 セキュリティの基礎
6.1.1 セキュリティとは
6.1.2 物理的なセキュリティ対策
6.1.3 アカウント管理
6.1.4 データの暗号化
6.1.5 ユーザー教育
6.1.6 セキュリティ監査
6.1.7 AWSの共有責任モデル
6.2 IAMによるユーザーアカウント管理
6.2.1 IAMとは
6.2.2 AWSのユーザーアカウント
6.2.3 多要素認証(MFA)の設定
6.2.4 IAMアカウントの作成
6.2.5 IAMグループの作成
6.2.6 パスワードポリシーの設定
6.3 データの暗号化
6.3.1 EC2インスタンスへのSSH接続
6.3.2 S3のデータ暗号化
6.3.3 RDSのデータ暗号化
7章 システム運用
7.1 システム運用の基礎
7.1.1 キャパシティ管理
7.1.2 可用性管理
7.1.3 構成管理/変更管理
7.1.4 サービス運用
7.2 CloudWatchによる監視
7.2.1 CloudWatchとは
7.2.2 EC2インスタンスのリアルタイム監視
7.3 CloudFormationによる構成管理
7.3.1 CloudFormationとは
7.3.2 WordPress環境の自動構成
7.4 データのバックアップとリストア
7.4.1 EC2のデータバックアップとリストア
7.4.2 RDSのデータバックアップとリストア
7.5 課金管理
8章 Dockerコンテナー実行環境の構築
8.1 Dockerとは
8.1.1 Dockerとは
8.1.2 仮想化技術とは
8.1.3 Dockerの機能
8.2 Dockerのインストール
8.2.1 Dockerの提供するコンポーネント
8.2.2 Windowsクライアントへのインストール
8.2.3 Dockerで""Hello world""
8.3 Dockerイメージの作成
8.3.1 Dockerfileとは
8.3.2 Dockerfileの作成
8.3.3 DockerfileからのDockerイメージの作成
8.4 Dockerイメージの公開
8.4.1 Docker Hubのアカウント登録
8.4.2 Dockerイメージの公開
8.5 AWSでのDockerコンテナー実行
8.5.1 EC2を使う方法
8.5.2 ECSを使う方法
8.5.3 Elastic Beanstalkを使う方法
8.6 EC2でのDocker実行環境の構築
8.6.1 EC2へのDockerインストール
8.6.2 Dockerコンテナーの実行
8.6.3 Dockerコンテナーの基本操作
8.7 EC2 Container ServiceによるDocker実行環境の構築
8.7.1 EC2 Container Serviceとは
8.7.2 Dockerクラスタの構築
8.7.3 Dockerクラスタの運用