GCP サービスについて

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

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

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

GCP にはコンピューティングとホスティングのためのオプションがあります。次のことを行うことができます。

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

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

コンピューティングとホスティングのオプションで、操作上の要件範囲が示されています。

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

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

Cloud Functions では、JavaScript で作成し、GCP の Node.js v6.11.5 環境で実行します。あらゆる標準的な Node.js ランタイムで Cloud 関数を実行でき、移植やローカルテストが簡単になります。

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

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

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

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

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

  • App Engine スタンダード環境のランタイム上に、スタンダード環境でサポートされている言語(Python 2.7Java 8、7PHP 5.5Go 1.8、1.6 など)を使用してアプリをビルドする。

  • App Engine フレキシブル環境のランタイム上に、フレキシブル環境でサポートされている言語(Python 2.7 / 3.6Java 8Go 1.8Node.jsPHP 5.6、7.NETRuby など)を使用してアプリをビルドする。あるいは、サポートされている言語またはいずれか他の言語の交互実行を利用するためカスタム ランタイムを利用する。

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

  • App Engine SDK を使用して、GCP 上の App Engine をシミュレートする環境のローカルマシンで開発し、テストする。

  • App Engine のスタンダード環境とフレキシブル環境でサポートされるように設計されているストレージ テクノロジーを簡単に使用する。

    Cloud SQL は MySQL、SQL Server、PostgreSQL をサポートする SQL データベースです。Cloud Datastore は、スキーマレスの NoSQL データストアです。Cloud Storage により、大規模なファイル用のスペースが提供されます。

    スタンダード環境では、Redis、MongoDB、Cassandra、Hadoop など、さまざまなサードパーティ データベースをアプリケーションで使用できます。

    フレキシブル環境では、App Engine インスタンスからデータベースにアクセスできる場合に、ご使用の言語でサポートされているサードパーティ製データベースを簡単に使用できます。

    どちらの環境でも、これらのサードパーティ データベースは、Compute Engine でホストされているもの、別のクラウド プロバイダでホストされているもの、オンプレミスでホストされているもの、サードパーティ ベンダーが管理しているもの、いずれであってもかまいません。

  • スタンダード環境で Cloud Endpoints を使用して、他のアプリケーションからのデータアクセスを簡素化するために利用できる API とクライアント ライブラリを生成する。Cloud Endpoints では、Android や iOS などのウェブ クライアントやモバイル クライアント用のウェブ バックエンドを簡単に作成できます。

  • メールやユーザーの管理などの作業に、組み込みのマネージド サービスを使用する。

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

  • macOS または Microsoft Windows 上の App Engine Launcher GUI アプリケーションを使用するか、コマンドラインを使用して、アプリケーションをデプロイする。

  • スタンダード環境の場合、中央アメリカまたは西ヨーロッパ地域からアプリを実行する。

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

コンテナ

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

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

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

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

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

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

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

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

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

仮想マシン

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

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

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

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

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

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

  • GCP のストレージ技術または任意のサードパーティ技術を利用する。

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

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

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

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

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

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

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

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

ストレージ サービス

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

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

    • Multi-Regional は、最大の可用性と地域的な冗長性を提供します。
    • Regional は、高可用性とローカライズされたストレージ ロケーションを提供します。
    • Nearline は、1 か月間のアクセスが 1 回未満のデータに最適な低コストのアーカイブ ストレージを提供します。
    • Coldline は、バックアップと障害復旧用の低コストのアーカイブ ストレージを提供します。
  • インスタンス用の主ストレージとして利用するための Compute Engine 上の永続ディスク。Compute Engine では、標準永続ディスクと呼ばれるハードディスク ベースの永続ディスクと、ソリッド ステート ディスク(SSD)の両方が提供されています。

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

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

データベース サービス

GCP では、幅広い SQL および NoSQL データベース サービスを提供しています。

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

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

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

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

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

ネットワーク サービス

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 Platform Console またはコマンドライン、REST API を利用できます。

高度な接続

既存のネットワークを GCP リソースに接続する場合、GCP には高度な接続のための次のオプションがあります。

  • 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 のクイックスタートを使用して一般公開データセットに対してクエリを実行します。

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

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

非同期メッセージ

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

Cloud Pub/Sub の有用性は、ビッグデータだけではありません。非同期メッセージ サービスが必要な多くの環境で Cloud Pub/Sub が利用できます。Cloud Pub/Sub を使用して App Engine と Compute Engine を連係して作動させる例については、Compute Engine での信頼性の高いタスクのスケジューリングをご覧ください。

機械学習サービス

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

機械学習 API

GCP にはさまざまな API が用意されているため、独自のモデルを作成してトレーニングしなくても、Google の ML を活用できます。

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

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

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

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

  • Translation API を使用すると、ソーステキストを、サポートされている 100 以上の言語にすばやく翻訳できます。ソース言語が不明な場合は、言語の検出もできます。

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

AI Platform

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

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

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

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