ステップ 4: コンポーネントを設定する

このページでは、Cortex Framework のコアである Cortex Framework Data Foundation をデプロイする 4 番目のステップについて説明します。このステップでは、デプロイに必要なGoogle Cloud サービスを設定します。

このセクションでは、Google Cloud プロジェクトで次の Google Cloud サービスを有効にします。

  • BigQuery インスタンスとデータセット
  • Cloud Build API
  • Cloud Storage バケット
  • サービス アカウント(省略可)
  • Cloud Resource Manager API

Cloud Shell を使用して、次の Google Cloud サービスを有効にします。

  1. 次のコマンドをコピーして貼り付けます。

    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
    

    SOURCE_PROJECT は、ソース プロジェクト ID に置き換えます。

  2. 成功メッセージが表示されたら、 Google Cloud サービスが有効になっていることを確認します。

(省略可)Google Cloud プロジェクトで次の Google Cloud サービスを有効にできます。

  • Cloud Composer: 有向非巡回グラフ(DAG)による変更データ キャプチャ(CDC)処理、階層のフラット化(SAP のみ)、データ レプリケーション(SAP 以外のみ)。インスタンスを設定するには、Cloud Composer のドキュメントをご覧ください。
  • Looker: レポート テンプレートに接続します。
  • Analytics Hub にリンクされたデータセットは、天気 DAG などの一部の外部ソースに使用されます。高度なシナリオでは、この構造に任意の利用可能なソースを入力することもできます。
  • Dataflow: Google 広告などの多くのマーケティング データセットを統合するためのツール。
  • Dataplex: データメッシュの構築に使用されます。詳細については、Data Mesh ユーザーガイドをご覧ください。

実行ユーザーに権限を付与する

Cloud Build がトリガーされたプロジェクトでデプロイを実行するには、実行するユーザーに次の権限を付与します。

  • Service Usage ユーザー
  • Cloud Build のデフォルト バケットまたはログ用バケットの Storage オブジェクト閲覧者
  • 出力バケットへのオブジェクト ライター
  • Cloud Build 編集者
  • プロジェクト閲覧者またはストレージ オブジェクト閲覧者

これらの権限を付与する方法について詳しくは、次のドキュメントをご覧ください。

Cloud Build アカウントを構成する

Cloud Build は、サービス アカウントを使用してビルドを実行します。次の手順で、Cortex Framework をデプロイする権限を Cloud Build サービス アカウントに付与します。

