データセンター プロフェッショナルのための Google Cloud: 管理

ここでは、Google Cloud の管理と運用サービスについて説明します。また、従来のデータセンター テクノロジーとの相違についても説明します。この記事では、次のサービスタイプに焦点を当てています。

  • Identity and Access Management
  • ログ(監査ログを含む)
  • モニタリング
  • リソース プロビジョニング

Identity and Access Management

ワークロードを Google Cloud に移行すると、LDAP、Active Directory、Google Workspace の管理サービスなどの一般的なユーザー管理サービスとツールを使用して、エンドユーザーを引き続き管理できます。ただし、ネットワーク リソースへのアクセスを管理する方法は、今まで利用していたものとは少し異なります。

Google Cloud では、Identity and Access Management(IAM) を使用して仮想リソースへのアクセスを構成します。IAM は ID を直接管理しません。代わりに、ユーザーが定義したアクセス許可の集合である「ロール」を複数の Google ID タイプに割り当てることができます。サポートされるタイプは次のとおりです。

  • Google アカウント
  • Google Workspace ドメインと G Suite for Education ドメインのユーザー アカウント
  • Google Cloud サービス アカウント
  • Google グループ

Google 以外の ID タイプにもロールを割り当てることができます。これを行うには、Google 以外のタイプを Google ID タイプにバインドし、その Google ID タイプに役割を割り当てます。詳細については、エンタープライズ企業のベスト プラクティスをご覧ください。

サービス アカウント

従来のデータセンターでアプリケーションを実行する場合、通常、実行中にアプリケーションが使用する別の ID を作成します。その後、アプリケーションはその ID の下で API 呼び出しなどの認証を必要とする操作を実行します。

サービス アカウントを使用すると、同じモデルを Google Cloud で使用できます。サービス アカウントは、個々のエンドユーザーではなく、アプリケーションや Compute Engine の仮想マシン(VM)インスタンスに属している特別なアカウントです。アプリケーションはサービス アカウントを使用して、Google サービスの API を呼び出すことができます。Google Cloud ConsoleIAM API、または Cloud SDK を使用して、Google Cloud プロジェクトのカスタム サービス アカウントを作成できます。

サービス アカウントの詳細については、サービス アカウントをご覧ください。

Google グループ

Google グループを使用すれば、ユーザーの集合に対してロールを適用できます。Google グループを作成後、Google アカウントまたはサービス アカウントをこのグループに追加し、さらに IAM のロールを同じグループに適用します。

Google グループの詳細については、Google グループ ヘルプセンターをご覧ください。

ロギング

Google Cloud でのロギングは、従来のデータセンター環境でのロギングとほぼ同じです。ログを収集するには、仮想マシンごとに Logging エージェントをインストールします。ログ エージェントは、マシンとそのアプリケーションに関する情報をログに記録し、そのログを一元管理される場所に送信してインデックス登録を行います。ログが集約され、インデックス付けされると、処理、分析、可視化が可能となります。

Google Cloud は、ロギング指向サービスの強力な統合スイートを提供します。Google Cloud スタックでは、Cloud Logging が一元管理型の収集およびインデックス登録サービスとして機能し、Compute Engine VM インスタンスと他の Google Cloud リソースからログを収集します。Cloud Console の組み込みログビューアでログの検索、フィルタを行う、詳しい処理や分析を行うため、Cloud Storage、BigQuery、Pub/Sub などの他の Cloud Endpoints エンドポイントにログをストリーミングできます。

ログの収集

Compute Engine VM インスタンスからログを収集するには、各インスタンスに Cloud Logging エージェントをインストールします。エージェントは Cloud Logging にログデータの送信を自動的に開始します。

一部のリソースは Google Cloud で管理し、他のリソースは別の場所で管理するハイブリッド アーキテクチャを管理する予定でも、Google Cloud のロギング関連サービスを引き続き利用できます。たとえば、Fluentd のコミュニティ プラグイン ページでは、Cloud Logging API、BigQuery、Cloud Storage、Pub/Sub に、集約されたログをストリーミングするための一連のプラグインについて説明しています。同様に、Logstash 出力プラグイン ページでは、BigQuery と Cloud Storage にログをストリーミングするためのプラグインについて説明しています。

ハイブリッド アーキテクチャに他のクラウド上の仮想マシンが含まれている場合は、Cloud Logging を使用することもできます。特に、Cloud Logging エージェントは Amazon EC2 インスタンスに直接インストールできます。

ログのインデックス付けと保存

