00-01 GCP全体像

GCPとは?

GCPとはGoogleが提供しているクラウドサービス群の総称です。ブランド名と言って良いでしょう。主要なサービスを下記に図示しました。
alt 左下のセクションにはストレージやコンピュートなどのリソースを払い出すサービスがあります。 一般的にクラウドと言った時にイメージするサービス群です。 その上には幾つかの管理系サービスや開発用ツールが提供されています。 これらはコンソールと呼ばれるGCPのWEB管理画面で管理できるサービス群になります。(一部コマンドラインでしか管理できないものがあります。)

その右側にはFireBaseとStackDriverがあります。これはGoogleが買収したサービスで、FireBaseはモバイルのバックエンドサービス(BaaS)、StackDriverは監視の総合スイートです。 これらはGCPコンソールからではなく、それぞれ別のWEB管理画面から操作します。管理画面は別ですが既にGCPに統合されているので、Googleアカウントでログインして利用することができます。

ご覧の通りGCPの中には多くのサービスが含まれています。ここに書いたものは主要なサービスだけで実際にはもっと多くのサービスがあります。サービスの中にはIaaSのようなごく一般的なものもあれば、BigQueryのようなGoogleしか提供していないような特別なサービスもあります。これらのサービスをうまく組み合わせることができれば、きっとどんなビジネス上の課題をも解決できるでしょう。

GCPの重要用語

GCPの全体像を掴んでもらうため、主要サービスの概要を説明したいと思います。しかし、その前に2つだけ重要なGCP用語を覚えてください。

  • プロジェクト

GCPでは基本的に「プロジェクト」という単位で管理を行います。
プロジェクトは建築会社のものをイメージすると近いでしょう。 一つの会社で「橋建設」「ビル建築」という複数のプロジェクトを実行できます。 プロジェクト毎に予算は異なるでしょうが、決算は一緒にすることができます。 リソース(建築材料)はプロジェクト毎に用意が必要でしょうが、メンバーは必要に応じて複数プロジェクトに参加することができます。

  • 請求先アカウント

GCP利用料金の支払いに使用する口座のことを請求先アカウントと言います。口座に指定できるのはクレジットカードだけですので、実質的に「請求先アカウント」=「クレジットカード」という理解で問題ないでしょう。
プロジェクトを作成する時に、請求先アカウントを指定します。

各サービスの概要

主要なサービスの概要について説明します。 画面に表示されている名前は[]で記載しています。

[ホーム]

GCPの利用状況を把握できるサービスです。
サービスの使用状況などをグラフで表示する[ダッシュボード]や、操作履歴を一覧表示したり検索したりできる[アクティビティ]があります。

  • [ダッシュボード]

カード形式で利用中のサービスの概要を表示しています。表示するカードは[カスタマイズ]から追加・削除できます。 alt

  • [アクティビティ]

リソースの追加・削除、共同で作業するGoogleアカウントの追加・削除など、重要な作業履歴を確認することができます。 alt

[API Manager]

Googleの様々なサービスはAPI経由で利用します。[API Manager]は、利用したいAPIを有効化したりAPIの利用に必要な認証情報を生成することができるサービスです。

  • [概要]

主要なAPIの一覧を表示しています。クリックすると詳細ページに移動し、そのページの[有効にする]をクリックするとAPIを有効にすることができます。 alt 有効化されているAPIの一覧を表示しています。[無効にする]をクリックすると無効化できます。 alt

  • [認証情報]

APIを利用するアプリケーションを特定する認証情報を作成します。
alt

[お支払い]

請求先アカウントを管理するサービスです。

  • [概要]

請求先アカウントを切り替え、請求先アカウントの管理者と請求先アカウントを使用しているプロジェクトとを確認できます。

  • [予算とアラート]

一ヶ月の予算を設定することができます。予算に対して指定した割合の金額を消費すると、メール通知を行う設定ができます。この機能はあくまで目安・概算を通知することが目的なので、正確な実際の金額を反映しているわけではありません。

  • [履歴]

課金履歴を確認することができます。また、CSV形式の課金データを手動でダウンロードすることができます。

  • [課金データのエクスポート]

CSVもしくはJSON形式の課金データを日次でクラウドストレージにダウンロードすることができます。他のアプリケーションから課金履歴を参照する場合に利用できます。

  • [プロフィール]

請求書に記載される名前や住所の情報を編集できます。

  • [お支払い設定]

クレジットカードの追加・削除ができます。

[Cloud Launcher]

メジャーなOS・ミドルウェア・アプリケーションが、100種類以上もの構築済みソリューションとして登録されており、インストールやセットアップをすることなく使い始めることができるサービスです。 WordpressのようなCMSやOpenERPのようなERPをすぐに使い始めることができます。

