プログラマのためのGoogle Cloud Platform入門
プログラマのためのGoogle Cloud Platform入門 サービスの全体像からクラウドネイティブアプリケーション構築まで
翔泳社
著者:中井悦司、阿佐志保
はじめに
本書を読む前に
対象読者
本書の特徴
動作確認環境
本書の表記
サンプルアプリケーションのダウンロード
目次
第1章 Google Cloud Platformの概要
1.1 Google Cloud Platformへようこそ
1.1.1 GCPがもたらすシステム アーキテクチャ
本書で扱うGCPのサービス
Google App EngineとGCPの歴史
1.1.2 GCPのコンセプト
1.2 Google Cloud Platformを支えるインフラ
1.2.1 GCPの全体像
1.2.2 ユーザーアカウントとプロジェクト
1.2.3 仮想 ネットワーク
1.3 はじめてのGoogle Cloud Platform
1.3.1 アカウント登録
[1]登録の開始
[2]アカウント情報の登録
1.3.2 プロジェクトの作成
[1]プロジェクトの作成
[2]プロジェクト名の設定
1.3.3 Cloud Consoleの使い方
[1]ツールとサービス
[2]ダッシュボード
[3]Cloud Shell
1.3.4 Google Cloud Platformの開発/運用管理ツール
アプリケーション開発ツール
デバッグ/トレース/分析ツール
ロギング/モニタリング
自動デプロイ
第2章 Webアプリケーション実行基盤を構築しよう
2.1 知っておきたいWebシステムを支える技術
2.1.1 Webアプリケーションの基礎
Webアプリケーションとネイティブアプリケーション
リクエストとレスポンス
HTTP通信の仕組み
2.1.2 データベースの基礎
データベース
データベース言語
トランザクション 処理
2.1.3 サーバ仮想化技術の基礎
ホスト型仮想化
ハイパーバイザー型仮想化
コンテナ型仮想化
2.2 Webシステムで利用する主なGCPサービス
2.2.1 Google Compute Engine(GCE)
仮想マシンのスペック
ストレージ
ネットワーク
無停止での仮想マシン運用
2.2.2 Google Cloud Storage
2.2.3 Google Cloud SQL
2.3 GCPを使ったWebシステムのアーキテクチャ
2.4 Webアプリケーションの実行基盤構築
2.4.1 要件定義とアーキテクチャ設計
GCEを使ったサンプルアプリケーション実行環境の構築(v1.0)
Cloud SQLを使ったデータの管理(v2.0)
Cloud Storageを使った画像データの保存(v3.0)
2.4.2 GCEを使ったサンプルアプリケーション実行環境の構築
GCEの仮想マシンインスタンス起動
Pythonの実行環境
サンプルアプリケーションのデプロイ(v1.0)
2.4.3 Cloud SQLを使ったデータの管理
データベースの作成
サンプルアプリケーションのデプロイ(v2.0)
2.4.4 Cloud Storageを使った画像データの保存
Cloud Storageのバケットを作成
サンプルアプリケーションのデプロイ(v3.0)
第3章 止まらないWebアプリケーション基盤を構築しよう
3.1 知っておきたいネットワーク技術
3.1.1 物理ネットワークと仮想ネットワーク
3.1.2 IPアドレス
3.1.3 ネットワークの階層と通信プロトコル
3.1.4 ファイアウォールとルーター
3.1.5 DNSの基礎
3.1.6 負荷分散の基礎
3.1.7 仮想ネットワークの基礎
物理ネットワークの基礎
仮想ネットワーク
仮想ネットワークを実現する技術
3.2 知っておきたいGCPのネットワークの仕組み
3.2.1 GCPのネットワーク構成
3.2.2 グローバルIPアドレス
3.2.3 GCPのファイヤーウォール機能
3.2.4 Cloud Load Balancingによる負荷分散機能
3.2.5 Cloud DNSによる名前解決
3.3 Cloud Load Balancingでの負荷分散システム構築
3.3.1 負荷分散システムのインフラアーキテクチャ概要
3.3.2 仮想マシン起動イメージの作成
[1]スナップショットの作成
[2]ディスクの作成
[3]イメージの作成
3.3.3 複数インスタンスの自動生成
[1]インスタンステンプレートの作成
[2]インスタンスグループの作成
3.3.4 ロードバランサの作成
[1]バックエンドの設定
[2]ホストとパスのルール
[3]フロントエンドの設定
3.3.5 動作確認
3.4 Cloud DNSを使った名前解決
3.4.1 独自ドメイン名でのアクセス
[1]ゾーンの作成
[2]レコード設定
[3]レジストラへの登録
[4]動作確認
第4章 コンテナ実行環境でマイクロサービスアーキテクチャを体験しよう
4.1 知っておきたいDocker/Kubernetesの基礎
4.1.1 Dockerを利用したアプリケーション開発
Dockerとは
Dcokerが解決する課題
Dockerの基本機能
4.1.2 Kubernetesによるコンテナオーケストレーション
クラスタリングとは
コンテナオーケストレーションツールとは
Kubernetesの基本構成
Kuberbetesによるコンテナオーケストレーション
4.2 コンテナ環境で利用する主なGCPサービス
4.2.1 Google Container Engine
4.2.2 Google Container Registry
4.2.3 Google Cloud Datastore
4.3 GCPを使ったコンテナ実行環境のアーキテクチャ
4.4 オンラインゲームのコンテナ実行環境構築
4.4.1 要件定義/設計
4.4.2 GKEによるコンテナクラスタ構築
4.4.3 ランダム対戦機能のDockerイメージ作成(v1.0)
Dockerfileの用意
Dockerイメージの作成
ローカル環境での動作確認
Dockerイメージの公開
4.4.3 ランダム対戦機能のデプロイ(v1.0)
バックエンド機能のアプリケーションデプロイ
フロントエンド機能のアプリケーションデプロイ
ランダム対戦機能の動作確認
4.4.5 AI機能へのバージョンアップ(v1.1)
AI機能のDockerイメージ作成
バックエンド機能のバージョンアップ
AI対戦機能の動作確認
4.4.6 コンテナクラスタの停止と削除
第5章 機械学習を用いたGAEアプリケーション
5.1 機械学習と関連サービスの概要
5.1.1 機械学習、ディープラーニング、人工知能
5.1.2 GCPの機械学習サービス
5.1.3 APIサービスの利用方法
JavaScriptからAPIs0-ビスを呼び出す
5.2 Google App Engine入門
5.2.1 Google App Engineの概要
5.2.2 Cloud Datastoreの概要
5.2.3 Cloud Datastoreを使用する際の注意点
5.2.4 GAEのその他の機能
5.3 写真アルバムサービスのデプロイ
5.3.1 サンプルアプリケーションの仕組み
Cloud Vision APIによる画像のラベル付け
Cloud Translation APIによるテキスト翻訳
Cloud Datastoreでのデータ管理
5.3.2 アプリケーションのデプロイ
5.3.3 動作確認
5.4 [参考]Cloud Machine Learning Engineによる機械学習モデルのトレーニング
5.4.1 事前準備
5.4.2 Cloud MLEによる学習処理の実施
5.4.3 学習済みモデルによる予測処理の実施
付録A Stackdriverによるシステム運用
A.1 Stackdriverの初期設定
A.2 Stackdriverによるアプリケーション監視
[1]監視対象インスタンスの作成
[2]監視エージェントのインストール
[3]稼働時間チェックの設定とアラートポリシーの作成
[4]監視グラフの作成
[5]ログの確認
付録B Cloud IAMによるアカウント管理
B.1 Cloud IAMの基本機能
B.2 サービスアカウントの作成
付録C GCPの最新技術情報の入手
索引
MEMO クラウドサービスの種類
MEMO プロジェクト名の決め方
MEMO gcloudコマンドのリリースレベルについて
MEMO Cloud Shellの正体
MEMO ポート番号
MEMO GCEのマシンタイプ
MEMO パッケージ管理システム
MEMO Goole Cloud Platformの内部ネットワーク構成
MEMO AWSのファイアウォール機能との違い
MEMO お名前.comでのネームサーバ設定
MEMO プロビジョニングツール
MEMO Dockerfileの書き方
MEMO YAMLフォーマットについて