Cloud Logging は、Compute Engine インスタンスから収集したログを保存してインデックス付けを行います。Cloud Logging はログを 30 日間保持します。ログを後で処理、分析、または監査するために保存する場合は、ログが以下の他の Google Cloud サービスに自動的にエクスポートされるように Cloud Logging を設定します。

  • Cloud Storage: Google Cloud の分散オブジェクト ストレージ サービス。Cloud Storage は、可用性と冗長性に優れたグローバル ストレージ サービスです。Google Cloud では、アクセス頻度の低いデータのコストを最適化するための、追加の長期ストレージ クラスも用意されています。詳細については、Cloud Storage の記事をご覧ください。
  • BigQuery: Google Cloud のデータ ウェアハウス サービス。BigQuery はフルマネージドの追記専用データベースで、何十億ものデータ行に対して複雑なクエリを数秒で実行できます。
  • Pub/Sub: Google Cloud のパブリッシャー / サブスクライバー ベースのメッセージング サービス。Pub/Sub を使用して、サードパーティのサービスや独自のカスタム エンドポイントにログをストリーミングできます。

ログの分析と処理

従来のデータセンターでは、集中的な分析や処理作業は、リソースをめぐって他のタスクと競合しなければならず、同じ事前の設備投資や容量の制約を受けます。Cloud Platform では、こうした問題は発生しません。必要なものを必要なときにプロビジョニングして支払います。時間、コア、ストレージ リソースの確保を心配する必要はありません。

Google Cloud のログ分析と処理は柔軟性に優れた設計になっています。以下のような Google Cloud のログ分析と処理ツールを利用できます。

  • Cloud Logging ログビューア
  • BigQuery
  • Dataproc
  • Dataflow

最新の分析ツールと処理ツールを使用する場合は、Compute Engine VM インスタンスに設定することで対応できます。Cloud Logging スタックを現在の分析パイプラインと処理パイプラインに統合することもできます。

Cloud Logging ログビューアと BigQuery によるログ分析

Cloud Console には、ログデータの検索やフィルタリングに使用できる Cloud Logging Viewer が組み込まれています。巨大なデータセットで大規模な分析を行う場合は、ログを BigQuery にストリーミングまたはエクスポートできます。処理に数分から数時間を要する大規模な MapReduce のジョブとは異なり、BigQuery ではテラバイト規模のログに対するクエリを数十秒で処理できることがあるため、アプリケーション異常の特定、監査ログ分析の実行、ログに関するトレンド分析の実行などを迅速に行うことができます。

Dataproc と Dataflow によるログ処理

分析前にログを処理する必要がある場合は、ログを Pub/Sub または Cloud Storage にエクスポートしてから、Dataproc または Dataflow で処理できます。Dataproc または Dataflow でログを処理した後、結果を BigQuery に送信して、インタラクティブまたはバッチで分析します。

Dataproc は、Google Cloud のマネージド Apache Hadoop と Apache Spark サービスです。すでに Hadoop と Spark を使用している場合は、ハードウェア リソースを事前に取得することを気にせず、Dataproc で既存のジョブを再利用できます。Cloud Storage に元のログと処理済みのログの両方を保存できるため、Dataproc クラスタを使用していないときにシャットダウンすることもできます。Dataproc クラスタは、使用中の仮想 CPU リソースについてのみ、使用した時間分だけ課金します。

また、フルマネージド ストリームおよびバッチ処理サービスである Dataflow もおすすめします。Dataflow は、Apache Beam に基づく、真のサーバーレス ソリューションです。Dataflow によって、リソースの動的なプロビジョンニングと割り振りがオンデマンドで行われるため、レイテンシを最小限に抑えつつ、リソースの利用効率を高いレベルで維持できます。Dataflow をログ処理パイプラインに統合する方法の詳細については、Dataflow を使用した大規模なログの処理をご覧ください。

ログの可視化

Google では、ログデータの可視化に使用できるマネージド サービスを 2 つ用意しています。

  • Datalab: Jupyter ノートブック モデル上に構築されています。BigQuery と Cloud Storage に保存されているデータに対してクエリを実行し、データを可視化できます。さらに、Datalab は Jupyter ノートブック上に構築されているため、大規模なエコシステムがすでにあり、すぐに利用できます。
  • Google データポータル 360: カスタマイズ可能で共有可能なレポートの作成に対応し、BigQuery によってサポートされています。

さらに、いくつかの Google Cloud パートナーの可視化サービスでは、TableauBIMEre:dash などの、BigQuery へのネイティブ コネクタが用意されています。詳細については、BigQuery のパートナーをご覧ください。

