GCP サービス一覧
はじめに
GCP(GoogleCloudPlatform)とは、Googleが提供するクラウドサービスです。アプリケーション開発やデータベース管理などを行なうことができます。また、サーバー運用・管理などの初期コストがかからず導入しやすいことや世界中で有名なGoogleが提供し信頼性があるサービスです。
GCPを導入することにより開発に集中することができ、業務効率化を図ることができます。この記事ではGCPが提供するサービスについて簡単に、より多くご紹介していきます。
GCPの主要サービス
GCP(GoogleCloudPlatform)には一通りのサービスが揃っており、データ分析や機械学習に優れたサービスも存在します。
コンピューティング
GoogleComputeEngine(GCE)
仮想マシン(IaaS:InfrastructureasaService)のことです。LinuxやWindowsサーバを立ち上げることができます。また、CPUのコア数やメモリを調整することも可能(カスタムマシンタイプ)で、「プリエンプティブVM」という最大80%引きのVM(バーチャルマシーン)もあります。
代償は、常に使えるとは限らないこと、突然落ちるかもしれないこと、SLAが無いこと、24時間経過すると必ず終了することです。
GCEに接続可能なディスクとして「永続ディスク」があります。
GoogleAppEngine(GAE)
GCPにおけるPaaS:PlatformasaServiceサービスです。
GoogleAppEngineを使用することで、Googleの安定したインフラ上で、Webアプリケーションの開発・運用をおこなうことができます。また、環境構築が不要で、オートスケールも簡単です。対応言語はGo、Java、.NET、Node.js、PHP、Python、Rubyです。
Google Kubernetes Engine(GKE)
Containers-as-a-Service(CaaS)と言われるサービスのことで、主に下記のような機能を搭載するコンテナマネージド環境のことです。
- ステートフルアプリケーションのデプロイ(内部に情報を持つアプリケーション。処理によって状態が変化するアプリケーション。)
- ステートレスアプリケーションのデプロイ(内部にあまり状態を示す情報を持たないアプリケーション。)
- AIPlatformPipelinesの利用
- ML(MLPipelinePlatformのこと。処理速度を高めるアクセラレータ)が利用可能
- LinuxコンテナやWindowsServerコンテナの利用、共存
- シンプルなウェブアプリの作成
- API(コンテナベースのアプリケーションの構築・管理)
- バックエンドサービスの構築
4方向自動スケーリングやストレスのない管理など、業界初の機能を活用できます。また、GPUとTPUのプロビジョニングの最適化を行い、統合されたデベロッパーツールを使用し、マルチクラスタに関してSREによるサポートを受けられます。
さらに、Kubernetes(複雑なタスクやワークフローをより簡単に管理することができるツール)を用いて、Docker(非常に軽量なコンテナ型のアプリケーションサービス)などと連携も可能です。
Google Cloud Functions(GCF)
Function as a Service(FaaS)のことです。GCFはクラウドインフラストラクチャやサービスから生成されるイベントに関連付けられたシンプルな単一目的の関数を作成できます。
対象のイベントが発生すると、Cloud Functionsの関数が実行されます。コードはフルマネージド(監視や障害対応まで代行して行うサービス)で実行されます。インフラストラクチャを準備する必要はなく、サーバーの管理に悩まされることもなくなります。
ストレージとデータベース
GoogleCloudStorage
GCPが提供する容量無制限のストレージサービスです。自動的にバックアップを生成します。
管理コンソール・専用SDK・専用APIにて操作します。ログファイルやデータファイル保存置き場とするのが一般的ですが、Cloud Storageに設置してWeb上に公開可能なため、画像ファイルやHTML・CSS等のディレクトリとして使うこともできます。その際、Cache-Control・Content-Typeなどのメタデータや、404のエラー表示時のHTMLも設置可能です。
GoogleCloudStorageには、Multi-RegionalStorage・RegionalStorage・Nearline Storage・Coldline Storageという4種類のストレージクラスがあり、先にあるものほど冗長性が高いですが、価格が安いです。サーバ側で自動的に暗号化されますが、ユーザ側で行う暗号をさらに追加することもできます。
CloudSQL
CloudSQLは、MySQL・PostgreSQLなどのデータベースを容易に立ち上げることができます。
また、容易に起動・終了したり、レプリケーション(複製し常に更新・同期させる)やリードレプリカ(参照・読み取り複製)を作成したり、定期的なバックアップや任意時点のデータ復旧も可能です。
Compute Engineを立ち上げてそこでDB(データベース)を稼働させることよりも、インストール・設定・バッチなどの工数削減が可能です。
Cloud Big table
高速・かつ規模が大きい列指向DBサービスです。Googleの検索サービスやGmailで使っているBig table(ビッグテーブル)をGCPから利用できるもので容量は無制限です。
データアクセスにはSDK・HBaseシェル・cbtコマンドラインツールを使用し、データはKey-Value形式で保持します。そしてSQLではなく、GET・PUT・SCANといった概念でアクセスします。
Cloud Big tableの機能は極めて限定されています。キーでの検索・範囲検索はできますが、値での検索は一切できず、トランザクションは行単位のみです。これよりももう少し使いやすいKVS(Key-ValueStore)として、CloudDatastoreというものがあります。
CloudDatastore
CloudDatastoreはGoogleが提供するNoSQLデータベースです。NoSQLとはSQL言語を使用しないデータベースを指します。CloudDatastoreを使用することで、プロビジョニングや高負荷を気にすることなく作業をおこなうことが可能となります。
NoSQLなデータベースの拡張性が高い・遅延が少ないという利点と、リレーショナルデータベースのACID特性やトランザクションの良いとこ取りをしたものです。SQLのような書き方ができますが、JOINができないなどの不便な点はあります。
ネットワーキング
GoogleCloudLoadBalancing
リージョンをまたいだロードバランシングが可能なサービスです。
HTTP(S)、TCP、SSL(TLS)、UDPといったプロトコルそれぞれに対応したロードバランサー(負荷分散)を提供します。
CloudDNS
GoogleCloudDNSは拡張性が高い、かつ信頼性の高いDNSサービスで、Googleと同じ基盤で動作します。遅延が少なくアベイラビリティ(可用性)が高く、アプリケーションやサービスをユーザーに効率よく提供できます。CloudDNSは、ドメイン名(www.google.comなど)のリクエストを74.125.29.101のようなIPアドレスに変換します。
また、CloudDNSはプログラムによる操作が可能です。GoogleのシンプルなUI(ユーザーインターフェース)、CLI(コマンドラインインタフェース)、APIを駆使して、数百万ものDNSゾーンやレコードを公開し、管理できます。
ビッグデータ
GoogleBigQuery
BigQueryとはビッグデータ解析サービスのことであり、元々Google社内で使用されていたDremel(ドレメル)という大規模クエリを実行するシステムをユーザー向けに提供したものです。
大量データでも高速処理が可能であります。例えば、数千万件や数億万件の売上データを一気に読み込ませ、年齢層や地域層ごとの分析が短時間で可能とします。
CloudDataflow
CloudDataflowとは、ある入力を元に何かの処理をして出力する、というデータ処理を設定しておくことで、GCEインスタンスを複数立ち上げ、分散処理後に終了までを自動的にしてくれるサービスです。
「データが永遠に発生し続け、遅延や破損の可能性があるストリーミングデータ」と「限定範囲におけるバッチデータ」の両方を(ほぼ)同じソース内で実行できるのが特徴です。入力はCloudPub/Sub・CloudDataStore、出力はCloudBigQuery・CloudBigtableなどです。
CloudPub/Sub
フルマネージドなメッセージサービスです。あるプログラムがキューに対してメッセージを送信、それを別のプログラムで受信することができます。
使い所として、処理1の後に処理2を実行する場合、そのまま実行してもよいのですが、
- このつながり自体を独立した処理にしたい場合
- 処理2がなかなか時間を使うなどの理由で非同期にしたい場合
- 処理2をマルチスレッド化したい場合
などに使用すると良いです。
よくあるケースとしては、ある処理の後にメール送信・ファイル生成・集計・データの破棄・後続バッチ処理などを行いたい場合などです。
また、メッセージはランダムとなります(順番処理を保証しているわけではない)。
「トピック」に対するPub(パブリッシュ)と、「サブスクリプション」に対するSub(サブスクライブ)という2段階からなり、トピックとサブスクリプションの組み合わせ設定によっては1対他・他対1というような使い方もできます。
メッセージ取得にはPullとPushの2通りの方法があります。
機械学習
CloudVisionAPI
GCPの画像解析サービスです。与えられた画像を解析し、下記などの情報を提供します。
- 画像のラベル(車、ネクタイ、人間の下半身、サッカーボールなど)
- 顔検出(顔・耳・鼻などのパーツ、感情(表情)推測)
- 不適切な画像の検出
- テキスト検出(OCR(Optical Character Recognition)、日本語の対応)
- Web上からの類似画像の検索
サービス一覧
参考までに、下記に一通りGCPが提供しているサービスを簡単にまとめてみました。
■コンピューティング | |
---|---|
・Compute Engine | 拡張性が高く、高い性能を持つ仮想マシン。 |
・App Engine | アプリとバックエンド用のサーバーを持たないアプリケーションプラットフォーム。 |
・Google Kubernetes Engine | コンテナ化されたアプリケーションを実行します。 |
・GKEOn-Prem(アルファ版) | アプリを「クラウド対応」にし、クラウド移行を自分自身のペースで進めることができます。 |
・Cloud Functions | イベント駆動型のサーバーレスコンピューティングプラットフォーム。 |
・Cloud Functions for Firebase | 即時のサーバー管理を必要とせず、モバイルのバックエンドコードを自動で実行します。 |
・Knative | 最新のKubernetesネイティブなクラウドベースソフトウェアを作成するためのコンポーネント。 |
・Shielded VMs(ベータ版) | GCP上の強化された仮想マシン。 |
■コンテナセキュリティ | |
---|---|
・GPU(グラフィックプロセッシングユニット) | Google CloudのGPU(Graphics Processing Unit)を機械学習や科学技術の計算、3D表示に活用します。 |
■AIと機械学習 | |
---|---|
・AIHub(アルファ版) | Google Cloud上でAIの探索、共有、デプロイを行います。 |
・Cloud AutoML(ベータ版) | 高品質なカスタムML(機械学習)モデルを簡単にトレーニングします。 |
・Cloud TPU | MLモデルのトレーニングと実行の期間を短縮します。 |
・Cloud Machine Learning Engine | 優れたモデルを構築し、本番環境にデプロイします。 |
・CloudTalentSolution | 人材採用のニーズにAIを活用します。 |
・Dialogflow Enterprise Edition | デバイスやプラットフォームを超えて会話ができる環境を構築します。 |
・Cloud Natural Language | 非構造化テキストから有用な情報を引き出します。 |
・CloudSpeech-to-Text | MLによって音声をテキストに変換します。 |
・CloudText-to-Speech | MLによってテキストを音声に変換します。 |
・Cloud Translation | 言語間の翻訳を動的に行います。 |
・CloudVision | MLによって画像から有用な情報を引き出します。 |
・Cloud Video Intelligence | 動画からメタデータを抽出します。 |
・Cloud Inference API(アルファ版) | 型付き時系列データセットの関係付けを、スピーディかつ大きな規模で実行します。 |
・Firebase Predictions | 予測される行動に基づいたスマートな顧客セグメンテーション。 |
・Cloud Deep Learning VMImage | ディープラーニングアプリケーション用の事前構成済み仮想マシン。 |
■API管理 | |
---|---|
・Apigee APIプラットフォーム | あらゆる場所からAPIを開発、保護(セキュリティ)、デプロイ、モニタリングします。 |
・APIアナリティクス | APIの運用指標と経営指標から分析情報を引き出します。 |
・API収益化 | 柔軟で使いやすいソリューションによってAPIから新たな付加価値を創出します。 |
・Apigee Sense | APIを攻撃から守るインテリジェントな挙動検出。 |
・Cloud Endpoints | GCP上のAPIを開発、デプロイ、管理します。 |
・デベロッパーポータル | そのまますぐに使用できるセルフサービスを基盤としたプラットフォームを開発者やAPIチームに提供します。 |
・Apigee healthcare APIx | FHIRAPIベースの新しいデジタルサービスの構築を加速させます。 |
・Apigee Open Banking APIx | オープンバンキングとPSD2(Payment Service Directive 2)への対応を加速させます。 |
・Cloud Healthcare API | 医療に関する実用的な分析情報を引き出す安全で危険がないAPI。 |
■データ分析 | |
---|---|
・Big Query | MLが組み込まれた、フルマネージドで拡張性の高いデータウェアハウス。 |
・Cloud Dataflow | バッチデータやストリーミングデータをリアルタイムに処理します。 |
・Cloud Dataproc | SparkとHadoopのマネージドサービス。 |
・Cloud Datalab | 大規模なデータセットを探索、分析、可視化します。 |
・Cloud Dataprep | 構造化および非構造化データを視覚的に探索、クリーニング、準備するためのインテリジェントなデータサービスです。 |
・Cloud Pub/Sub | 規模の大小を問わず、あらゆる場所からリアルタイムでイベントストリーム(Event Streams)を取り込みます。 |
・Cloud Composer | Apache Airflowを基に構築された、フルマネージドの複雑なワークフローを簡単に管理可能なオーケストレーションサービスです。 |
■GCP総合ブローシャー | |
---|---|
・Genomics | 科学研究に威力を発揮します。 |
・Googleマーケティングプラットフォーム | カスタマーエクスペリエンスを向上させるためのエンタープライズ分析。 |
・Googleデータポータル | データストーリーテリングによって、より優れた意思の決定を支援します。 |
・Firebase Performance Monitoring | アプリの成果(パフォーマンス)に関する分析情報を取得します。 |
■データベース | |
---|---|
・CloudSQL | MySQLおよびPostgreSQLデータベースサービス。 |
・Cloud Bigtable | NoSQLワイドカラムデータベースサービス。 |
・Cloud Spanner | 業務を行うにあたり最重要でかつ、拡張性が高いRDBサービス(リレーショナルデータベースサービス)。 |
・Cloud Datastore | NoSQLドキュメントデータベースサービス。 |
・Cloud Memorystore | フルマネージドのインメモリデータストアサービス。 |
・Cloud Firestore | モバイルアプリやウェブアプリのデータをグローバル規模で保存します。 |
・Firebase Realtime Database | データの保存や同期をリアルタイムで行います。 |
■デベロッパーツール | |
---|---|
・Cloud SDK | GCPのプロダクトやサービス用のCLI(コマンドラインインターフェース)。 |
・Container Registry | Dockerコンテナイメージを保存、マネジメント、保護(protect)します。 |
・Cloud Build | 継続的なビルド、自動的にテスト・デプロイを実現します。 |
・CloudSourceRepositories | 所属しているチームが一元的にソースコードを保存、管理(マネジメント)、追跡(トラッキング)できる場所。 |
・CloudScheduler(ベータ版) | フルマネージドcronジョブサービス。 |
・CloudTasks(ベータ版) | 非同期タスク実行。 |
・Cloud Tools for IntelliJ | IntelliJ内で本番環境クラウドアプリをデバッグします。 |
・CloudTools for PowerShell | WindowsPowerShellからクラウドを完全に管理します。 |
・CloudTools for VisualStudio | VisualStudioアプリケーションをGCPにデプロイします。 |
・CloudTools for Eclipse | EclipseプロジェクトをGCPにデプロイします。 |
・Gradle AppEngine Plugin | AppEngineプロジェクトでGradleを使用します。 |
・Maven App Engine Plugin | AppEngineプロジェクトでMavenを使用します。 |
・Cloud Test Lab | Androidアプリ用のオンデマンドテスト基盤。 |
・Firebase Crashlytics | 安定性の問題に優先順位を付け、問題を速やかに修正します。アプリケーションに導入後、アプリがクラッシュした時点の問題を確認することができます。iOSアプリやAndroidアプリに導入することでWeb上でクラッシュした時点の情報を取得することができます。 |
■IoT(Internet of Things) | |
---|---|
・Cloud IoT Core | デバイスの接続と管理のセキュリティを確保します。 |
・Edge TPU(早期アクセス) | エッジで推論を行うために設計された専用ASIC(エーシック、Application Specific Integrated Circuit)。 |
・Cloud IoT Edge(アルファ版) | GoogleAI機能をエッジで提供します。 |
■管理ツール | |
---|---|
・Stackdriver | サービス、コンテナ、アプリケーション、基盤のモニタリングと管理。 |
・Monitoring | GCPやAWSで実行されるアプリケーションのモニタリング。 |
・Service Monitoring(早期アクセス) | IstioサービスとGoogleAppEngineサービス用のStackdriverServiceのモニタリング。 |
・Logging | GCPやAWSで実行されるアプリケーションのロギング。 |
・Error Reporting | アプリケーションのエラーを特定し、エラー究明の助けになります。 |
・Trace | 本番環境でのパフォーマンスのボトルネックを検出します。 |
・Debugger | 本番環境でコードの挙動を調査します。 |
・Profiler(ベータ版) | 負荷が軽くて遅延が少ない、CPUとヒープ(heap、ツリー構造)のプロファイリング。 |
・Transparent Service Level Indicator | GoogleCloudサービスと、それらのサービスがワークロードに及ぼす影響をモニタリングします。 |
・Cloud Deployment Manager | よりシンプルなテンプレート((決まった型)を使ってクラウドへのリソースをマネジメントします。 |
・Cloud Console | GCPの総合管理コンソール。 |
・Cloud Shell | 任意のブラウザから使用できるコマンドライン管理ツール。 |
・Cloud Mobile App | モバイルデバイスからGCPサービスを管理します。 |
・コスト管理 | 費用をモニタリング、管理、最適化するためのツール。 |
・Cloud API | 全GCPサービスで使えるプログラムのインターフェース。 |
■メディア | |
---|---|
・Anvato | ライブ動画やオンデマンド(ユーザーの要求に応じて提供する)動画をあらゆるデバイスに(インターネットに接続した状態で再生する)ストリーミングします。 |
・Zync Render | 3Dモデリングツールから直接、スピーディかつ経済的にレンダリングを実行します。 |
■移行 | |
---|---|
・Cloud Data Transfer | ネットワーク経由でデータを転送する、開発者向けのコマンドラインツール。 |
・Transfer Appliance | 多くのデータをGoogle Cloudに転送するための収納が容易なラックマウント(rack mount)可能なストレージサーバー。 |
・Cloud Storage Transfer Service | AWS S3とGoogle Cloud Storageの間など、クラウドストレージサービス間でデータ転送をします。 |
・BigQuery Data Transfer Service | Big Query用のフルマネージドなデータインポートサービス。 |
・Migrate for Compute Engine(以前の名称は、”Velostrata”) | Google Cloudへの目的に特化したエンタープライズクラスの移行。 |
・VMの移行 | VMの移行はGoogle Cloudをスピーディかつ効果的に使い始める方法です。 |
■ネットワーキング | |
---|---|
・Virtual Private Cloud(VPC) | GCPリソース用のVPCネットワーキング。 |
・Cloud Load Balancing | 高性能でスケーラブルな負荷分散。 |
・Cloud Armor | DoS攻撃やウェブ攻撃からサービスを守ります。 |
・Cloud CDN | Googleのグローバルネットワークでコンテンツを配信します。 |
・Cloud NAT | GCPのマネージド型高性能ネットワークアドレス変換。 |
・Cloud Interconnect | GCPのネットワークエッジに直接接続します。 |
・Cloud VPN | パブリックインターネット経由でGCPVPCに安全に接続します。 |
・Cloud DNS | 信頼性と復元性に優れ、遅延が少ないDNSサービス。 |
・Network ServiceTiers | ネットワークのパフォーマンスやコストを最適化します。 |
・Network Telemetry | サービスの安全性を維持する徹底的なネットワークテレメトリー。 |
■セキュリティ | |
---|---|
・Cloud IAM | IDとアクセスをきめ細かく管理します。 |
・Cloud Identity for Customer sand Partners(ベータ版) | GoogleレベルのIDとアクセスの管理をアプリに組み込みます。 |
・Firebase Authentication | シンプルかつ無料のマルチプラットフォームなログイン機能。 |
・Cloud Identity-AwareProxy | IDとコンテクストを使用して、アプリケーションやVMへのアクセスを保護(protect)します。 |
・CloudData Loss Prevention | 機密データを検出して秘匿化します。 |
・セキュリティキーの適用 | セキュリティキーの使用を必須にして、フィッシングを防止します。 |
・Titan セキュリティキー | フィッシング攻撃によるアカウントが乗っ取られることを防止します。 |
・Cloud HSM | フルマネージドのハードウェアセキュリティモジュールサービスによって暗号鍵を保護します。 |
・VPC Service Controls(ベータ版) | GoogleCloudPlatformサービスで機密データのセキュリティ境界を定義します。 |
・CloudKey Management Service | GCP上の暗号鍵を管理します。 |
・Resource Manager | GCP上のリソースをレベルごと(階層的)に管理します。 |
・Cloud Security CommandCenter(ベータ版) | GCP用の広範囲なセキュリティおよびデータリスクプラットフォーム。 |
・Cloud Security Scanner | AppEngineアプリを自動的にスキャンします。 |
・アクセスの透明性 | ほぼ即時で取得するログを通じて、クラウドプロバイダによる操作情報を取得できます。 |
・Binary Authorization(ベータ版) | 信頼できるコンテナのみをKubernetesEngineにデプロイします。 |
■ストレージ | |
---|---|
・Cloud Storage | グローバルなエッジキャッシュを備えたオブジェクトストレージ。 |
・Persistent Disk | VMインスタンス用ブロックストレージ。 |
・Cloud Storage for Firebase | コンテンツを簡単に保存して提供します。 |
・Cloud Filestore | 高性能なファイルストレージ。 |
・Drive Enterprise | クラウドベースのコンテンツコラボレーションおよびストレージ。 |
まとめ
いかがでしたでしょうか?この記事では多くのサービスを紹介してきました。GCPを利用することで、Google社内で使われているものと同じテクノロジーやインフラを使用しながらご自身のインフラ環境をクラウド化できます。
今回紹介したGCPは基本的な構成要素から機会学習など深いサービスまで用意されているため、上手く活用して開発に集中することができるでしょう。GCPが提供しているサービスを理解し、導入に向けた知識となれば嬉しいです。