接続 Google Cloud

概要

このガイドでは、 Google Cloud Platform を IBM Cloudability に接続する手順を説明します。 Cloudability サポートします

  • GCP 標準請求

  • GCP 詳細な請求書

接続後、 Cloudability 内で FinOps の機能を利用できるようになります。

前提条件

  • Cloudability IAMを使用してカスタムロールを作成および管理する

  • GCP でカスタムロールを作成するには、IAM 権限が必要です

  • Cloudability このカスタムロールは、請求、コミットメント、および価格設定データの読み取りに特化した権限を使用します。

    • CloudabilityRole_Billing – 請求先アカウント

    • CloudabilityRole_AdvancedFeatures – プロジェクト向け

  • GCP 内で GCS バケットを作成する権限を持つ必要があります。

  • 以下のパーミッションが必要です:

    • bigquery.tables.export (テーブルデータを からエクスポート) BigQuery

    • storage.buckets.getIamPolicy

    • storage.buckets.get

    • storage.multipartUploads 中止

    • storage.multipartUploads 作成

    • storage.multipartUploads リスト

    • storage.multipartUploads.listParts

    • storage.objects.create

    • storage.objects.delete

    • storage.objects.get

    • storage.objects.list

    • storage.objects.update

  • クラウドコンソールからスクリプトを正常に実行するには、gcloudユーザーにプロジェクトレベルで以下のIAM権限を付与する必要があります:

    • iam.roles.create

    • resourcemanager.projects.setIamPolicy

    • resourcemanager.projects.getIamPolicy

  • これにより、顧客は GCP プロジェクト内でその役割を担うあらゆるエンティティによる全アクションを完全に制御し、可視化できます。

  • Cloudability ベンダー認証情報への管理者アクセス

  • Google Cloud Resource Manager API のアクセスおよび有効化機能

はじめに:

Cloudability の GCP 認定プロセスには、主に2つのステップが必要です:

  • GCP 請求アカウント認証

  • GCP プロジェクト認証(高度な機能向け)

GCP の請求アカウント認証プロセスにはいくつかのステップがあり、各段階で GCP ポータルと Cloudability の両方での操作が必要となります。

このプロセスにおいて、 Cloudability はお客様の請求テーブルIDを使用し、gcloud IAMコマンドを含むスクリプトを生成します。このスクリプトは GCP コンソールで実行する必要があります。

  • 該当するプロジェクトのIAMセクションをチェックして、これらの権限を持っているかどうかを確認する。
  • Google Cloud の Resource Manager APIを有効にする
  • Cloudability Google のCloud Resource Manager APIを使用して、利用可能な機能をサポートするために必要な権限が付与されているかどうかをテストします。
  • Google のクラウド Resource Manager APIは、お客様に一切の費用負担なく多くの利点を提供します。 詳細については、 Resource Manager をご覧ください。
  • Resource Manager 経由で提供されるAPIの一覧は、 Cloud Resource Manager APIで確認できます。
注記: Cloudability は、課金および高度な機能をサポートするために特定の権限が付与されているかどうかをテストするために、 projects.testIamPermissions API に依存しています。 詳細については、 メソッド: ` projects.testIamPermissions ` を参照してください

GCP 請求アカウントの認証

ステップ1 - GCP ポータル – BigQuery エクスポートとテーブルIDを有効化

  • GCP コンソールで、 [APIとサービス] > [ライブラリ ] の下で 「Cloud Resource Manager API」 を検索します。

  • クラウド Resource Manager API ページから、を選択します有効にする

  • 「APIを有効にする」にチェックが入っていることを確認してください。

Google コンソールで作業し、検索バーに「Billing」と入力し、結果が表示されたら「Billing accounts」を選択します。

請求書エクスポートを選択します。

Edit Settings(設定を編集する)を選択する。

設定編集をクリックして、設定したいエクスポートの種類(標準請求書または詳細請求書)を選択してください。

注: 詳細請求書をお勧めします。データが追加情報で充実され、より詳細なレポートが提供されるためです。

請求データ(おそらく請求プロジェクト)を保持するプロジェクトを選択し、データセットをクリックして「新しいデータセットを作成」を選択してください。

データセットIDを追加し、[データセットの作成]をクリックします。

必要に応じて地域を変更するか、マルチリージョンを使用してください。

Save(保存)」を選択し、手続きを完了する。

注: 請求アカウントのエクスポート BigQuery を有効にする場合。 指定されたデータセット内にテーブルが自動的に作成されます。 このテーブルは請求テーブルと呼ばれます
  • GCP 標準使用コストテーブル名は、この形式である必要があります: gcp_billing_export_v1_<BILLING_ACCOUNT_ID>

  • GCP 詳細な使用コスト表の名称は、この形式で指定してください gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID>

