Google Service Control は、Google Cloud Platform のインフラストラクチャ サービスです。これにより、ロギング、モニタリング、ステータス チェックなどのコントロール プレーン機能をマネージド サービスで使用できるようになります。これは、Google API や Google Cloud Endpoints で広く使用されています。このページでは、Google Service Control の機能と仕組みについて説明します。
Service Control を使用する理由
クラウド サービスを開発するときは通常、まずビジネス要件とアーキテクチャ設計から始め、次に API の定義と実装に進みます。サービスを本番環境に移行する場合は、多くのコントロール プレーン問題に対処する必要があります。
- サービスへのアクセスを制御する方法。
- API キーを検証する方法。
- 一般ユーザーとプロデューサーの両方にロギングデータとモニタリング データを送信する方法。
- これらのデータを視覚化するためのダッシュボードを作成および管理する方法。
- サービスでコントロール プレーン コンポーネントをスケールする方法。
Service Control は、高い効率性、スケーラビリティ、可用性でこうしたニーズに対処するコントロール プレーン プロバイダです。JSON REST クライアントと gRPC クライアントを使用してどこからでもアクセスできる簡単な公開 API が搭載されているため、サービスをオンプレミスからクラウド プロバイダに移行したり、クラウド プロバイダ間で移行したりするときに、コントロール プレーン プロバイダを変更する必要がありません。
Google Cloud Endpoints を使用してビルドされたサービスは、既に Service Control と統合されています。Cloud Endpoints は、リクエストがプロキシに届くたびに Service Control を介してロギングデータとモニタリング データを送信します。Cloud Endpoints サービスのためにこの他にもロギングデータとモニタリング データを報告する必要がある場合は、サービスから直接 Service Control API を呼び出すことができます。
Service Control API 定義はオープンソースであり、GitHub で使用できます。DNS 名を変更すると、Service Control API の代わりの実装を簡単に使用できます。
アーキテクチャ
Google Service Control は、一連のマネージド サービスとそのオペレーション(活動)を対象とし、オペレーションを続行できるかどうかをチェックして、完了したオペレーションを報告します。Google Service Management、Stackdriver Logging、Stackdriver Monitoring など、他の Google Cloud サービスを背後で利用しており、サービス プロデューサーが複雑さを意識しなくても済むようになっています。Google Service Control では、キャッシュ保存、一括処理、集約、再試行を使用して、カプセル化されている個々のバックエンド システムよりも高いパフォーマンスと可用性を実現しています。
マネージド サービス
マネージド サービスは、Google Service Management で管理されるネットワーク サービスです。マネージド サービスにはそれぞれ example.googleapis.com などの一意の名前が付いています。この名前は RFC 1035 に準拠した有効な完全修飾 DNS 名である必要があります。
次に例を示します。
- Google Cloud Pub/Sub(
pubsub.googleapis.com) - Google Cloud Vision(
vision.googleapis.com) - Google Cloud Bigtable(
bigtable.googleapis.com) - Google Cloud Datastore(
datastore.googleapis.com)
Google Service Management は各サービスのライフサイクルとその設定を管理します。この設定は Google Service Control の動作をカスタマイズする場合に使用されます。サービスの設定は、API とその設定を表示する場合や、API を有効または無効にする場合などに、Google API Console によっても使用されます。
オペレーション
Google Service Control では、オペレーションという汎用的な概念を使用して、API 呼び出しやリソース使用状況などマネージド サービスの活動を表します。各オペレーションはマネージド サービスと特定のサービス ユーザーに関連付けられ、オペレーションごとに API メソッド名やリソース使用量など、どのようなオペレーションなのかを説明する一連のプロパティがあります。詳しくは、オペレーションの定義をご覧ください。
チェック
Service Control API には services.check メソッドが用意されています。このメソッドは、マネージド サービスに対してオペレーションを続行できるかどうかを判断します。
次に例を示します。
- サービス ユーザーが引き続きアクティブかどうかをチェックします。
- サービス ユーザーがサービスを有効にしたかどうかをチェックします。
- API キーが引き続き有効かどうかをチェックします。
単一の API 呼び出し内で複数のチェックを実行すると、複数のバックエンド システムでチェックする場合に比べて、サービス プロデューサーはパフォーマンスと信頼性を高め、開発費用を削減できます。
レポート
Service Control API には services.report メソッドが用意されています。このメソッドはマネージド サービスに対して完了したオペレーションをバックエンド システム(Stackdriver Logging や Stackdriver Monitoring など)に報告します。報告されたデータは、Google API Console で表示したり、Stackdriver Logging API や Stackdriver Monitoring API などの適切な API を使用して取得できます。
次のステップ
- スタートガイドを読んで Google Service Control API の設定方法と使い方を理解します。