ステップ 4: コンポーネントを設定する
このページでは、Cortex Framework のコアである Cortex Framework Data Foundation をデプロイする 4 番目の手順について説明します。このステップでは、デプロイに必要なGoogle Cloud サービスを設定します。
Google Cloud サービスを有効にする
このセクションでは、Google Cloud プロジェクトで次の Google Cloud サービスを有効にします。
- BigQuery インスタンスとデータセット
- Cloud Build API
- Cloud Storage バケット
- サービス アカウント
- Cloud Resource Manager API
- Data Catalog API(Datamesh をデプロイする場合)
- ワークフローの実行(Cortex for Meridian をデプロイする場合)
- AI プラットフォーム(Cortex for Meridian をデプロイする場合)
Cloud Shell を使用して、次の Google Cloud サービスを有効にします。
- 次のコマンドをコピーして貼り付けます。 - gcloud config set project SOURCE_PROJECT gcloud services enable bigquery.googleapis.com \ cloudbuild.googleapis.com \ composer.googleapis.com \ storage-component.googleapis.com \ cloudresourcemanager.googleapis.com \ dataflow.googleapis.com \ datacatalog.googleapis.com \ workflowexecutions.googleapis.com \ workflows.googleapis.com \ aiplatform.googleapis.com- SOURCE_PROJECTは、移行元のプロジェクト ID に置き換えます。
- 成功メッセージが表示された場合は、 Google Cloud サービスが有効になっていることを確認します。 
(省略可)Google Cloud プロジェクトで次の Google Cloud サービスを有効にできます。
- 変更データ キャプチャ(CDC)処理、階層の平坦化(SAP のみ)、有向非巡回グラフ(DAG)を介したデータ レプリケーション(SAP 以外のみ)用の Cloud Composer。インスタンスを設定するには、Cloud Composer のドキュメントをご覧ください。
- レポート テンプレートに接続するための Looker。
- BigQuery Sharing(旧 Analytics Hub)のリンクされたデータセットは、Weather DAG などの一部の外部ソースで使用されます。高度なシナリオでは、この構造を任意の他の利用可能なソースで入力することもできます。
- Dataflow: Google 広告などのマーケティング データセットの多くを統合するためのツール。
- Dataplex Universal Catalog: データメッシュの構築に使用されます。詳細については、データ メッシュ ユーザーガイドをご覧ください。
- Meridian を使用した Cortex Framework の場合:
- Colab Enterprise: Colab Enterprise ノートブックの実行中、次のものにアクセスできます。
- Cloud Storage 上のノートブックと構成ファイル。
- 関連する BigQuery ビューとテーブルに対してクエリを実行します。
- 結果を Cloud Storage に書き戻します。
- ワークフロー: ワークフローと Cloud Build を実行して、Colab Enterprise ノートブックの実行をトリガーします。
 
実行ユーザーに権限を付与する
Google Cloud コンソールまたは Google Cloud CLI を使用して、Cloud Build がトリガーされるプロジェクトでデプロイを実行する実行ユーザーに次の権限を付与します。
- Service Usage ユーザー(roles/serviceusage.serviceUsageConsumer)
- Storage オブジェクト閲覧者(roles/storage.objectViewer)
- ストレージ管理者(roles/storage.admin)
- Cloud Build 編集者(roles/cloudbuild.builds.editor)
- プロジェクト閲覧者(roles/reader)
- BigQuery ジョブユーザー(roles/bigquery.jobUser)
- BigQuery データ編集者( - roles/bigquery.dataEditor)
コンソール
- Google Cloud コンソールで [IAM] ページを開きます。 
- プロジェクトを選択し、[続行] をクリックします。 
- [アクセス権を付与] をクリックします。 
- 実行するユーザーのメールアドレスを入力します。 
- プルダウン メニューから次のロールを選択します。 - Service Usage ユーザー(roles/serviceusage.serviceUsageConsumer)
- Storage オブジェクト閲覧者(roles/storage.objectViewer)
- ストレージ管理者(roles/storage.admin)
- Cloud Build 編集者(roles/cloudbuild.builds.editor)
- プロジェクト閲覧者(roles/reader)
- BigQuery ジョブユーザー(roles/bigquery.jobUser)
- BigQuery データ編集者(roles/bigquery.dataEditor)
 