標準使用量/詳細使用量コスト表は、下記画像に記載されている以下の区分詳細を含む必要があります。

注記: Google チュートリアル:  請求データを BigQuery にエクスポート .

BigQuery エクスポートを有効にした後、課金テーブルが作成されるまで数時間かかります。その後、テーブルIDを確認できるようになります。

請求データのエクスポート( BigQuery )を含むプロジェクトに移動し、 [Table info] > [Table ID] で請求テーブルのIDを確認できます。

請求アカウントに対して「 BigQuery 」エクスポートを有効化する際には、請求データをエクスポートする対象となるプロジェクトとデータセットを指定する必要があります。 指定されたデータセット内にテーブルが自動的に作成されます。 このテーブルは課金テーブルと呼ばれ、 Cloudability のサービスアカウントはこのテーブルからデータを読み取れる必要があります。

ストレージ バケットを作成する

BQテーブルエクスポートからデータをコピーし、 Cloudability、このデータを取得するために、ストレージバケットが必要である。

Google Consoleで作業する。検索バーに「Cloud Storage」と入力し、表示されたら選択する。

バケットを作成するには、「作成」をクリックします。

ストレージバケットの名前を入力します(例:cloudability-export)。

プロンプトが表示されたら、デフォルトのまま「Confirm」をクリックします。

バケットが作成される。

ステップ2 - Cloudability – Cloudability に認証情報を追加する

GCSによる標準請求

注: 標準課金では、API経由のストリーミングではなくストレージバケットの使用を推奨します

上記の情報を収集したら、 Cloudability にその情報を入力して、 GCP の認証情報を更新できます。

Cloudability この情報を使用してシェルスクリプトを生成します。 スクリプトが GCP ポータル内の Cloud Shell から実行されると、ストレージアカウントへのアクセスを提供するために、カスタムロールを介して Cloudability を作成し、その権限が付与されます。

  • Cloudability に移動し、

  • 設定 > ベンダー認証情報 > データソースの追加 > GCP

  • 次へをクリック

  • GCP を選択します - 「 GCP アカウントの追加」パネルが開きます。

または

  • 設定 > ベンダー認証情報 > Ingress > GCP

  • 次へをクリック

  • GCP 標準金を選択すると、認証情報を追加するパネルが開きます。

  • 完全なテーブルIDを入力してください。これはプロジェクト、データセット、テーブルの組み合わせです。例: project:dataset.gcp_billing_export_v1_<BILLING_ACCOUNT_ID>

  • GCS バケット名を入力してください

  • 組織IDを入力してください(推奨。迅速なオンボーディングに役立ちます)

  • セットアップスクリプトを生成をクリック

  • スクリプトをダウンロード

  • GCP のシェルスクリプトテンプレートがローカルにダウンロードされます。次のステップで GCP コンソールにアップロードする必要があるため、安全な場所に保存してください

BQストリーミングによる標準課金

  • 設定 > ベンダー認証情報 > データソースの追加 > GCP

  • 次へをクリック

  • GCP を選択します - 「 GCP アカウントの追加」パネルが開きます。

または

  • 設定 > ベンダー認証情報 > Ingress > GCP

  • 次へをクリック

  • GCP 標準金を選択すると、認証情報を追加するパネルが開きます。

  • 完全なテーブルIDを入力してください。これはプロジェクト、データセット、テーブルの組み合わせです。例: project:dataset.gcp_billing_export_v1_<BILLING_ACCOUNT_ID

  • バケット名(任意 - 空欄可)

  • 組織ID(推奨、迅速なオンボーディングに役立ちます)

  • セットアップスクリプトを生成をクリック

  • スクリプトをダウンロード

  • GCP のシェルスクリプトテンプレートがローカルにダウンロードされます。次のステップで GCP コンソールにアップロードする必要があるため、安全な場所に保存してください

GCSによる詳細な請求(推奨)

  • 設定 > ベンダー認証情報 > データソースの追加 > GCP

  • 次へをクリック

  • GCP を選択します - 「 GCP アカウントの追加」パネルが開きます。

または

  • 設定 > ベンダー認証情報 > Ingress > GCP

  • 次へをクリック

  • GCP詳細請求を選択すると、資格情報の追加パネルが開きます。

  • 完全なテーブルID を入力してください。これはプロジェクト、データセット、テーブルの組み合わせです。例: project:dataset.gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID

  • GCS バケット名を入力してください。

  • 詳細な請求日を入力してください。

    注: この日付は、詳細な請求明細のエクスポートを有効にした月と年を示しています。 初めてこれを行う場合は、現在の月をYYYY-MMとします。
  • 組織ID (推奨、迅速なオンボーディングに役立ちます)

  • セットアップスクリプトを生成をクリック

  • スクリプトをダウンロード

  • GCP のシェルスクリプトテンプレートがローカルにダウンロードされます。次のステップで GCP コンソールにアップロードする必要があるため、安全な場所に保存してください