alt

[IAMと管理]

IAM(Identity and Access Management)とプロジェクト全体に関する事柄を設定をできるサービスです。プロジェクトに参画するユーザーを追加・削除したり、プロジェクト名を変更したりすることができます。

  • [IAM]

プロジェクトに参加するアカウントとそのアカウントのアクセス権限を設定できます。アカウントにはユーザーだけでなくグループやドメインを指定することもできます。権限はプロジェクト単位で指定することも、役割単位で細かく指定することもできます。

  • [GCP のプライバシーとセキュリティ]

セキュリティやプライバシーのポリシーを確認することができます。

  • [設定]

プロジェクト名を変更することができます。プロジェクトIDは変更できません。

  • [サービス アカウント]

サービスアカウントを作成し、権限を付与できます。 サービスアカウントとは、アプリケーションが利用する特殊なアカウントです。リソースへのアクセスをユーザーが直接行うのではなく、サービスアカウントが代行することで、ユーザーの権限変更時もシステムに影響が及ばないようにすることができます。

  • [ラベル]

  • [割り当て]

プロジェクトごとにリソースの上限が設定されています。申請すると上限を追加することができます。

[App Engine]

GCPの提供するPaaSサービスです。略称はGAEです。
一般的な運用タスクはGCP側で実施しているため、開発者はアプリケーションのコードをアップロードする以外のタスクが発生しません。

  • [ダッシュボード]

AppEngineのリソース使用状況やエラーの発生状況などを表示する画面です。

  • [サービス]

AppEngineではサービスという単位で複数のアプリケーションをデプロイすることができます。以前はモジュールと呼ばれていました。それぞれのサービスでバージョンを管理することができます。

  • [バージョン]

各サービスは複数のバージョンを持つことができます。バージョンを切り戻したり、トラフィックを振り分けてA/Bテストを行うことができます。

  • [インスタンス]

AppEngineを実行しているインスタンスの数やリソース使用状況を確認することができます。

  • [タスクキュー]

AppEngineではキューやCRONという名前で、JOBを登録することができます。これらJOBの実行状況を確認することができます。

  • [セキュリティ スキャン]

アプリ内のセキュリティ上の問題を見つけて、攻撃を未然に防ぐことができます。スキャンを作成するとアプリをテストできます。

  • [割り当て]

1日にAppEngineが消費したリソースが表示されます。

  • [Blobstore]

blobと呼ばれるデータオブジェクトを保存および処理する場所です。
将来的に廃止される予定で、CloudStorageの使用が推奨です。

  • [Memcache] AppEngineで利用できるオンメモリKVSがMemcacheです。ストレージにアクセスせずに済むので、ヒット率が上がると劇的にパフォーマンスが向上します。また、ストレージへのアクセスなど、APIの利用状況が費用に反映されるため、費用も低減されます。

  • [検索]

インデックスを検索することができます。

  • [設定]

カスタムドメインの設定やSSL証明書の登録ができます。

[Compute Engine]

GCPのIaaSサービスです。略称はGCEです。
コンテナで提供されるため起動が高速で、価格性能比に優れます。開発用途の場合、可用性を下げる代わりに安価に利用出来る、プリエンプティブルVMというオプションもあります。

  • [VM インスタンス]

仮想マシンインスタンスを作成・削除できます。

  • [インスタンス グループ]

インスタンスをグループ化しておくことができます。グループ化をしておくことで、負荷に応じてインスタンスを自動で追加・削除するオートスケーリングの設定ができるようになります。 グループに参加するインスタンスはテンプレートから作成するので、先にインスタンステンプレートを登録する必要があります。

  • [インスタンス テンプレート]

インスタンスグループで利用するテンプレートを作成したり登録したりすることができます。

  • [ディスク]

仮想マシンに割り当てるDISKを作成できます。

  • [スナップショット]

DISKのスナップショットを作成できます。

  • [イメージ]

OSのインストールイメージを登録することができます。

  • [メタデータ]

  • [ヘルスチェック]

HTTP(S)リクエストを投げて、サーバが正常稼動しているか簡易的なチェックを行うことができます。

  • [ゾーン]

GCPでは仮想マシンインスタンスの稼動している場所を[リージョン]と[ゾーン]という単位で指定することができます。
[リージョン]はアメリカ、ヨーロッパ、アジアといった世界地図上の地域を指しています。基本的にはサービス提供の場所に近いリージョンを選ぶのが良いでしょう。 [ゾーン]は各リージョンに存在するGoogleのデータセンターです。ゾーン間で大きな差異はありません。

  • [オペレーション]