- Service Usage ユーザー(
- [保存] をクリックします。 
gcloud
ユーザーにロールを付与するには、add-iam-policy-binding コマンドを実行します。
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/serviceusage.serviceUsageConsumer"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/storage.objectViewer"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/storage.admin"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/cloudbuild.builds.editor"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/reader"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/bigquery.jobUser"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/bigquery.dataEditor"
次のように置き換えます。
- SOURCE_PROJECT: ソース プロジェクト ID。
- USER_EMAILは、実行するユーザーのメールアドレスに置き換えます。たとえば、user:my-user@example.com です。プリンシパル(- member)タイプの完全なリストについては、ポリシー バインディングのリファレンスをご覧ください。
Cloud Build サービス アカウントを作成して構成する
Cloud Build は、サービス アカウントを使用してユーザーの代わりにビルドを実行します。このセクションでは、Cortex Framework デプロイ用の専用サービス アカウントを作成し、Cloud Build サービス アカウントに必要な権限を付与する手順について説明します。
サービス アカウントを新規作成
セキュリティと制御を強化するために、Cortex Framework のデプロイ専用のサービス アカウントを作成します。新しいサービス アカウントを作成したら、_BUILD_ACCOUNT 置換パラメータを使用して、デプロイ プロセス中にこのサービス アカウントを指定できます。
始める前に、IAM API を有効にし、認証を設定し、IAM サービス アカウントとロールについて理解しておく必要があります。詳細については、サービス アカウントの作成をご覧ください。
この新しいサービス アカウントは、 Google Cloud コンソールまたは Google Cloud CLI を使用して作成します。
コンソール
- [サービス アカウント] ページに移動します。 - 残りの手順は、 Google Cloud コンソールに表示されます。 
- Google Cloud プロジェクトを選択します。 
- サービス アカウントと表示名を入力し、説明を入力して Google Cloud コンソールに表示します。この名前に基づいて、 Google Cloud コンソールでサービス アカウント ID が生成されます。必要に応じて ID を編集します。後で ID を変更することはできません。サービス アカウントには次のデフォルト値を使用します。 - 名前: 「cortex-deployer」。
- 説明: 「Cortex Deployer Service Account」。
- 表示名: 「Cortex Deployer」。
 
- ユーザーにこのサービス アカウントへのアクセスを許可します。 - サービス アカウントを介してデプロイを実行できるすべてのユーザー(自分自身を含む)の ID を追加します。
- サービス アカウント トークン作成者のロールを割り当てます。このロールの詳細については、サービス アカウントのロールをご覧ください。
 
- [完了] をクリックして、サービス アカウントの作成を完了します。 
サービス アカウントがすでにある場合は、次の操作を行います。
- [サービス アカウント] に移動
- [サービス アカウント] を選択します。
- [アクセス権を持つプリンシパル] タブをクリックします。
- [アクセス権を付与] をクリックします。- サービス アカウントを介してデプロイを実行できるすべてのユーザー(自分自身を含む)の ID を追加します。
- サービス アカウント トークン作成者のロールを割り当てます。
 
gcloud
- 次のコマンドを使用して、IAM ポリシーでサービス アカウントを作成します。 - gcloud iam service-accounts create cortex-deployer \ --description="Cortex Deployer Service Account" \ --display-name="Cortex Deployer"
- 次のコマンドを使用して、IAM ポリシーを Google Cloud プロジェクトに追加します。 - gcloud projects add-iam-policy-binding SOURCE_PROJECT \ --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \ --role="roles/cloudbuild.builds.editor"
- サービス アカウントを介してデプロイを実行できるすべてのユーザー(自分自身を含む)の ID を追加し、次のコマンドを使用して、それらのユーザーにサービス アカウント トークン作成者ロールを割り当てます。 - gcloud iam service-accounts add-iam-policy-binding cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com \ --member="user:USER_EMAIL" \ --role="roles/iam.serviceAccountTokenCreator"- 次のように置き換えます。 - Cortex Framework Data Foundation のデプロイのソース プロジェクトに対する SOURCE_PROJECT。
- USER_EMAILは、実行ユーザーのメールアドレス。
 
- Cortex Framework Data Foundation のデプロイのソース プロジェクトに対する 
新しいサービス アカウントの作成の詳細については、サービス アカウントを作成するをご覧ください。
権限を付与する
Cloud Build サービス アカウントには、ソース プロジェクト(別のプロジェクトにデプロイする場合はターゲット プロジェクト)で特定の権限が必要です。 Google Cloud コンソールまたは Google Cloud CLI を使用して、次のロールを付与します。
- Cloud Build サービス アカウント(roles/cloudbuild.builds.builder)
- サービス アカウント ユーザー(roles/iam.serviceAccountUser)
- BigQuery データ編集者(roles/bigquery.dataEditor)
- BigQuery ジョブユーザー(roles/bigquery.jobUser)
- ログ書き込み(roles/logging.logWriter)
- Colab Enterprise 管理者(roles/aiplatform.colabEnterpriseAdmin- Cortex for Meridian をデプロイする場合)
- Storage オブジェクト ユーザー(roles/storage.objectUser- Cortex for Meridian をデプロイする場合)
- ワークフロー編集者( - roles/workflows.editor- Cortex for Meridian をデプロイする場合)
コンソール
- Google Cloud コンソールで、[IAM] ページに移動します。 
- 移行元プロジェクトを選択します。 
- [ アクセスを許可] をクリックします。 
- 前の手順で取得したデフォルトの Cloud Build サービス アカウントを新しいプリンシパルとして追加します。 
- [ロールを選択] プルダウン メニューから [Cloud Build サービス アカウント] を検索し、[Cloud Build サービス アカウント] をクリックします。 
- 前の手順を繰り返して、残りのロールを追加します。 - サービス アカウント ユーザー
- BigQuery データ編集者
- BigQuery ジョブユーザー
- ログ書き込み
- Colab Enterprise 管理者(Cortex for Meridian をデプロイする場合)
- Storage オブジェクト ユーザー(Cortex for Meridian をデプロイする場合)
- ワークフロー編集者(Cortex for Meridian をデプロイする場合)
 
- [保存] をクリックします。 
- サービス アカウントと対応するロールが IAM ページに表示されていることを確認します。IAM ロールが付与されました。 
gcloud
次のコマンドを使用して、Cloud Build サービス アカウントにロールを付与します。
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
      --role="roles/cloudbuild.builds.builder"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
      --role="roles/iam.serviceAccountUser"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
      --role="roles/bigquery.dataEditor"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
      --role="roles/bigquery.jobUser"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
      --role="roles/logging.logWriter"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
      --role="roles/aiplatform.colabEnterpriseAdmin"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
      --role="roles/storage.objectUser"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
      --role="roles/workflows.editor"
次のように置き換えます。
- SOURCE_PROJECT: ソース プロジェクト ID。
- Cloud Build サービス アカウントの CLOUD_BUILD_SA(形式:CLOUD_BUILD_SA@SOURCE_PROJECT.gserviceaccount.com)。
詳細については、[IAM] ページを使用して Cloud Build サービス アカウントにロールを付与するとバケットでの IAM ポリシーの設定と管理をご覧ください。
Meridian 用の Cortex の追加のサービス アカウントを作成する
Cortex Framework をデプロイする場合は、Meridian 用に個別のサービス アカウントが必要です。Meridian 向けにデプロイしない場合は、この手順をスキップできます。次の場合は、個別のサービス アカウントが必要です。
- Workflow と Cloud Build を実行して、Colab Enterprise ノートブックの実行をトリガーします。
- 次のものにアクセスして Colab Enterprise ノートブックを実行する:
- Cloud Storage 上のノートブックと構成ファイル。
- 関連する BigQuery ビューとテーブルに対してクエリを実行します。
- 結果を Cloud Storage に書き戻します。
 
次のコマンドを使用して、Meridian 用 Cortex のサービス アカウントを作成します。
 gcloud iam service-accounts create cortex-meridian-colab-runner --project=SOURCE_PROJECT \
        --description="Cortex for Meridian Colab Runner Service Account" \
        --display-name="Cortex Meridian Runner"
次のように置き換えます。
- SOURCE_PROJECT: Cortex for Meridian がデプロイされているプロジェクト ID。
- cortex-meridian-colab-runner: 必要に応じて、別のサービス アカウント ID を使用できます。- cortex-meridian-colab-runnerがデフォルトであることを考慮してください。変更すると、他のコマンドの調整が必要になる場合があります。
Cortex for Meridian の専用サービス アカウントに必要な最小限のロールは次のとおりです。
- BigQuery データ閲覧者(roles/bigquery.dataViewer)
- BigQuery ジョブユーザー(roles/bigquery.jobUser)
- BigQuery 読み取りセッション ユーザー(roles/bigquery.readSessionUser)
- Cloud Build 編集者(roles/cloudbuild.builds.editor)
- Colab Enterprise 管理者(roles/aiplatform.colabEnterpriseAdmin)
- ログ書き込み(roles/logging.logWriter)
- ノートブック ランタイム管理者(aiplatform.notebookRuntimeAdmin)
- ストレージ管理者(roles/storage.admin)
- Storage オブジェクト ユーザー(roles/storage.objectUser)
- Vertex AI Colab サービス エージェント(roles/aiplatform.colabServiceAgent)
次のコマンドを使用して、Meridian 用 Cortex の専用サービス アカウントにロールを付与します。
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/bigquery.dataViewer'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/bigquery.jobUser'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/bigquery.readSessionUser'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/cloudbuild.builds.editor'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/aiplatform.colabEnterpriseAdmin'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/logging.logWriter'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/aiplatform.notebookRuntimeAdmin'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/storage.admin'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/storage.objectUser'
gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/aiplatform.colabServiceAgent'
次のように置き換えます。
- SOURCE_PROJECTは、Cortex for Meridian がデプロイされているプロジェクト ID に置き換えます。
- cortex-meridian-colab-runnerは、Cortex for Meridian のサービス アカウントに置き換えます。
DAG 関連ファイルを保存するストレージ バケットを作成する
処理 DAG スクリプトと、デプロイ中に生成されるその他の一時ファイルを保存するには、ストレージ バケットが必要です。これらのスクリプトは、デプロイ後に Cloud Composer または Apache Airflow インスタンスに手動で移動する必要があります。
次の手順で、Google Cloud CLI または Google Cloud コンソールからストレージ バケットを作成できます。
コンソール
- [Cloud Storage] に移動します。 
- BigQuery データセットと同じリージョンにバケットを作成します。 
- 作成したバケットを選択します。 
- [ - Permissions] タブに移動します。
- Build コマンドを実行するユーザー ID または作成したサービス アカウントに - Storage Object Creator権限を付与します。詳細については、バケットに新しい条件を設定する: コンソールをご覧ください。
gcloud
- Cloud Shell から次のコマンドを使用してバケットを作成します。 - gcloud storage buckets create gs://COMPOSER_DAG_BUCKET -l REGION/MULTI_REGION- 次のように置き換えます。 - COMPOSER_DAG_BUCKETは、新しいバケットの名前に置き換えます。
- REGION/MULTI_REGIONは、BigQuery データセットと同じリージョンに置き換えます。
 
- 次のコマンドを使用して、サービス アカウントに - Storage Object Creator権限を割り当てます。- gcloud storage buckets add-iam-policy-binding gs://COMPOSER_DAG_BUCKET \ --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \ --role=roles/storage.objectCreator- 次のように置き換えます。 - Cloud Build サービス アカウントの cortex-deployer。
- COMPOSER_DAG_BUCKETは、新しいバケットの名前に置き換えます。
 
- Cloud Build サービス アカウントの 
ログ用の Storage バケットを作成する
Cloud Build プロセス用に、ログを保存する特定のバケットを作成できます。これは、ログに保存される可能性のあるデータを特定のリージョンに制限する場合に便利です。ログのストレージ バケットは、Google Cloud CLI または Google Cloud コンソールから作成できます。
コンソール
ログ用の特定のバケットを作成する手順は次のとおりです。
- [Cloud Storage] に移動します。 
- デプロイを実行するリージョンと同じリージョンにバケットを作成します。 
- 作成したバケットを選択します。 
- [ - Permissions] タブに移動します。
- Build コマンドを実行するユーザー ID または作成したサービス アカウントに - Storage Object Admin権限を付与します。詳細については、バケットに新しい条件を設定する: コンソールをご覧ください。
gcloud
ログ用に特定のバケットを作成するには、次のコマンドを使用します。
- Cloud Shell から次のコマンドを使用してバケットを作成します。 - gcloud storage buckets create gs://LOGS_BUCKET_NAME -l REGION/MULTI_REGION- 次のように置き換えます。 - REGION/MULTI_REGIONは、バケットを作成するリージョンに置き換えます。
- LOGS_BUCKET_NAMEは、新しいバケットの名前に置き換えます。
 
- 次のコマンドを使用して、サービス アカウントに - Storage Object Admin権限を割り当てます。- gcloud storage buckets add-iam-policy-binding gs://LOGS_BUCKET_NAME \ --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \ --role=roles/storage.objectAdmin- 次のように置き換えます。 - Cloud Build のデフォルトのサービス アカウントの cortex-deployer。
- LOGS_BUCKET_NAMEは、新しいバケットの名前に置き換えます。
 
- Cloud Build のデフォルトのサービス アカウントの 
省略可能な手順
デプロイをより細かくカスタマイズするには、次の省略可能な手順を検討してください。
- データメッシュ: 説明以外の機能を実装するためにデータメッシュのデフォルト値を変更する必要がある場合は、データメッシュのコンセプトとデータメッシュのユーザーガイドをご覧ください。
次のステップ
このステップが完了したら、次のデプロイ手順に進みます。
- ワークロードを確立する。
- リポジトリのクローンを作成する。
- 統合メカニズムを決定します。
- コンポーネントを設定する(このページ)。
- デプロイを構成する。
- デプロイを実行します。