Google Cloud サービスの概要

この概要では、よく使用される Google Cloud サービスをいくつか紹介します。サービスの一覧については、プロダクトとサービスのページをご覧ください。

この概要は、次の種類のサービスを対象にしています。

コンピューティングとホスティングのサービス

Google Cloud には次のようなコンピューティングとホスティング向けのオプションがあり、必要に応じて選択できます。

  • サーバーレス環境で作業する。
  • マネージド アプリケーション プラットフォームを使用する。
  • コンテナ技術を活用して柔軟性を高める。
  • 制御性と柔軟性に優れた独自のクラウドベースのインフラストラクチャを構築する。

リソース管理の責任の大部分をお客様が担い、次のような責任の大部分を Google が担うというスペクトルで表現できます。

サーバーレス コンピューティング

Google Cloud の Functions as a Service(FaaS)サービスである Cloud Functions は、クラウド サービスの作成と接続に使用できるサーバーレスのランタイム環境です。クラウドのインフラストラクチャやサービスで生じたイベントに関連する、単一目的のシンプルな関数を作成できます。対象のイベントが発生すると、関数がトリガーされます。コードがフルマネージドの環境で実行されます。インフラストラクチャをプロビジョニングする必要はなく、サーバーの管理に悩まされることもありません。

Cloud Functions は、JavaScript、Python 3、Go、Java を使用して作成できます。関数を標準的な Node.js(Node.js 10)、Python 3(Python 3.7)、Go(Go 1.11 または 1.13)、または Java(Java 11)環境で実行すれば、環境に依存することなく簡単にローカルテストを実施できます。

Cloud Functions は、次のような用途に適しています。

  • 動画のトランスコードや IoT ストリーミング データなどの、データ処理と ETL オペレーション。
  • HTTP トリガーに応答するための Webhook。
  • アプリケーションに疎結合ロジックを組み込む軽量 API。
  • モバイル バックエンド機能。

アプリケーション プラットフォーム

App Engine は、Google Cloud の Platform as a Service(PaaS)です。App Engine を使えば、お客様に代わって Google がほとんどのリソース管理を処理します。たとえば、ウェブサイトへのトラフィックが増加したためさらに多くのコンピューティング リソースがアプリケーションで必要となった場合、Google は、これらにリソースを提供するため自動的にシステムを拡張します。セキュリティ アップデートがシステム ソフトウェアで必要になった場合、ユーザーに対しても行われます。

App Engine 上にアプリを構築すると、以下のことができます。

  • Go、Java、.NET、Node.js、PHP、Python、Ruby でアプリを構築して事前に構成されたランタイムを使用するか、任意の言語でコードを作成し、カスタム ランタイムを使用する。

  • Google にアプリのホスティング、スケーリング、モニタリング、インフラストラクチャの管理を任せる。

  • Cloud SQLDatastore モードの FirestoreCloud Storage などの Google Cloud ストレージ プロダクトに接続する。マネージド Redis データベースに接続したり、Compute Engine、別のクラウド プロバイダ、オンプレミス、サードパーティ ベンダーで MongoDB や Cassandra などのサードパーティ データベースをホストしたりもできます。

  • 既存の安全な設計プロセスと開発プロセスの補完として、Web Security Scanner を使用してセキュリティの脆弱性を特定する。

App Engine の機能の一覧と説明については、App Engine のドキュメントをご覧ください。

コンテナ

コンテナベースのコンピューティングで、ホスティング環境へのデプロイと統合にではなく、アプリケーション コードに注力できます。Google Cloud の Containers as a Service(CaaS)である Google Kubernetes Engine(GKE)はオープンソースの Kubernetes システム上に構築されており、Google Cloud のパブリック クラウド インフラストラクチャに加えて、オンプレミスあるいはハイブリッド クラウドを柔軟に活用できます。