最大限のカスタマイズを行うために、BigQuery API と任意の JavaScript チャート ライブラリを使用して、BigQuery の上にダッシュボードを構築することもできます。詳細については、BigQuery ダッシュボードの作成をご覧ください。

費用

Cloud Logging には、1 か月あたり最大 5 GB 無料の基本階層とプレミアム ティアがあります。プレミアム ティアは、モニタリング対象リソースあたりの月極定額料金となり、時間単位で比例配分されます。

Cloud Storage、BigQuery、または Pub/Sub にログをエクスポートする場合、これらのサービスの利用に対して請求が発生します。BigQuery にログをエクスポートする場合、少額ですがデータ ストリーミングにも請求が発生します。詳細については、BigQuery の料金をご覧ください。

監査

Google Cloud には組み込みの監査ロギングが用意されており、最新の監査ロギング ソリューションも簡単に統合できます。現在どのサービスが監査ログを生成しているかについては、Cloud Audit Logs をご覧ください。

VM インスタンス ロギング

Linux の syslog や Windows の Windows イベントログなど、標準の OS 固有の監査ロギング ソリューションを使用する場合は、Compute Engine で Linux または Windows の VM インスタンスを作成することで、それらを設定できます。また、Compute Engine インスタンスに希望するサードパーティ ソリューションをデプロイすることもできます。

Google Cloud リソース ロギング

Google Cloud には、監査ロギング用の組み込みリソースも用意されています。Google Cloud には、次の 2 種類の監査ログがあります。

  • 管理アクティビティ監査ログ。あらゆる API 呼び出しと管理アクションを対象に、サービスやプロジェクトの構成とメタデータに影響するイベントを、ログエントリとして記録します。このログタイプは常に有効です。
  • データアクセス監査ログ。以下のイベントの各インスタンスを対象に、ログエントリを記録します。

    • API 呼び出しまたは管理アクションであって、サービスまたはプロジェクトの構成やメタデータを読み込むもの。
    • API 呼び出しまたは管理アクションであって、サービスが管理するユーザー提供データ(データベース サービスに格納されているデータなど)の作成、変更、読み込みを行うもの。

ほとんどの Google Cloud サービスは、データアクセス監査ログが管理アクティビティ ログよりも大量のログデータを生成する可能性があるため、デフォルトでは有効になっていません。データアクセス ログも管理アクティビティ ログよりも制限されています。デフォルトでは、プロジェクトのオーナーとプライベート ログ閲覧者の役割を持つユーザーのみがデータアクセス ログを利用できます。管理アクティビティ ログは、すべてのプロジェクト メンバーに表示されます。

Cloud Logging では、Google Cloud の Identity and Access Management レイヤである IAM を使用して、監査ログへのアクセスを管理できます。詳細は、Identity and Access Management セクションをご覧ください。

他の Cloud Logging ログと同様に、監査ログはデフォルトで 30 日間保持されます。監査ログを長期間保存する場合は、BigQuery、Cloud Storage、Pub/Sub にエクスポートできます。

サードパーティ サービスとの統合

Splunk などの、複数のサードパーティ ロギング ソリューションには、Google Cloud の監査ロギング サービスと統合するアドオンが用意されています。

モニタリング

クラウド環境でのモニタリングは、ログと同様に、データセンター環境に共通のモデルを使用します。モニタリング対象の仮想マシンにモニタリング エージェントをインストールします。このモニタリング エージェントは、一元管理された場所に指標を送信します。そこからアラート構成を定義し、リアルタイムで指標を可視化するためのダッシュボードを作成することができます。

タスクをモニタリングするために、Google Cloud は、さまざまな機能を備えたモニタリング フレームワークである Cloud Monitoring を用意しています。ロギングと同様に、Splunk、DataDog、Elastic / ELK スタック、Sensu、Nagios などのサインのモニタリング ツールとサービスを使用することもできます。

指標の収集

Compute Engine VM インスタンスから指標を収集するには、各インスタンスに Cloud Monitoring エージェントをインストールします。エージェントは、Cloud Monitoring に指標を自動的に送信します。

デフォルトでは、Cloud Monitoring は、CPU 負荷やネットワーク入出力など、各インスタンスのマシンリソースをモニタリングします。ただし、少量の追加構成で、Cloud Monitoring は、Apache ウェブサーバー、MongoDB、NGINX、Redis、Varnish などの、多くの一般的なサードパーティ アプリケーションもモニタリングできます。詳細については、サードパーティ アプリケーションのモニタリングをご覧ください。

