クラウド・アーキテクチャの設計と解析 分散システムの基礎から大規模データストアまで

概 要

Google App Engineを主要題材にクラウド・システムを支えるアーキテクチャについて、その設計思想と実装について踏み込んだ解説書です。本書では、米国NISTの定義をベースにクラウド・コンピューティングとはどのようなものかを理解し、クラウドシステムのアーキテクチャについて実績ある分散システムをベースに解説。その後、クラウドシステムの大きな特徴である「分散キー・バリュー・ストア(分散KVS)」という従来のRDBとはまったく異なるデータ構造について解説しています。salesforce.com、Amazon EC2/S3、Google App Engine、Windows Azureなど話題のクラウド・コンピューティングに関わるすべてのエンジニアに必読の一冊です。

著者 清野克行
価格 本体2200円(税別)
ISBN 978-4-7980-2714-2
発売日 2010/8/24
判型 A5
色数 1色
ページ数 256
CD/DVD
対象読者 中級
シリーズ
表紙イメージ
購入 アマゾンで購入する
楽天で購入する

※リンク先によっては、販売ページが用意されていないことがあります。あらかじめご了承ください。

新しいウィンドウで開く 書籍購入のご案内

サポート

サポート情報は以下からご参照下さい。

サポート情報へのリンク

目次

Part1 クラウド・コンピューティングの基礎知識

Chapter1 クラウド・コンピューティングの定義

1.1 クラウド・コンピューティングの由来

1.2 クラウド・コンピューティングの定義

1.2.1 NISTをベースとしたクラウド・コンピューティングの定義

1.2.2 クラウド・コンピューティングの主な5つの特徴

1.2.3 クラウド・コンピューティングのサービスモデル

1.2.4 配置モデル

Chapter2 クラウド・コンピューティングの主要プレイヤーと機能概要

2.1 クラウドの歴史

2.2 Salesforce.com―SaaS型

2.2.1 機能概要と特徴

2.2.2 セキュリティ対応

2.3 Amazon Web Services―IaaS型

2.3.1 機能概要と特徴

2.3.2 Amazon EC2(Amazon Elastic Compute Cloud)

2.3.3 Amazon S3(Amazon Simple Storage Service)

2.4 Google App Engine

2.4.1 Google App Engineとは

2.4.2 GAEを使用するメリット

2.4.3 GAEのモジュール構成

2.4.4 セキュリティ対応

2.5 Windows Azure

2.5.1 機能概要と特徴

2.5.2 Windows Azure Platformの機能構成

2.6 クラウド・コンピューティングのメリット

2.6.1 コストメリット

Chapter3 Webシステムの発達とクラウド・コンピューティング

3.1 ネットワーク・コンピューティング

3.2 ユーティリティ・コンピューティング

3.3 グリッド・コンピューティング

3.4 仮想化

3.5 DCE/RPC

3.5.1 クラウドでの分散システム構成

3.5.2 DCE/RPC

Part2 クラウドを構成する分散アーキテクチャ

Chapter4 クラウドを実現するハードウェア

4.1 データセンターと配置

4.2 コンテナ型データセンター

4.3 PUE(電力使用効率)

4.4 スケールアップとスケールアウト

4.5 障害対策とRASIS

Chapter5 分散システムの基本構成

5.1 DCEの分散システムとクラウドの分散システム

5.2 分散システムの基本構成

5.3 リクエストディスパッチャ

5.3.1 リクエストディスパッチャの構成

5.3.2 リクエストディスパッチャを使用した処理手順

5.4 レジストリとサーバアドミニストレータ

5.4.1 レジストリとサーバアドミニストレータの追加構成

5.4.2 クライアントからのサーバアクセス手順

5.4.3 アドミニストレータの機能

5.5 サーバ起動時の分散システム

5.5.1 サーバ起動時の処理

5.5.2 クライアント・サーバを含めた構成

5.6 Google App Engineでの分散システム

Chapter6 分散システムの内部ロジック

6.1 クライアント側の内部ロジック

6.2 RPCのテクノロジー:スタブとスケルトン