GKE で構築すると、以下を行えます。

  • クラスタと呼ばれる、Kubernetes を実行している Compute Engine インスタンスのグループを作成し管理する。GKE では、Compute Engine インスタンスはクラスタ内のノードとして使用されます。各ノードは、Docker ランタイム、ノードの健全性を監視する Kubernetes ノード エージェント、シンプルなネットワーク プロキシを実行します。

  • シンプルな JSON 構成ファイルを作成し、Docker コンテナの要件を宣言する。

  • Container Registry を使用して Docker イメージを安全に限定公開で保存する。レジストリにイメージを push でき、その後 HTTP エンドポイントを使用して、Compute Engine インスタンスやお使いのハードウェアにイメージを pull できます。

  • 単一コンテナおよび複数コンテナのポッドを作成する。各ポッドは、1 つ以上のコンテナを含めることができる論理ホストを表します。ポッドのコンテナは、ネットワーキング リソースなどのリソースを共有することで連携します。全体として、ポッド一式は、アプリケーション全体、マイクロサービス、多層アプリケーションの 1 層で構成されることがあります。

  • テンプレートに基づいてポッドレプリカの作成と削除を管理するレプリケーション コントローラの作成と管理を行う。レプリケーション コントローラは、ユーザーのアプリケーションでリソースを確実に実行させ適切に拡張する必要がある場合に役に立ちます。

  • サービスを作成および管理する。サービスは、バックエンド ファンクションを提供するポッドからフロントエンド クライアントを切り離す抽象層を作成します。この方法で、いつのまにかポッドが作られることや削除されることを心配することなくクライアントが作業できます。

  • 外部ネットワーク ロードバランサを作成する。

仮想マシン

Compute Engine は、Google Cloud の非マネージド コンピューティング サービスです。Compute Engine は堅牢なコンピューティング インフラストラクチャを提供しているため、サービスとしてのインフラストラクチャ(IaaS)を提供しているととらえることができますが、ユーザーは、使用するプラットフォーム コンポーネントを選んで構成しなければなりません。Compute Engine を使う場合、システムを構成、管理、モニタリングするのはデベロッパーの責任です。Google は、リソースが確実に利用可能であり信頼性があり、ユーザーがすぐ使えるようにしますが、それらを使えるように設定し管理するのはユーザーの責任です。システムを完全に制御でき、柔軟性が制限されないことが、この利点です。

Compute Engine で構築する場合、次のことができます。

  • インスタンスと呼ばれる仮想マシン(VM)を使用して、独自のハードウェア インフラストラクチャを使用しているかのように、アプリケーションをビルドする。さまざまなインスタンス タイプから選択でき、予算と必要に合わせて構成をカスタマイズすることができる。

  • データの保存と使用を行う場所を管理できるよう、どのグローバルなリージョンとゾーンにリソースをデプロイするかを選択する。

  • 任意のオペレーティング システム、開発スタック、言語、フレームワーク、サービス、その他のソフトウェア技術を選択する。

  • 公開または非公開のイメージからインスタンスを作成する。

  • Google Cloud のストレージ技術や任意のサードパーティの技術を使用します。

  • 構成済みのソフトウェア パッケージをすぐにデプロイするために Google Cloud Marketplace を使う。たとえば、ほんの数クリックで LAMP または MEAN のスタックをデプロイできる。

  • 複数のインスタンスを一緒により簡単に管理するため、インスタンス グループを作成する。

  • 自動的に容量を追加したり削除したりできるようインスタンス グループによる自動スケーリングを利用する。

  • 必要に応じて、ディスクを追加したり切断したりする。

  • ユーザーのインスタンスへの直接接続に SSH を使う

コンピューティングとホスティングのオプションの結合

たった 1 種類のコンピューティング サービスに固執する必要はありません。たとえば、それぞれの機能と利点を生かすため、App Engine と Compute Engine を組み合わせることができます。App Engine と Compute Engine の両方を使用する例については、Compute Engine での信頼性の高いタスクのスケジューリングを参照してください。