Cloud Monitoring は、Compute Engine VM インスタンスから指標を収集するだけでなく、他の複数の Google Cloud サービスから指標を自動的に収集します。Cloud Monitoring エージェントは、Amazon EC2 インスタンスに直接インストールすることもできます。また、Cloud Monitoring は、多くの Amazon Web Services(AWS)サービスから指標を収集するように構成することもできます。Cloud Monitoring で使用可能な指標の一覧については、指標一覧をご覧ください。

また、カスタム指標を作成し、アプリケーションを計測して、Monitoring API を通じて Cloud Monitoring に送信することもできます。

Cloud Monitoring は 6 週間にわたって指標を保持します。

アラート

複数のエンドポイントにアラートを送信するように Cloud Monitoring を構成できます。デフォルトでは、対応するアラート エンドポイントは次のとおりです。

Cloud Monitoring によってネイティブにサポートされていないエンドポイントをターゲットにする場合は、Webhook を構成することもできます。詳細については、Webhook の構成をご覧ください。

可視化

ほとんどのモニタリング フレームワークと同様に、Cloud Monitoring にはカスタマイズ可能なダッシュボード UI があります。これにより、イベントを有意義かつ実用的な方法で可視化できます。特定のリソースタイプに対する特定の指標、集計された指標、特定のリソース ID 別指標などを表示するグラフを作成できます。さらに、インデックス付きのイベントログとインシデント リストを表示できます。

また、Cloud Console は、CPU、ディスク使用量、ネットワーク トラフィックなどの一般的な指標をサービス単位ベースで表示することもできます。Cloud Logging の場合と同様に、Datalab を使用して指標データを可視化し、操作することもできます。

費用

Cloud Monitoring には、1 か月あたり最大 5 GB 無料の基本階層とプレミアム ティアがあります。プレミアム ティアは、モニタリング対象リソースあたりの月極定額料金となり、時間単位で比例配分されます。

リソース プロビジョニング

ここでは、Google Cloud で仮想リソースをプロビジョニングする方法と、プロビジョニング プロセスでのバージョニングの役割について説明します。

VM インスタンスのプロビジョニング

Compute Engine には、インスタンスのプロビジョニングを効率化する組み込み機能がいくつか含まれています。インスタンス テンプレートと呼ばれるマシン プロファイルを作成し、それをインスタンス グループに割り当てて、必要に応じて数十から数百の同一インスタンスを作成できます。

Compute Engine の組み込みオートスケーラーを使用すると、これらのグループ内の VM インスタンスの数を自動的に調整できます。オートスケーラーを使用するには、特定の時間に実行するインスタンスの最小数と最大数を定義し、オートスケーラーがインスタンスを作成または破棄するための指標を定義します。オートスケーラーは、CPU 使用率、ロードバランサ容量、または独自のカスタム指標に応じてスケーリングを設定できます。詳細については、インスタンスのグループの自動スケーリングをご覧ください。

一般的なリソース プロビジョニング

Cloud Deployment Manager で、すべての Google Cloud リソースのデプロイを自動化できます。Puppet や Chef などの他の構成管理ツールと同様に、デプロイ テンプレートで指定されたリソースに対して、Cloud Deployment Manager がこのテンプレートを使用してリソースをインスタンス化して管理します。デプロイ テンプレートは、YAML、Python、Jinja2 などの形式で指定できます。

Cloud Deployment Manager は、Chef、Puppet、Ansible、Terraform など、現在のマシン構成を自動化するために使用するツールと組み合わせて使用することもできます。Puppet を使用した構成の例については、Cloud Deployment Manager と Puppet を使用した構成管理の自動化をご覧ください。

バージョン管理とソース リポジトリ

最新のバージョン管理ソリューションを使用する場合は、Google Cloud でホストして実行するか、GitHub や Bitbucket などの外部ホスティング サービスまたはマネージド サービスに接続すると、Google Cloud で対応できます。

Google には、Git に詳しいユーザー向けの Cloud Source Repositories も用意されています。これは、Google Cloud 上でホストされている、フル機能を備えたプライベート Git リポジトリです。ローカル Git リポジトリに Cloud Source Repositories をリモート リポジトリとして追加することや、GitHub または Bitbucket 上にホストすることが可能です。Cloud Source Repositories には、Cloud Console 内からリポジトリ ファイルの変更を参照、表示、編集、commit するために使用できるソースエディタも用意されています。

費用

Deployment Manager の使用に費用はかかりませんが、Cloud Deployment Manager を使用してデプロイしたリソースには費用が発生します。

ベータリリースの間、Cloud Source Repositories は無料で利用できます。

次のステップ

以下のデータセンター プロフェッショナル向け Google Cloud の他の記事をご覧ください。