6.3 RPCのテクノロジー:IDL定義とIDLコンパイラ

6.3.1 スタブ・スケルトンの生成手順

6.3.2 IDL定義ファイルの内容

6.3.3 大規模システムでのIDL定義モジュール構成

6.3.4 IDLコンパイラの具体例

6.4 スタブとスケルトンの詳細

6.4.1 クライアント・サーバ通信とスタブ・スケルトン

6.4.2 クライアント側処理内容

6.4.3 Google App Engineでの送信データシリアライズ

6.4.4 クライアント・サーバ通信のまとめ

6.4.5 サーバ側処理内容

Chapter7 クライアント・サーバ構成の拡張

7.1 分散システムの接続形態

7.1.1 直列接続

7.1.2 並列接続

7.2 大規模分散システム構成

7.3 Google App Engineでの例

7.3.1 キー・バリュー・データのソート処理(MapReduce)

Chapter8 分散システムの大規模化・多重化

8.1 サーバの多重化の目的

8.2 複数ディスパッチャでの可用性向上

8.2.1 サーバ起動時の処理

8.2.2 クライアントからの問い合わせ時の処理

8.3 ディスパッチャの多階層化

8.3.1 ディスパッチャの多階層化とメリット

8.3.2 ディスパッチャ起動時の処理

8.3.3 サーバ起動時の処理

8.3.4 サーバアドレス要求時の処理と高可用性

8.4 分散システム拡張統合時

8.5 多階層ディスパッチャの全体像

Part3 クラウドを実現するフロントエンドとバックエンド

Chapter9 Webサーバ・アプリケーションサーバのスケールアウト

9.1 エリアとアドレス体系の対応

9.2 Webシステムと分散システムの統合

9.2.1 分散システムへのCGIプログラム取り込み

9.2.2 CGIプログラムの機能構成

9.2.3 Webフロントの大規模分散システム

Chapter10 分散キー・バリュー・ストア

10.1 RDBでの限界

10.2 キー・バリュー・ストア

10.3 分散KVSの可用性(フォールトトレランス)

10.4 データの永続化とタブレットサーバ

10.5 データボリューム増加時の対応

10.6 分散システム構成とクラウドシステム

Chapter11 大規模分散システムデータストアの限界と定理

11.1 CAP定理

11.1.1 CAP定理とは

11.1.2 CAP定理の検証

11.2 BASE理論(制約)

11.2.1 BASE理論とは

11.2.2 BASE理論の検証

Chapter12 Google App Engine KVSのプログラム検証

12.1 GAEのデータストア概要

12.1.1 Bigtableの基本データ構造

12.1.2 tabletへのアクセス

12.2 プログラミング環境

12.3 KVSの特徴:スキーマレスデータストア

12.3.1 画面イメージ

12.3.2 プロジェクト構成の比較

12.3.3 データクラスの定義

12.3.4 JDOでの永続化処理

12.3.5 Low-Level APIでの永続化処理

12.4 同一kind(≒テーブル)でプロパティ項目を変更して永続化

12.5 プロパティ項目の変更と更新

12.6 異なるプロパティ項目を含むエンティティの全件検索

12.7 コレクションプロパティを含むエンティティの永続化

12.7.1 キー・バリュー・ストアのシリアライズとプロトコルバッファ

12.7.2 コレクションプロパティを含むエンティティの登録

12.7.3 コレクションプロパティを含むエンティティの参照

Chapter13 GAEのデータストア構造と条件検索への対応

13.1 エンティティテーブルとプロトコルバッファ

13.2 GAEのデータストアを構成するテーブル

13.3 Entities table

13.4 EntitiesByKind

13.5 EntitiesByProperty ASCプロパティの昇順で取得する際に使用

13.5 EntitiesByProperty DESCプロパティの降順で取得する際に使用

13.6 EntitiesByCompositeProperty

13.7 Custom indexes table

13.8 Id sequences table

Chapter14 データストア書き込みサイクルとトランザクション処理

14.1 データストアの書き込みサイクル

14.2 所有・被所有関係とトランザクション処理

PR

秀和システム