提供中のウェブサイトのオプション検査については、ウェブサイトの提供を参照してください。

ストレージ サービス

どんなアプリケーションでも、おそらくなんらかのメディア ファイル、バックアップ、またはその他のファイルに似たオブジェクトを保存する必要があるでしょう。Google Cloud には、以下のさまざまなストレージ サービスが用意されています。

  • Cloud Storage での一貫性、スケーラブル、大容量データ ストレージ:Cloud Storage には、いくつかのタイプがあります。

    • 標準の Cloud Storage は最大の可用性を提供します。
    • Cloud Storage Nearline は、1 か月に 1 回に満たない頻度でしかアクセスしないデータの保存に最適な低コストのアーカイブ ストレージです。
    • Cloud Storage Coldline は、四半期に 1 回に満たない頻度でしかアクセスしないデータの保存に最適なさらに低コストのアーカイブ ストレージです。
    • Cloud Storage Archive は、1 年に 1 回に満たない頻度でしかアクセスしないデータの保存に最適な、バックアップと障害復旧用の最低コストのアーカイブ ストレージです。
  • インスタンス用の主ストレージとして利用するための Compute Engine 上の永続ディスク。Compute Engine では、標準永続ディスクと呼ばれるハードディスク ベースの永続ディスクと、ソリッド ステート ディスク(SSD)の両方が提供されています。

  • Filestore のフルマネージド NFS ファイル サーバー。Filestore インスタンスを使用して、Compute Engine VM インスタンスまたは GKE クラスタ上で実行されるアプリケーションのデータを保存できます。

    Google Cloud で使用できるすべてのストレージ サービスとその利点については、Google のストレージ オプションの詳細をご覧ください。

データベース サービス

Google Cloud には、以下のさまざまな SQL および NoSQL データベース サービスが用意されています。

  • Cloud SQL の SQL データベース。MySQL または PostgreSQL のいずれかのデータベースを使用できます。

  • Cloud Spanner の、フルマネージドでミッション クリティカルなリレーショナル データベース サービス。これにより、グローバルなスケールでのトランザクション整合性、スキーマ、SQL クエリ、高可用性を得るための自動化された同期レプリケーションが提供されます。

  • NoSQL データ ストレージ用の 2 つのオプション: ドキュメントに似たデータ用の Firestore と、表形式のデータ用の Cloud Bigtable

また、永続ディスクを使用して Compute Engine 上でお好みのデータベース テクノロジーを設定できます。たとえば、NoSQL ドキュメント ストレージ用に MongoDB を設定できます。

Google の各種データベース サービスの違いを確認するには、Google Cloud データベースの詳細をご覧ください。

ネットワーク サービス

App Engine はネットワーキングを管理し、GKE は Kubernetes モデルを使用し、Compute Engine は一連のネットワーキング サービスを提供します。これらのサービスで、リソース全体にわたるトラフィックが負荷分散され、DNS レコードが作成され、既存のユーザー ネットワークを Google のネットワークにつなげることができます。

ネットワーク、ファイアウォール、ルート

Virtual Private Cloud(VPC)は、VM インスタンスが使用する一連のネットワーキング サービスを提供します。1 つのインスタンスで複数のインターフェースを使用できますが、各インターフェースをそれぞれ異なるネットワークに接続する必要があります。すべての VPC プロジェクトにデフォルト ネットワークがあります。プロジェクトにネットワークを追加できますが、プロジェクト間でネットワークを共有することはできません。

ファイアウォール ルールによって、ネットワーク上でインスタンスに入るトラフィックが管理されます。デフォルト ネットワークにも、デフォルトのファイアウォール ルール一式があり、カスタムルールを作ることもできます。

ルートを使用して、VPN の作成など、より高度なネットワーク ファンクションをインスタンスに実装できます。ルートは、パケットがインスタンスから出てからどう移動するかを指定します。たとえば、特定のネットワーク範囲を宛先とするパケットを、ユーザーが構成し運用しているゲートウェイ仮想マシン インスタンスが処理するようにルートで指定する場合があります。