操作履歴を表示することができます。

  • [割り当て]

GCPのリソース上限と消費率を確認できます。リソースの追加割り当てを申請することができます。

  • [設定]

CSVもしくはJSON形式の課金データを日次でクラウドストレージにエクスポートすることができます。

[Container Engine]

GCPのマネージドコンテナサービスです。略称はGKEです。
dockerコンテナイメージを登録し、登録したイメージからクラスタを作成できます。
セットアップ済みのKubernatesでコンテナを管理できます。

  • [コンテナクラスタ]

Kubernatesがセットアップされたインスタンスグループを作成することができます。

  • [コンテナレジストリ]

コンテナクラスタ様のコンテナイメージを登録しておくことができます。

[ネットワーキング]

ネットワークや静的IP、ロードバランサやVPNなどのネットワークサービスを提供します。

  • [ネットワーク]

プライベートIPアドレスのセグメントを自由に作成することができます。 特定のIPアドレスをインスタンスに割り当てたい場合に利用できます。

  • [外部IPアドレス]

静的な固定外部IPアドレスを取得することができます。 確保だけして使用していない場合、課金されます。

  • [ファイアウォールルール]

明示的にポートを開放することができます。 デフォルトではHTTP(S),SSH,RDP以外はブロックされています。

  • [ルート]

ネットワーク間のルーティングを追加できます。 デフォルトでは、デフォルトネットワーク間のみルーティングされています。

  • [負荷分散]

HTTP(S),TCP,UDPを負荷分散するロードバランサを作成できます。

  • [CloudDNS]

低レイテンシで可用性が高いDNSサービスです。

  • [VPN]

既存のネットワークとGCPをVPNで接続します。

  • [クラウドルーター]

VPNとGoogle以外のネットワーク間で、ルートの動的な更新を可能にします。

[Bigtable]

ビッグデータ向けのNoSQLデータベースです。Apache HBase API が使用できます。 Cloud Bigtable はフルマネージドの NoSQL データベースで、よく使われるオープンソースの Apache HBase API に対応しています。作業負荷に合わせて Cloud Bigtable をプロビジョニングし、Bigtable HBase クライアントをアプリケーションの開発に使用できます。使い慣れた標準オープンソースのビッグデータ ツールも併用できます。

[SQL]

フルマネージドのMySQLデータベースサービスです。Ver2になり性能が上がりました。

[データストア]

WEB/モバイルアプリのバックエンドに最適なNoSQLドキュメントデータべースです。

[Storage]

安価に大容量を使えるオブジェクトストレージです。バックアップや、画像や動画の配信に最適です。

[監視]

STACKDRIVERサービスページに遷移して、インシデント管理を行えます。
監視の統合スイートです。インフラの監視だけでなくソースコードのトレースもできます。

デバッグ

ソースコードを登録してデバッグポイントを設定し、実際のサービス上でそのソースが実行されるような操作を行うと、コードのデバッグを行うことができます。サービスへは影響を与えません。

トレース

リクエストごとのレイテンシをレポートするサービスです。リクエストをドリルダウンして遅延の多いAPIを特定できるためアプリケーションの改善に役立ちます。

ログ

プロジェクト内のログを一元管理できます。

エラー報告

発生したエラーをグルーピングして表示します。ITS/BTSを併用することでバグ管理を容易におこなえます。

ツール

開発

ソースコードのレポジトリサービスです。PrivateなGitレポジトリを利用できます。

Deployment Manager

環境構築スクリプトを保存しておくことができます。

Test Lab

アンドロイドアプリのテストを実行できます。

ビッグデータ

BigQuery

ビッグデータを超高速で分析できるデータウェアハウスです。

Pub/Sub

リアルタイムメッセージングサービスです。

Dataproc

高速で使いやすく、低コストな Spark と Hadoop のマネージド サービスです。

Dataflow

ビッグデータのバッチおよびストリーミング処理を実現するフルマネージドのクラウド サービスです。

Genomics

遺伝子情報を保管し、共有したりプライベートに保持したりするサービスです。

以上がGCPの大まかな全体像になります。非常に多くのサービスがあり、驚かれたのではないでしょうか。しかし実を言うとGCPのサービススタックはこれで全てではありません。それどころか、表には現れない縁の下の力持ち的なサービスや、ベータ版・アルファ版のサービスの中にも、スタメンに出ないのが不思議なほど強力なサービスがたくさん控えています。 これらは上記のサービスを開設していく中で、併せて紹介していきます。

次のページではGCPを利用するためのツールのインストール手順を紹介しています。