Cortex Framework をデプロイする権限を Cloud Build サービス アカウントに付与するには、次のコマンドを使用します。

  1. Cloud Shell を開き、次のコマンドを実行して、デフォルトの Cloud Build サービス アカウントを確認します。

    gcloud builds get-default-service-account --project PROJECT_ID
    
  2. 次のような形式でレスポンスが返されます。

    # Response one
    `serviceAccountEmail: projects/PROJECT_NUMBER/serviceAccounts/PROJECT_NUMBER-compute@developer.gserviceaccount.com`
    # Response two
    `serviceAccountEmail: projects/PROJECT_NUMBER/serviceAccounts/PROJECT_NUMBER@cloudbuild.gserviceaccount.com`
    

    レスポンスでは、PROJECT_NUMBER はプロジェクト番号に置き換えられます。以前のサービス アカウントのメールアドレスのいずれかが、デフォルトの Cloud Build サービス アカウントです。

  3. IAM で @developer.gserviceaccount.com アカウントまたは @cloudbuild.gserviceaccount.com アカウントを確認して、IAM でこのサービス アカウントを特定します。

  4. コンソールまたは Google Cloud CLI を使用して、ソース プロジェクト(別のターゲットにデプロイする場合はターゲット プロジェクト)の Cloud Build サービス アカウントに次の権限を付与します。

    • Cloud Build サービス アカウント(roles/cloudbuild.builds.builder
    • サービス アカウント ユーザー(roles/iam.serviceAccountUser
    • BigQuery データ編集者(roles/bigquery.dataEditor
    • BigQuery ジョブユーザー(roles/bigquery.jobUser

    Console

    1. Google Cloud コンソールの [IAM] ページに移動します。

      IAM に移動

    2. ソース プロジェクトを選択します。

    3. [ アクセスを許可] をクリックします。

    4. 前の手順で取得したデフォルトの Cloud Build サービス アカウントを新しいプリンシパルとして追加します。

    5. [ロールを選択] プルダウン メニューで [Cloud Build サービス アカウント] を検索し、[Cloud Build サービス アカウント] をクリックします。

    6. 前の手順を繰り返して、残りの権限(サービス アカウント ユーザーBigQuery データ編集者BigQuery ジョブユーザー)を追加します。

    7. [保存] をクリックします。

    8. サービス アカウントと対応するロールが IAM ページに表示されていることを確認します。IAM ロールが正常に付与されました。

    gcloud

    次のコマンドを使用して、Cloud Build サービス アカウントにロールを付与します。

    gcloud projects add-iam-policy-binding SOURCE_PROJECT \
        --member="serviceAccount:CLOUD_BUILD_SA" \
        --role="roles/cloudbuild.builds.builder"
    gcloud projects add-iam-policy-binding SOURCE_PROJECT \
        --member="serviceAccount:CLOUD_BUILD_SA" \
        --role="roles/iam.serviceAccountUser"
    gcloud projects add-iam-policy-binding SOURCE_PROJECT \
        --member="serviceAccount:CLOUD_BUILD_SA" \
        --role="roles/bigquery.dataEditor"
    gcloud projects add-iam-policy-binding SOURCE_PROJECT \
        --member="serviceAccount:CLOUD_BUILD_SA" \
        --role="roles/bigquery.jobUser"
    

    コマンドのプレースホルダ値を、次のように置き換えます。

    • SOURCE_PROJECT は、ソース プロジェクト ID に置き換えます。
    • CLOUD_BUILD_SA は、Cloud Build のデフォルトのサービス アカウントに置き換えます。

    詳細については、[IAM] ページを使用して Cloud Build サービス アカウントにロールを付与するバケットでの IAM ポリシーの設定と管理をご覧ください。

省略可能な手順

デプロイメントをより適切にカスタマイズするには、次のオプションの手順を検討してください。

処理 DAG スクリプトやデプロイ中に生成されたその他の一時ファイルを保存するには、ストレージ バケットが必要です。これらのスクリプトは、デプロイ後に Cloud Composer インスタンスまたは Apache Airflow インスタンスに手動で移動する必要があります。

次の手順で、Google Cloud CLI または Google Cloud コンソールからストレージ バケットを作成できます。

Console

  1. [Cloud Storage] に移動します。

    Cloud Storage

  2. BigQuery データセットと同じリージョンにバケットを作成します。

  3. 作成したバケットを選択します。

  4. [Permissions] タブに移動します。

  5. Build コマンドを実行するユーザー ID または作成したサービス アカウントStorage Object Creator 権限を付与します。詳細については、バケットに新しい条件を設定する: コンソールをご覧ください。

gcloud

  1. Cloud Shell から次のコマンドを使用してバケットを作成します。

    gcloud storage buckets create gs://DAG_BUCKET_NAME -l REGION/MULTI_REGION
    

    次のように置き換えます。

    • DAG_BUCKET_NAME は、新しいバケットの名前に置き換えます。
    • REGION/MULTI_REGION は、BigQuery データセットと同じリージョンに置き換えます。
  2. 次のコマンドを使用して、サービス アカウントに権限 Storage Object Creator を割り当てます。

    gsutil iam ch serviceAccount:CLOUD_BUILD_SA:roles/storage.objectCreator gs://DAG_BUCKET_NAME
    

    次のように置き換えます。

    • CLOUD_BUILD_SA は、Cloud Build のデフォルトのサービス アカウントに置き換えます。
    • DAG_BUCKET_NAME は、新しいバケットの名前に置き換えます。

ログ用の Storage バケットを作成する

Cloud Build プロセスがログを保存する特定のバケットを作成できます。これは、ログに保存される可能性のあるデータを特定のリージョンに制限する場合に便利です。ログ用のストレージ バケットは、Google Cloud CLI または Google Cloud コンソールから作成できます。

Console

ログに特定のバケットを作成する手順は次のとおりです。

  1. [Cloud Storage] に移動します。

    Cloud Storage

  2. デプロイを実行するリージョンにバケットを作成します。

  3. 作成したバケットを選択します。

  4. [Permissions] タブに移動します。

  5. Build コマンドを実行するユーザー ID または作成したサービス アカウントStorage Object Admin 権限を付与します。詳細については、バケットに新しい条件を設定する: コンソールをご覧ください。

gcloud

ログ用の特定のバケットを作成するには、次のコマンドを使用します。

  1. Cloud Shell から次のコマンドを使用してバケットを作成します。

    gcloud storage buckets create gs://LOGS_BUCKET_NAME -l REGION/MULTI_REGION
    

    次のように置き換えます。

    • REGION/MULTI_REGION は、バケットを作成するリージョンに置き換えます。
    • LOGS_BUCKET_NAME は、新しいバケットの名前に置き換えます。
  2. 次のコマンドを使用して、サービス アカウントに権限 Storage Object Admin を割り当てます。

    gsutil iam ch serviceAccount:CLOUD_BUILD_SA:roles/storage.objectAdmin gs://LOGS_BUCKET_NAME
    

    次のように置き換えます。

    • CLOUD_BUILD_SA は、Cloud Build のデフォルトのサービス アカウントに置き換えます。
    • LOGS_BUCKET_NAME は、新しいバケットの名前に置き換えます。

次のステップ

この手順が完了したら、次のデプロイ手順に進みます。

  1. ワークロードを確立する
  2. リポジトリのクローンを作成する
  3. 統合メカニズムを決定する
  4. コンポーネントを設定する(このページ)。
  5. デプロイを構成する
  6. デプロイを実行する