ステップ3 – GCP シェルスクリプトをアップロードして実行する

このスクリプトは2つの手順を実行します:まず、請求プロジェクト内にカスタムロールを設定し、次に Cloudability のサービスアカウントをプロジェクトのメンバーとして追加し、カスタムロールを紐付けます。 これにより、当社のサービスアカウントは、課金プロジェクト内の BigQuery テーブルからのみデータを読み取ることが保証されます。 非課金プロジェクトでは、 BigQuery データにアクセスしません。

GCS バケットの場合、上記のプロセスに従い、 BigQuery エクスポートジョブを通じて BigQuery のデータを GCS にエクスポートし、そのデータを Cloudability にプルします。

1. カスタムロールの設定

スクリプトはまず、課金プロジェクト内にカスタムロールを作成する。 このスクリプトは、請求データを読み取るために必要な権限をカスタムロールに付与します

# 例: my-billing-project-123 向けに請求カスタムロールを作成 # 請求プロジェクトIDは my-billing-project-123 gcloud iam roles create CloudabilityRole_Billing \ --project \ my-billing-project-123 \ --title \ " Cloudability 請求ロール" \ --description \ " Cloudability に請求アカウントデータへのアクセスを許可" \ --permissions \ bigquery.jobs.create,bigquery.tables.getData \ --stage =GA

2. サービスアカウントをメンバーとして追加し、カスタムロールをバインドする

カスタムロールが作成されると、スクリプトは Cloudabilityサービスアカウントを課金プロジェクトのメンバーとして追加し、そのアカウントにカスタムロールを紐付けます。

# 例: Cloudability のサービス アカウントを my-billing- project-123 のメンバーとして追加します # 課金プロジェクト ID my-billing-project-123 です gcloud projects add-iam-policy-binding my-billing-project-123 \ --member serviceAccount:billing-data-service-acct@cloudability- credentials.iam.gserviceaccount.com \ --role 'projects/my-billing-project- 123/roles/CloudabilityRole_Billing '

3. GCS バケット

GCP の標準課金(GCS バケット)または GCP の詳細課金を選択する場合、 GCP GCS バケットを設定する必要があります。 Cloudability、構成された GCP BigQuery テーブルからこの GCS バケットにデータを一時的にエクスポートし、このデータを Cloudability に取り込みます。 データの取り込みが完了すると、 Cloudability はバケットからデータを削除します。

注: 同一の GCP 支払者アカウントIDは、標準請求と詳細請求の両方で同時に使用することはできません。

スクリプトを実行する

以下の手順に従って、クラウドコンソール内の Cloud Shell からスクリプトを実行してください。 Cloud Shell、どこからスクリプトを実行しても構わない。

  • Cloud Shell を起動し、アイコンを選択して「 ファイルをアップロード 」を選択します。 ファイルエクスプローラからダウンロードしたスクリプトを選択し、確認します。

  • スクリプトを実行可能にするには、`chmod +x <スクリプト名>` を実行してください

  • 次に、 Cloud Shell でスクリプトを実行する:

./ script-name

注: 以下のコマンドでは、script-name を実際のスクリプトの完全な名前と拡張子に置き換えてください。
  • エラーがないかチェックする。 例:

  • スクリプトが成功すれば、 Cloud Shell に次のような出力が表示される:

ステップ4 – Cloudability 認証情報の確認

  • 「認証情報の確認」を選択してください。

  • ステータスを更新するには、更新アイコンを選択します。

緑色のチェックマークは、この請求アカウントが正常にクレデンシャルされたことを示します。

注: プロジェクトはすぐに表示されません。 Cloudability にすべて表示されるまで最大24時間かかります。

Cloudability への請求アカウントの追加が完了しました。 定期的にデータをインジェストしており、お客様の請求データは次のインジェストサイクルからご利用いただけます。 次回のインジェスト時に、この課金アカウントに関連するプロジェクトも列挙する。

最後に、追加で GCP の請求アカウントを登録したい場合は、各請求アカウントごとにこの手順を繰り返してください。

注:GCP アカウントの設定時には、適用されているドメイン制限をすべて無効にしてください。 クレデンシャル・プロセスが完了したら、これをオンにすることができる。

GCP プロジェクト認証(高度な機能)

