この記事について
Google Cloud Platform Japan Blog では日々様々な情報が発信されています。新サービスの発表、事例紹介だけでなく、ポイントを分かりやすく説明した資料、網羅的で重厚な資料、Google の謎テクノロジーについての紹介など、役立つ情報が豊富! ただ、情報量がとてつもなく多いので、分野ごと、項目ごとに整頓して、後で目当ての記事をすぐ見つけられるようにしたいと思い、この記事を書きました。
今年は Google Cloud Platform 10 周年と節目の年。改めて記事を掘り起こしてみると、新たな発見があるかも知れません。
また、時代ごとの変遷を感じ取れる資料として、記事後半にはサービスが公開された時期を年表にしたもの、Google が公開している論文リンク集も付録として作成しました。
各分野の記事
サービス全体を俯瞰する記事
Google Cloud Platform の概要がわかる記事
Google Cloud では、多くの方に各サービスの勘所をわかりやすく紹介するために、オンラインの番組を毎週木曜に放映しています。生で見るだけでなく、後で見返すこともできます。
放映内容は後日 Google Cloud Platform Japan Blog にもアップされます。特に全体の概要がわかる放映回は次のものです。
また、数多くのサービスの概要を PDF 2 ページでまとめた資料もあります。
東京リージョンの開設
リージョンの開設も記事になることがあります。東京リージョンの開始は2016年11月8日です!
GCP の特徴、強み
他社クラウドと比較した違いや、GCP の特徴・強みについて書かれた記事です。強みとしては、ライブマイグレーションやプレウォーミングの必要のないロードバランサ、インスタンス起動時間、グローバルな SDN ベースの高速なネットワークなどについて書かれています。
- AWS に精通したユーザー向けの GCP ガイドを拡充
- 差別化と技術的競争優位の源泉となる Google Cloud Platform
- オンプレミスを利用する IT 管理者のための Google Cloud Platform ガイド
マルチクラウド
一方で、単一のクラウドだけでなく複数のクラウドを使う時代にもなってきました。その時代での対応方針について書かれたのが次の記事です。(2016年の記事なので少し古いかもしれませんが・・)
オンプレミスからの移行
移行にあたってはプロセスに従って、抜け・漏れなく手堅く進めたいです。そのためのガイドラインも提供されています。
- ホワイトペーパー : GCP へのリフト&シフト
- GCP への移行を成功に導く 5 つのフェーズ
- ソリューション ガイド : VM 移行のベスト プラクティス
- CloudEndure と共同で GCP への VM 移行サービスを無償提供
クラウドの利点を活かす
単に VM を移行するだけだとインフラの運用コストが残ったままです。マネージドサービスを活用することで運用コストを低減しつつ、開発に集中でき、スケーラビリティも手に入れることができます。その紹介がこちら。
実際に試してみる
技術は実際に手を動かして試してみないと、手にしっかり馴染まないです。まず、試してみるためのガイドが用意されています。
GCPUG
ディベロッパーコミュニティの活動も盛んです。私もお邪魔させていただき、多くのことを学ばせていただきました。最新情報や便利なオープンソースソフトウェア、組織内でどう回しているかなど、生きた知見を学べる場です。主催者の方たちは大変だと思うのですが、本当に感謝です。
- デベロッパー コミュニティ紹介シリーズ : Google Cloud Platform User Group
- デベロッパー コミュニティ紹介シリーズ : Kubernetes Meetup Tokyo
- デベロッパー コミュニティ紹介シリーズ:bq_sushi
- デベロッパー コミュニティ紹介シリーズ : TensorFlow User Group
Podcast
Podcast もあります。英語を聞く練習にもなります。。
GCP のアイコンとアーキテクチャ図
プレゼンや設計図の作成に利用できるアイコンとアーキテクチャ図のサンプルも提供されています。
事例
事例も紹介されています。いくつかピックアップさせていただきました。
- Pokémon GO の爆発的ヒットを支える Google Cloud
- 事例 : ベアメタルから GCP への移行で Sentry が学んだこと
- 株式会社メルカリの導入事例: 先端技術を手軽に活用できる Google Cloud Platform はベストな選択肢
セキュリティ
Google のセキュリティを俯瞰する記事
セキュリティに関する Google の取り組みや GCP で利用できるサービスを網羅的に俯瞰するには Cloud OnAir が便利です。
- Cloud OnAir 番組レポート :GCP で構築するセキュアなサービス、基本と最新プロダクトのご紹介
- Cloud OnAir 番組レポート : Google Cloud Platform のセキュリティ、全てお話します
セキュリティはクラウドをためらう理由ではなく、導入する理由に
アジリティと経費削減だけではなく、今やセキュリティがクラウド選定の理由となる時代です。
クラウドの安全性、Google が取得している認証
エンタープライズでの選定に耐えうるには、第三者機関による認証が欠かせません。主要な認証を取得していると書かれているのが次の記事です。
Google 内部のセキュリティ設計
Google 内部でどのようなセキュリティ設計を行なっているかが書かれた記事です。階層的、網羅的に厳重な対策が行われています。
また、カスタムチップの Titan により、ハードウェアベースの “信頼の基点”(Root of Trust)が確立されています。その紹介記事がこちら。
GCP 利用におけるセキュリティのガイドライン
GCP を利用してサービスを構築する際、自組織内のポリシーをどのように設計するか、またどのように GCP のサービスを組み合わせてセキュリティを確立するかのガイドラインがこちらです。
Cloud IAM
IAM により権限の管理ができます。全体的なことについて書かれた記事がこちら。
より限定的な内容についての、プラクティスが書かれた記事がこちらです。
- Google Cloud のサービス アカウント キーを安全に管理する
- 組織を GCP のリソース階層にマッピングする
- すべての Google Cloud リソースを Cloud Resource Manager で一元管理
GCP では日々新機能がリリースされていますが、Compute Engine のより細かなリソースであったり日時でコントロールできる機能がリリースされています。
Cloud Identity-Aware Proxy
App Engine などの HTTPS でアクセスするアプリケーションに対して、アクセス制御ポリシーを組み込めるサービスです。ウェブサービスの前段にプロキシを配置して、そこにアクセス制御のコントロールを一任させるものです。
- アプリケーション アクセスを簡単かつ安全に管理する Cloud Identity-Aware Proxy
- Cloud Identity-Aware Proxy におけるアクセス制御の仕組み
- Cloud Identity のアイデンティティ管理機能が GCP で利用可能に
- Cloud Identity-Aware Proxy : クラウド アプリケーションのアクセス保護
Cloud Endpoints
API 呼び出しの認証、認可を行うサービスです。
Cloud Armor
Cloud Armor は DDoS 攻撃への防御や IP アドレスベースのフィルタリングを設定できるサービスです。SQL インジェクション対策もアルファリリースで提供されているので、将来的にはアプリケーションレイヤも防護できるようになる?
Cloud KMS
暗号化、復号処理を行う鍵の管理を行うサービスです。
Cloud Audit Logging
監査ログを残すサービスです。
Cloud Security Command Center
自分の GCP プロジェクトに対してセキュリティの診断をし、可視化してくれるサービスのようです。
Cloud DLP API
リアルタイムに機密データの検出、分類、編集をしてくれるサービスのようです。定義済みの検出器があるほか、自分でカスタム検出器を定義することもできるようです。
技術的な対策の知見
クラウドの利用者としては知らなくてもいい知識も多いですが、勉強になる記事です。
- PCIe のファジング : GPU 導入に向けたセキュリティ検証と対策
- GCP のセキュリティ : クラッシュの自動分析による脆弱性の検出
- Google Cloud の KVM セキュリティを強化する 7 つの方法
コンピューティング
App Engine
歴史
App Engine は最古から存在する GCP のサービスで誕生から 10 周年になります。エンタープライズ向けのサーバインフラからではなく、開発にフォーカスした PaaS からスタートしているのが GCP らしいですね。ブログでは時々歴史に関する記事もポストされます。
概要を学ぶための資料
gVisor ベースの第二世代ランタイム
今年に入ってからのトピックとしては、gVisor ベースの第二世代ランタイムがサポートされるようになりました。
ランタイム
各言語のランタイムは新しいバージョンに対応していっています。
- App Engine 向けの Go 1.11 ランタイムをベータ リリース
- App Engine の Python サポートを強化
- Java 8 サポートの App Engine スタンダード環境をベータ リリース
- Now, you can deploy your Node.js app to App Engine standard environment
セキュリティ面の機能強化
事例
Compute Engine
概要をおさえる資料
マネージドインスタンスグループ
VM のデプロイ時にカナリアテストを行うなど、デプロイ方法の制御方法が豊富に用意されています。
管理に便利な機能
稼働中の VM インスタンスからイメージが作成できたり、削除からの保護といった有用な機能について書かれた記事です。
ディスクの高速データコピーには、スナップショットが便利という記事です。
起動高速化
プロファイリング方法や起動時間短縮方法について書かれた記事です。
ライブマイグレーション
謎の超技術の一つ。ゲスト VM に影響を与えず行われるマイグレーションについての記事です。
大規模利用
巨大なサイズの VM インスタンスは複数ノードに分散させるよりは一台に全て乗せたいケースに有用です。Intel Distribution for Python の scikit-learn を使用したときのパフォーマンス向上についても性能比のグラフが載せられています。
22 万コアて。。すごいです(小並感)。
Market Place
様々なオープンソースがプレインストールされた VM イメージが提供されています。なお、Cloud Launcher は現在は Market Place に改名されています。
- Cloud Launcher で新たに 21 のオープンソース ソリューションが利用可能に
- Cloud Launcher アップデート : 本番環境レベルのソリューションや簡単に使えるサービスが続々登場
Kubernetes Engine
歴史
Google が大きく関わっているプロダクトということもあり、歴史的な記事もいくつか掲載されています。
- Google Container Engine が GA に
- Google から世界へ : Kubernetes 誕生の物語
- オープンソースから始まり、持続可能な成功に至るまで ―― Kubernetes の “卒業” に寄せて
概要をおさえる資料
Cloud OnAir をはじめとして概要を知るための記事がこちら。
- Cloud OnAir 番組レポート:Deep Dive Google Kubernetes Engine
- 知りたいけど、今さら聞けない Kubernetes
- コンテナ クラスターを構成するものとは?
ソリューションガイド
マイクロサービスから、継続的デリバリのパイプラインまで、ソリューション設計に関するガイドです。
- ホワイトペーパー : モノリスからマイクロサービスへの移行
- ソリューション ガイド : 本番運用に向けた Container Engine 環境の準備
- ソリューション ガイド : Spinnaker、Container Engine、Container Builder で信頼性の高いデプロイ体制を構築
コンテナのセキュリティ
上記のガイドライン以外にもセキュリティに関する記事も公開されています。
- コンテナのセキュリティ(第 1 回): 3 つの主要領域
- コンテナのセキュリティ(第 2 回): ノード イメージとコンテナ イメージ
- コンテナのセキュリティ(第 3 回): Grafeas で管理するコンテナ イメージのメタデータ
- Kubernetes Engine 1.8 でのコンテナ セキュリティの強化
Container Registry
Container Registry の脆弱性スキャン機能。イメージに脆弱性があるかどうかをスキャンし、結果をレポートしてくれるサービスです。
Spinnaker
継続的デリバリと継続的デプロイの違いは、本番環境へのデプロイに人手を介するかどうかです。Spinnaker は人による承認プロセスを挟むこともできます。継続的デリバリを実現するプロダクトです。
- ネットフリックスの Spinnaker がGoogle Cloud Platform で利用可能に
- Spinnaker 1.0 : マルチクラウド対応の継続的デリバリ プラットフォーム
- Kayenta : Google と Netflix が共同開発したオープンソースの自動カナリア分析ツール
GitLab、GitHub からのデプロイ
GitLab から GKE にデプロイする方法が紹介されている記事です。
こちらの記事は Google Cloud Platform Japan Blog の記事ではないのですが、GitHub からも連携できるようになっています。
Cloud Services Platform
今年の 7 月に発表された Managed Istio、GKE On-Prem、Knative などに関する記事です。
マイクロサービスの開発例
API の公開にはマイクロサービスがぴったりです。この記事では、Kubernetes を使って構築した例が紹介されています。
事例
- 株式会社メルカリの導入事例:Kubernetes を駆使したマイクロサービス化でグローバルサービスの開発効率を劇的に向上
- ゲスト投稿 : ML API、Cloud Pub/Sub、Cloud Functions でサーバーレス のデジタル アーカイブを構築した Incentro
- ゲスト投稿 : Spinnaker のマネージド パイプライン テンプレートと IaC で、本番システムに秩序をもたらした Waze
サーバレス
サーバレスと一言で言っても Function as a Service にとどまる話ではありません。Cloud OnAir の放送では Cloud Function を中心に据えつつも、幅広い観点から紹介しています。
こちらは Google のサーバレスに対する目指す姿、方向性が書かれた記事です。
Deployment Manager
インフラをコードで定義し、自動的に構築できるサービスです。
- Deployment Manager の GA リリースでデプロイが容易になります
- Cloud Deployment Manager の基本的な使い方
- Cloud Deployment Manager でプロジェクトを自動作成
Infrastructure as Code
- オープンソースへの取り組み : Google と HashiCorp のエンジニアが語る GCP インフラストラクチャ管理
- ゲスト投稿 : GCP インフラストラクチャをコードとして管理する Terraform
データ
Google では、ビッグをつけずに単にデータというらしいです。
データ分析基盤
全体像については Cloud OnAir が分かりやすいです。
- Cloud OnAir 番組レポート : GCP で構築するデータ分析基盤の最新情報をご紹介
- Cloud OnAir 番組レポート : クラウドを活用したデータ分析基盤の第一歩
- Cloud OnAir 番組レポート : クラウドを活用したリアルタイムデータ分析
- Cloud OnAir 番組レポート:第 3 回 No-ops で大量データ処理基盤を簡単に構築する
- 基本から学ぶ ビッグデータ / データ分析 / 機械学習 サービス群)
データベースセキュリティ
Cloud Storage
ストレージクラスについての記事。長期アーカイブデータ用の Coldline でも瞬時にデータにアクセスできるのは驚きです。
パフォーマンス向上に関する Tips 集です。
データ保護のため、権限のチェック、機密データのチェック、対策のための行動、そしてこれらの行動を日常的に回すことについて、書かれた記事です。
Pub/Sub と連携できます。
Cloud SQL
今は第 2 世代が提供されています。競合サービスとの性能比較のデータも載っています。
こちらは 2014 年の記事です。
PostgreSQL も正式リリースを迎えています。
Spanner
サービスの概要
- NoSQL から新しい SQL へ : グローバルなミッションクリティカル DB へと進化を遂げた Cloud Spanner
- Cloud Spanner : ミッションクリティカルな業務に対応するグローバルなデータベース サービス
理論面の解説
従来の常識を覆すサービスということもあり、理論面の解説記事もあります。
事例
- Cloud Spanner を使ってメール パーソナライズ システムを再構築したリクルートテクノロジーズ
- 国際自動車株式会社の導入事例:何千ものタクシーと乗客を、スマホを振るだけでマッチング。リアルタイム性が求められるビッグデータ処理を Cloud Spanner で一挙可能に
- 『ドラゴンボール レジェンズ』の舞台裏を支える Google Cloud
Bigtable
概要をおさえる資料
サービスの公開アナウンス
Google 社内での歴史からユースケースまで書かれています。
事例
Datastore
BigQuery
概要をおさえる資料
便利な機能や使い方
- UDF を新たにサポートした Google BigQuery で、より “ディープ” なクラウド アナリティクスを!
- BigQuery Data Transfer Service を正式リリース
- BigQuery への課金データのエクスポートで GCP 利用コストを管理
理論面の解説
事例
Data Studio
BigQuery のデータをダッシュボードで可視化
Dataflow
Dataproc
Pub/Sub
ネットワーク
概要
設計ガイド
海底ケーブル
- LA - 香港間を 120 Tbps で結ぶ海底ケーブル システムを構築へ
- アジアで Google へのアクセスがより速く : FASTER - 台湾間の新海底ケーブルが開通
- 新リージョンと海底ケーブルの増設でグローバル インフラストラクチャを拡張
ネットワークインフラの技術
HTTP/2
ロードバランサ
VPC
- Cloud VPC のファイアウォール管理をサービス アカウントで簡素化
- Google VPC を特徴づける 4 つのキーワード
- Shared VPC : 複数プロジェクトにまたがる仮想ネットワークを一元管理
- GCP プライベート ネットワークの柔軟性を高める拡張可能なサブネットワーク
- VPC の VM インスタンスで複数のネットワーク インターフェースをサポート
- ファイアウォール ルールを堅固にする 3 つの方法
Cloud NAT
Dedicated Interconnect
- Dedicated Interconnect : Google Cloud に高速でプライベート接続
- グローバル ルーティングや新ロケーションをサポートした Dedicated Interconnect を正式リリース
CDN Interconnect
- Google Cloud CDN が CDN Interconnect に加わり、ユーザーに選択肢を提供
- CDN Interconnect でアカマイとの連携が実現する、企業の接続性とパフォーマンスの向上
Network Service Tiers
機械学習
機械学習プロジェクトの進め方
要件定義からモデルの構築、運用までのライフサイクル全体に渡って、全体的な視点を提供してくれる資料です。
こちらは「機械学習とは何か、ディープラーニング、AI との違いは何か」のとっかかりの部分から理解するのに適した資料です。
他にも様々なガイドが提供されています。
AutoML
概要をおさえる資料
技術記事
事例
TensorFlow
GCP のサービスではないですが、Google の主要ソフトウェアということで・・
技術記事
事例
TPU
専用のプロセッサを用いることで、特定用途の計算を低消費電力で、高速に解くことができます。コストに対する性能比も高くなります。なお、Colaboratory でも無料で TPU を使うことができます。
技術面を掘り下げた記事が多いです。
- 機械学習アプリを大幅に高速化する TPU カスタム チップを開発
- 機械学習用チップの性能評価 : TPU の研究論文を公開
- 深層学習に特化したプロセッサ、Cloud TPU の設計
- Google の Tensor Processing Unit (TPU) で機械学習が 30 倍速くなるメカニズム
Publickey の記事ですが、TPU 3.0 は液冷のようです。冷却効率が高く、かつ消費電力を抑えることができるので、電気代削減だけでなく、環境負荷にも考慮されたソリューションだと言えます。
また、Edge TPU はエッジ用の TPU です。エッジ側では使える電力や設置スペースが限られるなどの制約がありますが、それらの制約を克服しつつ高速な推論処理を行うことができます。
GPU
機械学習や HPC をはじめとして、GPU のコンピュータクラスタは需要が高まっています。GPU も利用可能です。
- Compute Engine と Cloud Machine Learning で GPU が利用可能に
- クラウド GPU が 2017 年から利用可能に
- 通常の半額で使用できるプリエンプティブル GPU
Dialogflow
事例
学習済みモデルの API
特定用途のモデルを作成するには自前で訓練する必要がありますが、学習済みモデルで事足りることもあります。
- Cloud Vision API による不適切コンテンツのフィルタリング
- 画像認識の常識を変える Google Cloud Vision API
- 新しい Cloud Speech-to-Text で通話や動画音声のテキスト変換精度が向上
- Cloud Natural Language API で非構造化テキストを構造化する
- Cloud Video Intelligence API 登場と Cloud ML の最新アップデート
事例
Datalab
IoT
Develop
Cloud Shell
Cloud Source Repositories
- Cloud Source Repositories が正式リリース、5 ユーザーで 50 GB まで無料
- Cloud Source Repositories と Container Builder によるサーバーレスでの自動デプロイ
API Design
gRPC
- gRPC : オープンソースの RPC フレームワークがバージョン 1.0 に
- gRPC を使用した効率的なモバイル アプリの構築
- gRPC API を Cloud Endpoints で管理する
- gRPC の評価 : 複数言語のサポート具合をチェックする
Stackdriver
- Google Stackdriver が GA リリースに
- Google Cloud Monitoring: Stackdriver で Google Cloud Platform をモニタリング
- Stackdriver Debugger が GA リリース : 本番環境でのデバッグに最適
- App Engine 向けの Stackdriver Trace が GA リリース
- Stackdriver Logging でフィルタリングすべきログ メッセージの見分け方
- DevOps で役に立つ Stackdriver の 6 つのポイント
SRE、CRE
SRE = Site Reliability Engineering(サイト信頼性エンジニアリング)、CRE = Customer Reliability Engineering(顧客信頼性エンジニアリング)です。実は、Google Cloud Platform Japan Blog にも多くの記事が投稿されています。また、書籍『SRE サイトリライアビリティエンジニアリング
――Googleの信頼性を支えるエンジニアリングチーム」という分厚い本も出版されており、エラーバジェットをはじめとした様々な概念、そして信頼性を高めたりコントロールするためのプラクティスを学ぶことができます。
- SRE への冒険の始まり : Google Mission Control にようこそ
- Google の新しい専門職 : CRE が必要な理由
- SRE の教訓 : Google におけるインシデント管理とは
- SLO、SLI、SLA について考える : CRE が現場で学んだこと
- 優れた SLO を策定するには : CRE が現場で学んだこと
- SLO のエスカレーション ポリシー : CRE が現場で学んだこと
- エスカレーション ポリシーの適用 : CRE が現場で学んだこと
- 事後分析を外部と共有することの意義 : CRE が現場で学んだこと
- SLO 違反への対処 : CRE が現場で学んだこと
- 信頼性の高いリリースとロールバック : CRE が現場で学んだこと
- エラー バジェットの使い過ぎが意味するもの : CRE が現場で学んだこと
- エラー バジェットの使い過ぎを解消する : CRE が現場で学んだこと (後編)
- クラウド時代のトラブルシューティング : 解決に役立つプロバイダーとのコミュニケーション(前編)
- クラウド時代のトラブルシューティング : 解決に役立つプロバイダーとのコミュニケーション(後編)
- SRE との “壁” を取り除くには : CRE が現場で学んだこと
- SRE のサポートを受けるべきアプリとは? : CRE が現場で学んだこと
- SRE へのサポート移行で失敗しないために : CRE が現場で学んだこと
- カナリアのおかげで命拾い : CRE が現場で学んだこと
- ダーク ローンチとは何か : CRE が現場で学んだこと
- ダーク ローンチの実用性 : CRE が現場で学んだこと
- 可用性とどう向き合うべきか、それが問題だ : CRE が現場で学んだこと
- ロード シェディングを利用して想定以上のトラフィックをさばく : CRE が現場で学んだこと
- SRE の教訓 : App Engine で 1 日 1,000 億件以上のリクエストに対応する方法
- 自業自得の DDoS 攻撃から身を守るには : CRE が現場で学んだこと
その他
データセンター
HPC
リリース時期
GCP の各サービスのリリース時期を並べた表です。
論文
いくつかのプロダクトについては論文で詳細が公開されています。なお、一部の論文のポイントはグーグル合同会社の中井さんが連載で紹介してくださっています。
また、論文の一覧を表にしました。
プロダクト名 | 発行年 | 論文 |
---|---|---|
Google File Sysytem | 2003 | The Google File System |
Bigtable | 2006 | Bigtable: A Distributed Storage System for Structured Data |
Chubby | 2006 | The Chubby lock service for loosely-coupled distributed systems |
Dremel | 2010 | Dremel: Interactive Analysis of Web-Scale Datasets |
FlumeJava | 2010 | FlumeJava: Easy, Efficient Data-Parallel Pipelines |
Megastore | 2011 | Megastore: Providing Scalable, Highly Available Storage for Interactive Services) |
Spanner | 2012 | Spanner: Google's Globally-Distributed Database |
MilWheel | 2013 | MillWheel: Fault-Tolerant Stream Processing at Internet Scale |
Borg | 2015 | Large-scale cluster management at Google with Borg |
Borg | 2016 | Borg, Omega, and Kubernetes |
Maglev | 2016 | Maglev: A Fast and Reliable Software Network Load Balancer |
Google の方の資料
Google の歴史やテクノロジーの掘り下げには Google の方が作成された資料もあります。その一部を紹介させていただきます。
- YAPC Asia 2015「Google Cloud Platformの謎テクノロジーを掘り下げる」のまとめ
- Googleのインフラ技術から考える理想のDevOps
- GCP誕生から10年、その進化の歴史を振り返る
最後に
記事が膨大で力尽きつつあります。。
なお、筆者は Google の回し者ではありません。(というより、仕事でクラウドを使ったことがありません・・。使いたいです!)