メニュー

Google Cloud Platfoem

Google Cloud Platform とは

GCP

記事投稿 | 2015.11.02

Google Cloud Platfoem

Google Cloud Platform とは?

こんにちは。株式会社トップゲート GAEマイスターの @sinmetal です。
今回は最近日本でもだいぶ利用者が増えてきた Google Cloud Platform (GCP) について、お話します。

GCPとは、GoogleがGmailやYouTubeなど、自社のサービスのために構築したインフラを、開発者に提供しているサービスです。

Googleが作成したハードウェアとソフトウェアで構築されたパワフルなデータセンターと、世界中に張り巡らしたGoogleのファイバーネットワークを利用してシステムを構築することができるので、自前でインフラを構築するよりもイニシャルコストとランニングコストを抑えることができます。

他のクラウドとの違い

これからクラウドを使おうと考えている人で、GCP、Amazon Web Service (AWS)、Microsoft Azure (Azure)のどれを使うか悩んでいる人も多いのではないかと思います。

僕が考えるパブリッククラウドを選ぶ基準ですが、値段やサービスの有無で選ぶよりも、思想の違いで選んだ方が良いのではないかと思っています。
値段やサービスは随時変わっていくため、今現在、自分が構築するシステムではこのクラウドが一番安い!となっても、明日他のクラウドが値下げする可能性が常に有りますし、新しいサービスもどんどん追加されていきます。

しかし、それぞれのクラウドの思想というのは、ころころ変わるものではないので、自分が思想とマッチするのかどうかというのは、システムを長く運用する上で重要です。

GCPの思想

GCPはハードウェアからソフトウェアまでGoogle自作のものが多いです。BorgBigtableDremelAndromedaなど多くのソフトウェアを開発しています。

Googleのソフトウェアの多くは、Google Wayな思想で作られています。
それは分散です。Googleが作る仕組みは、コンピュートにしろストレージにしろ、全て分散するようにできています。
これによりGoogleのサービスは低コストで高いアベイラビリティとスケーラビリティを確保しています。

GCPを利用する場合は、分散について理解し、自分のアプリケーションもGoogle Wayな思想で作ると、Googleレベルのアベイラビリティとスケーラビリティを低コストで得ることができます。
そして、これからもGoogleは新しいソフトウェアを開発し、それをGCPで提供してくれることでしょう。

AWSの思想

AWSはオープンソースのソフトウェアのフルマネージドな状態で提供してくれるサービスが多いです。
今までオンプレで使っていたソフトウェアをそのまま移行できますし、オープンソースのソフトウェアはAWS以外でも動作するため利用者も多いです。
利用者が多ければ、開発も活発になりますし、知見も集まりやすいので、パターン化も行われやすく、開発が楽になります。

これからも良いオープンソースのソフトウェアが生まれれば、AWSはそれをフルマネージドなサービスとして提供してくれるでしょう。

Azureの思想

AzureはMicrosoftの製品をフルマネージドなサービスと提供してくれます。
Linuxの提供を開始していますが、やはりAzureを選ぶ大きな理由としては、Microsoft製品をMicrosoftがクラウドとして提供しているという安心感でしょう。

Windows、SQL Serverを始めとしたたくさんの製品をMicrosoftは持っていますし、これからも新しい製品を作ってくれるはずです。
Microsoftは開発環境も含めたソリューションを提供してくれるので、開発から運用まで全てMicrosoft製品で統一することができます。

Products

GCPには役割ごとにたくさんのProductが存在します。
これらを組み合わせて、自分が作りたいシステムを構築していくわけですが、どのようなProductがあるのかを知っておかないと、最適なProductを選択することができません。

本記事では最初のステップとして、それぞれのProductの概要を簡単に説明します。

Compute

App Engine

App Engineは、GCPの中でも最も歴史が古いProductで、Web Applicationを作成することに特化したPlatform as a Service (PaaS)です。
インフラの構築をまったくすることなく、スケーラビリティとアベイラビリティが高いWeb Applicationを構築することができます。

Compute Engine

Compute Engineは、仮想マシンを提供してくれるInfrastructure as a service (IaaS)です。
OSを選択しミドルウェアをインストールすることができるので、自分の好きなシステムを構築することができます。

Container Engine

Container Engineは、DockerコンテナのオーケストレーションツールであるKubernetesをGCPに最適化して提供してくれるProductです。
Dockerコンテナベースでシステムを構築したい時に便利なProductです。

Storage

Cloud Storage

Cloud Storageは、GCP上に存在するファイルストレージです。
ユーザがUploadしたファイルの保存、Compute Engineで処理したファイルの保存など、ファイルを保存する必要がある場合は、Cloud Storageに保存することが多いです。
GCPの中ではデータのバックアップや、Product間のデータの受け渡しの場としても利用されます。

Cloud Datastore

Cloud Datastoreは、Key Value Store(KVS)のデータベースです。
App Engineのデフォルトのデータベースとしても採用されており、非常にスケーラビリティが高いのが特徴です。

Cloud SQL

Cloud SQLは、MySQLと同じインタフェースを持つリレーショナルデータベース(RDB)です。
フルマネージドな環境でRDBを使いたい時に便利なProductです。

Cloud Bigtable

Cloud Bigtableは、Key Value Store(KVS)のデータベースです。
HBaseと同じインタフェースを持っているため、オンプレのHBaseの移行をしやすいです。

Big Data

BigQuery

BigQueryはビッグデータ分析用のProductです。
数十億レコードのデータを数秒でフルスキャンする性能を持っています。
ストレージコストも安いので、Applicationのログを蓄積、購買データの分析など幅広い用途で利用できます。

Cloud Dataflow

Cloud Dataflowはビッグデータをバッチおよびストリーミングで処理することができるProductです。
コードを書いて処理内容を設定することができるので、分析だけでなく、Export Transfer Load(ETL)にも利用できます。

Cloud Dataproc

Cloud DataprocはHadoop、MapReduce、Spark、Pig、Hiveをフルマネージドで提供するProductです。
すでにこれらのApplicationを利用している場合、GCPに移行する時に選択することができます。

Cloud Pub/Sub

Cloud Pub/Subは多対多の非同期メッセージングを行うためのProductです。
GCP内の各Product間のメッセージングに利用や、GCP外のWeb Appllicationとのメッセージングに利用することができます。

Services

Cloud Endpoints

Cloud Endpointsは、App EngineでREST APIを構築する時に利用できるLibraryです。
GoogleのAPIと同じインタフェースにすることができ、Android, iOS, JavaScriptのClient Libraryを自動生成できます。
AndroidやiOSのエンジニアが、簡単なREST APIのWebサーバを作りたい時に便利な仕組みです。

Translate API

Translate APIは、Google翻訳の裏で動いているAPIです。
自然言語の翻訳を行うことができます。

Prediction API

Prediction APIは、機械学習のAPIです。
過去のデータを登録しておくことで、未知のデータの分類を行うことができます。

Resources

PAGE TOP