このセクションの目的は、 Cloudability の高度な機能を有効にするために、プロジェクトのクレデンシャルを設定する手順を説明することです。 組織に複数の GCP プロジェクトがある場合、高度な機能を有効にしたい各プロジェクトに対してこの手順を繰り返す必要があります。

始める前に、前提条件を確認してください

プロジェクトを認証する:

  • プロジェクトレベルのクレデンシャルの構成」で説明するように、新しいプロジェクト・クレデンシャルを追加します。

  • スクリプトの実行方法については、 「スクリプトの実行」 に記載されている手順に従って実行してください。

  • 一括操作を使用した GCP 認証について理解を深める

新しいプロジェクト認証情報を追加する

GCP プロジェクトで高度な機能を有効にするには:

  • ベンダー認証情報に移動し、 「 GCP 」 タブを選択します

  • 編集アイコンを選択して、[資格情報の編集]パネルを開きます。

  • 「更新」を選択してください。

  • 「スクリプトをダウンロード」を選択してください

  • ブラウザに警告が表示された場合は、 「保持」 を選択してください。

スクリプトを実行する

詳細については、スクリプトの実行セクションを参照してください

成功を確認する方法

これは、一括操作または手動で行うことができる。

  • UI経由の一括検証:  GCP 一括操作を使用した認証

  • UIによる手動検証:

  • 各プロジェクトで「 認証情報の確認」を選択してください。

  • 詳細を選択し、プロジェクトが高度な機能に必要な権限を持っていることを確認してください。

    s

よくあるご質問

請求エクスポートページに表示される詳細は、請求テーブルの BigQuery ページに表示される詳細とは異なります。

具体的には、 BigQuery ページのテーブル ID は請求プロジェクト ID を使用して構築され、請求エクスポートページには請求プロジェクト名が表示されます。 IDは一意だが、名前は一意ではない。

解決策:前提条件を確認する。

プロジェクトID、データセット、またはテーブルIDが切り詰められる場合の対処法

コンテキスト: 完全な GCP 請求テーブルIDを入力すると、エラーが発生していることに気づきます。 さらに、クレデンシャルを編集すると、プロジェクトID、データセット、またはテーブルIDが切り捨てられることに気付きます。 GCP の請求テーブルIDは、請求エクスポートページから取得または作成した可能性があります。

解決策: 請求テーブルの BigQuery ページから、テーブルID全体をコピーする必要があります。

[スクリプト] エラー: ( gcloud.iam.roles.create ) プロジェクト内のリソースが競合の対象となっています。

コンテキスト:課金プロジェクト内にrole_id CloudabilityRole_Billing を持つ既存のロールがある場合に発生する可能性があります。 このエラーは、role_id CloudabilityRole_Billing を持つロールがすでに存在するため、スクリプトで新しいロールを作成できないことを示しています。

解決策このエラーは無視してください。

[スクリプト] エラー: ( gcloud.iam.roles.create ) FAILED_PRECONDITION: 削除済み状態のロールが既に存在するロール_ID ( CloudabilityRole_Billing ) を持つロールを作成できません。

コンテキスト:この問題は、role_id CloudabilityRole_Billing、課金プロジェクトから既存のロールを削除した後にスクリプトを実行すると発生する可能性があります。 ロールが削除された状態である可能性があり、スクリプトはそのrole_idで新しいロールを作成できません。 ロールのステータス(有効、無効、削除)はクラウドコンソールで確認できます。

解決方法請求プロジェクトからrole_id CloudabilityRole_Billing を持つ既存のロールを削除し、スクリプトを再実行します。

GCP ドメインの制限事項への対応方法

ドメインに制限がある場合、エラーメッセージが表示されることがあります。 これを解決するには、組織ポリシーに Cloudability の GCP ワークスペースの顧客 ID を追加し、 Cloudability をクエリ対象としてホワイトリストに登録してください。

ドメインは cloudability.com で、ID は C03n3dgoi です

GCP ペイヤーアカウントの Cloudability レポートUIにおけるSCUD機能の完全な強化内容を確認するには、認証情報設定にどの請求エクスポートを使用すべきですか?

GCP の詳細請求エクスポートが推奨されます。これにより、 Cloudability レポート内の過剰利用および利用不足のシナリオを完全に可視化できます。

VPCサービス制御

GPUデータに基づく推奨情報の取得

前提条件:

  1. 各仮想マシンにはGPUが接続されている必要があります。

  1. 各仮想マシンにはGPUドライバー がインストールされている必要があります。

  1. 各VMには、 Python 3.6、またはそれ以降がインストールされている必要があります。

  1. 各VMには、 Python 仮想環境の作成に必要なパッケージがインストールされている必要があります。

また、 適切なサイズ設定については「 GCP Monitoring Agent の設定」 を参照してください。