負荷分散

Compute Engine でウェブサイトやアプリケーションを実行している場合、複数のインスタンスに負荷を分散すべきときが来る場合があります。サーバー側の負荷分散機能には、次のオプションがあります。

  • ネットワーク負荷分散では、アドレス、ポート、プロトコルなどの着信 IP プロトコル データに基づいて、同じリージョン内のサーバー インスタンスにトラフィックを分散できます。たとえば、ユーザーのウェブサイトへのトラフィックを増やしたい場合、ネットワーク負荷分散は非常によいソリューションです。

  • HTTP(S) 負荷分散により、複数のリージョンにトラフィックを分散することで、最も近いリージョンにリクエストを確実にルーティングできます。また、障害や容量制限の超過が発生した場合、次に近いリージョンの正常なインスタンスにルーティングできます。HTTP(S) 負荷分散を使用して、コンテンツ タイプに基づいてトラフィックを分散することもできます。たとえば、あるサーバーからの画像や CSS などの静的コンテンツや、別のサーバーからの PHP ページなどの動的コンテンツを配信できるようにユーザーのサーバーを設定することできます。ロードバランサは、各コンテンツ タイプを提供しているサーバーに各リクエストを命令できます。

Cloud DNS

Google が使用する同じインフラストラクチャを利用して Domain Name System(DNS)のレコードを公開し維持できます。マネージド ゾーンと DNS レコードを操作するには、Google Cloud Console、コマンドライン、または REST API を使用できます。

高度な接続

既存のネットワークを Google Cloud リソースに接続するには、Google Cloud で提供している、次の高度な接続オプションを使用できます。

  • Cloud Interconnect により、可用性が高くレイテンシの低いエンタープライズ グレードの接続を介して、既存のネットワークを VPC ネットワークに接続できます。Dedicated Interconnect を使用して Google に直接接続することも、Partner Interconnect を使用して、サポートされているサービス プロバイダを介して Google に接続することもできます。

  • Cloud VPN により、IPsec 接続を介して既存のネットワークを VPC ネットワークに接続できます。VPN を使用して 2 つの Cloud VPN ゲートウェイを相互に接続することもできます。

  • ダイレクト ピアリングにより、Google の広範なエッジ ネットワーク ロケーションを利用して、ユーザーのネットワークと Google との間でインターネット トラフィックの送受信ができます。エッジ ロケーションの詳細については、Google のピアリング サイトをご覧ください。

  • キャリア ピアリングでは、サービス プロバイダを使用して、可用性が高くレイテンシが低い接続を通じて、Google のネットワーク エッジにインフラストラクチャを接続できます。ネットワーク間の VPN トンネルを使用して、キャリア ピアリング リンクを介してプライベート ネットワークを限定公開の Virtual Private Cloud ネットワークに拡張することもできます。

ビッグデータ サービス

ビッグデータ サービスは、複雑な質問にもすばやく答えが得られるよう、クラウドのビッグデータを処理してクエリできるようにします。

データ分析

BigQuery ではデータ分析サービスが行えます。BigQuery を使用すると、次のようなことが可能になります。

  • データをデータセットと表にまとめられるカスタム スキーマを作成する。
  • ストリーミング データなど、さまざまなソースからデータを読み込む。
  • 巨大なデータセットに非常に速くクエリできる、SQL に似たコマンドを使う。BigQuery は、スピードを意図して設計され、最適化されています。
  • ウェブ UI、コマンドライン インターフェース、API を使う。
  • ジョブを使って、データを読み込み、クエリし、エクスポートし、コピーする。
  • データを管理し、権限を使ってそれを保護する。

BigQuery をすばやく簡単に試すには、ウェブ UI のクイックスタートを使用して一般公開データセットに対してクエリを実行します。

バッチとストリーミングのデータ処理

