GCP サービスについて

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

本概要は、下記タイプのサービスを対象にしています。

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

GCP にはコンピューティングとホスティングのためのオプションがあります。以下を選択できます。

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

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

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

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

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

Cloud Functions の関数は JavaScript で作成され、GCP の Node.js v6.11.5 環境で実行されます。標準的な Node.js ランタイムで実行すれば、環境に依存することなくローカルのテストを速やかに実行することができます。

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

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

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

Google 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 のスタンダード環境とフレキシブル環境でサポートされるように設計されているストレージ技術を簡単に使用する。

    Google Cloud SQL は、MySQL または PostgreSQL をサポートしている SQL データベースです。App Engine Datastore は、スキームレスな NoSQL データストアです。Google Cloud Storage でユーザーの大きなファイルのためにスペースが提供されます。

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

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

    いずれの環境でも、これらサードパーティのデータベースは、Compute Engine または別のクラウド プロバイダ、オンプレミスでホストされるか、サードパーティ ベンダーが管理することができます。

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

  • メールやユーザー管理などの活動のために組み込まれているマネージド サービスを利用する。

  • 既存の安全設計や開発プロセスに対する補完としてセキュリティーの脆弱性を特定するため Cloud Security Scanner を利用する。

  • Mac OS X または Microsoft Windows 上の App Engine ランチャー GUI アプリケーションを使って、あるいはコマンドラインを使ってアプリをデプロイする。

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

App Engine の機能の全リストと説明については、App Engine ドキュメントを参照してください。

コンテナ

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

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

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

  • 単純な JSON 設定ファイルを作成し、ユーザー Docker コンテナ用の要件を宣言する。

  • Doker 画像の安全な非公開ストレージ用に Google Container Registry を利用する。レジストリに画像をプッシュでき、HTTP エンドポイントを利用すれば、いずれかの Compute Engine インスタンスまたはお使いのハードウェアに画像をプルできます。

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

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

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

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

仮想マシン

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

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

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

  • どこにデータを保存しどこで利用するかを制御できるよう、どのグローバルな地域とゾーンにリソースを配置すべきかを選択する。

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

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

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

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

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

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

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

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

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

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

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

ストレージ サービス

アプリケーションがなんであれ、おそらくなんらかのデータを保存する必要があるでしょう。GCP は、次のようなさまざまなストレージ サービスを提供しています。

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

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

  • NoSQL データ ストレージ用の 2 つのオプションである Cloud Datastore および Cloud Bigtable

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

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

永続ディスクを利用して Compute Engine 上で任意のストレージ技術を設定することも選択できます。たとえば、NoSQL ストレージとして MongoDB をセットアップできます。

GCP 上での各種ストレージ サービスとその利点については、ストレージ オプションの選択をご覧ください。

ネットワーキング サービス

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

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

Compute Engine は、VM インスタンスが利用する ネットワークサービス一式を提供しています。各インスタンスに接続することができるのは 1 つのネットワークだけです。すべての Compute Engine プロジェクトにデフォルト ネットワークがあります。ユーザーのプロジェクトにネットワークを追加できますが、プロジェクト間でネットワークを共有することはできません。

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

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

負荷分散

Compute Engine 上でユーザーのウェブサイトまたはアプリケーションが実行されている場合、複数のインスタンスに負荷を分散する用意がととのったときに、時間が来るかもしれません。Compute Engine のサービス側の負荷分散機能で次のオプションが提供されています。

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

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

Cloud DNS

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

高度な接続

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

  • Carrier Interconnect により、サービス プロバイダを使用して、可用性が高く、レイテンシが低い接続を通じて、Google のネットワーク エッジにユーザーのインフラストラクチャを接続できます。また、ネットワーク間でVPN トンネルを使って Carrier Interconnect リンク上の非公開の Compute Engine ネットワークに、ユーザーの非公開ネットワークを広げることもできます。

  • ユーザーのビジネス ネットワークと Google のネットワーク間に直接ピアリング接続を確立することができます。この接続で、Google の広範なエッジ ネットワークの 1 つの拠点で、ユーザーのネットワークと Google のネットワーク間のインターネット トラフィックの送受信を行うことができます。エッジ拠点に関する詳細については Google ピアリング サイトにアクセスしてください。

  • Cloud VPN を使用して、既存のネットワークを Compute Engine ネットワークに IPsec 接続を介して接続できます。VPN を使って、2 つの Compute Engine VPN ゲートウェイを互いに接続することができます。

ビッグデータ サービス

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

データ分析

BigQuery ではデータ分析サービスが行えます。BigQuery で次のことが行えます。

  • データをデータセットと表にまとめられるカスタム スキーマを作成する。

  • ストリーミング データなど、様々なソースからデータを読み込む。

  • 巨大なデータセットに非常に速くクエリできる、SQL に似たコマンドを使う。BigQuery は、スピードを目的に作られ、最適化されています。

  • ウェブ UI、コマンドライン インターフェース、API を使う。

  • ジョブを使って、データを読み込み、クエリし、エクスポートし、コピーする。

  • データを管理し、権限を使ってそれを保護する。

BigQuery を速く簡単に試すには、ウェブ UI クイックスタートを使って公開データセットにクエリします。リアルタイムでデータ処理するために BigQuery を使った端末間の例については、Kubernetes、Redis、BigQuery を使用したリアルタイム データ分析を参照してください。

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

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

非同期メッセージ

Cloud Pub/Sub は、非同期メッセージ サービスです。JSON データ構造のメッセージをアプリケーションでトピックと呼ばれる公開ユニットに送信できます。Cloud Pub/Sub トピックはグローバル リソースなので、ユーザーが所有しているプロジェクトの他のアプリケーションを、HTTP リクエストまたは応答の本文でメッセージが受信できるよう、トピックに登録できます。少しの操作で Cloud Pub/Sub を試すことができます。ビッグデータ シナリオに Pug/Sub を使うエンドツーエンドの例については、Kubernetes、Redis、BigQuery を使用したリアルタイム データ分析を参照してください。

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

機械学習サービス

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

ML API

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

  • Google Cloud Video Intelligence API では動画解析技術を使用できます。ラベル検出、不適切なコンテンツの検出、ショット変更の検出、地域化の機能を利用できます。
  • Google Cloud Speech API は音声からテキストへの変換をサポートします。110 以上の言語と方言を認識し、グローバルなユーザーベースに対応します。アプリケーションのマイクから入力された音声をテキストに変換する、音声による制御を行う、音声ファイルをテキストに変換するなど、さまざまな機能を利用できます。
  • Google Cloud Vision API 使用すると、画像検出機能を簡単に統合できます。この機能の例としては、画像ラベリング、顔やランドマークの検出、光学式文字認識(OCR)、露骨な表現のコンテンツへのタグ付けがあります。
  • Google Natural Language API を使用すると、感情分析、エンティティ分析、エンティティ感情分析、コンテンツ分類、構文解析を追加できます。
  • Google Cloud Translation API を使用すると、ソーステキストを、サポートされている 100 以上の言語にすばやく翻訳できます。ソース言語が不明な場合は、言語を検出することも可能です。
  • Dialogflow Enterprise Edition を使用すると、ウェブサイトやモバイルアプリ、一般的なメッセージング プラットフォーム、IoT 端末向けの会話インターフェースを構築できます。人との自然で豊かな対話に対応したインターフェース(チャットボットなど)の構築が可能です。

Cloud ML Engine

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

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

Cloud ML Engine を試すには、Flowers データセットを使用した画像分類をご覧ください。

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

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...