Dataflow では、バッチ処理タスクとストリーミング データの処理タスクを行う場合に使用できる、マネージド サービスと一連の SDK を提供しています。Dataflow は、特に、処理タスクが並列ワークロードにはっきりと簡単に分割できる場合に、大容量計算に使うと効果があります。また、Dataflow は、異なるストレージ メディア間でデータを移動する、あるいは、より好ましい形式にデータを変換する、新しいストレージ システムにデータをロードする場合に有用である抽出・変換・書き出し(ETL)にも最適です。

非同期メッセージ

Pub/Sub は、非同期メッセージング サービスです。JSON データ構造のメッセージをアプリケーションでトピックと呼ばれる公開ユニットに送信できます。Pub/Sub トピックはグローバル リソースなので、ユーザーが所有しているプロジェクトの他のアプリケーションを、HTTP リクエストまたはレスポンスの本文でメッセージが受信できるよう、トピックに登録できます。Pub/Sub について理解を深めるには、Pub/Sub クイックスタートをご覧ください。

Pub/Sub の有用性は、ビッグデータだけに限られません。Pub/Sub は、非同期メッセージング サービスが必要となるさまざまな状況で使用できます。Pub/Sub を App Engine および Compute Engine と連係させて使用する例については、Compute Engine での信頼性の高いタスクのスケジューリングをご覧ください。

機械学習サービス

AI Platform は、各種の強力な機械学習(ML)サービスを提供しています。特定のアプリケーションに合わせて最適化された事前学習モデルを提供する API を使用するか、管理された TensorFlow フレームワークを使用して、大規模で洗練された独自のモデルを構築してトレーニングするかを選択できます。

機械学習 API

Google Cloud に用意されている各種の API を使用すると、独自のモデルを作成してトレーニングしなくても Google の ML を利用できます。

  • Video Intelligence API では動画解析技術を使用できます。ラベル検出、不適切なコンテンツの検出、ショット変更の検出、リージョン指定の機能を利用できます。

  • 音声入力は音声からテキストへの変換をサポートします。110 以上の言語と変異形を認識し、グローバルなユーザーベースに対応します。アプリケーションのマイクから入力された音声をテキストに変換する、音声コマンド コントロールを行う、音声ファイルをテキストに変換するなど、さまざまな機能を利用できます。

  • Cloud Vision API 使用すると、画像検出機能を簡単に統合できます。この機能の例としては、画像ラベリング、顔やランドマークの検出、光学式文字認識(OCR)、露骨な表現のコンテンツへのタグ付けがあります。

  • Cloud Natural Language API を使用すると、感情分析、エンティティ分析、エンティティ感情分析、コンテンツ分類、構文解析を追加できます。

  • Cloud Translation を使用すると、ソーステキストを、サポート対象の 100 を超える言語のいずれかにすばやく翻訳できます。ソース言語が不明な場合は、言語の検出もできます。

  • Dialogflow を使用すると、ウェブサイト、モバイルアプリ、一般的なメッセージング プラットフォーム、IoT デバイス向けの会話インターフェースを構築できます。人との自然で豊かな対話に対応したインターフェース(チャットボットなど)の構築に使用できます。

AI Platform

AI Platform は、Google Cloud のマネージド インフラストラクチャと TensorFlow の機能および柔軟性を結合します。このツールを使用して、大規模な機械学習モデルをトレーニングし、トレーニング済みのモデルをホストしてクラウド内の新しいデータに関する予測を行うことができます。

AI Platform を使用すると、Google Cloud で TensorFlow トレーニング アプリケーションを実行して機械学習モデルをトレーニングし、新しいデータに関する予測を取得できます。AI Platform によって、トレーニング ジョブの実行に必要なコンピューティング リソースが管理されるため、ハードウェアの構成やリソースの管理よりもモデルに集中できます。

AI Platform を試すには、スタートガイド: Keras を使用したトレーニングと予測をご覧ください。

次のトピック: デベロッパーと管理者用のツール