プライベート プールの作成と管理

このページでは、Cloud Build プライベート プールを作成、更新、表示、削除する方法について説明します。プライベート プールの情報については、プライベート プールの概要をご覧ください。

始める前に

  1. 新しい Google Cloud プロジェクトを作成するか、既存のプロジェクトを選択します。このプロジェクトを使用して、プライベート プールを作成します。

  2. Cloud Build API を有効にします。

    API を有効にするために必要なロール

    API を有効にするには、serviceusage.services.enable 権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。詳しくは、ロールを付与する方法をご覧ください。

    API の有効化

  3. このガイドのコマンドラインの例を使用するには、Google Cloud CLI をインストールして構成します。

  4. 省略可: ビルドで Virtual Private Cloud ネットワークからプライベート リソースにアクセスするには、Virtual Private Cloud ネットワークとプライベート プールがある Virtual Private Cloud ネットワークの間にピアリング接続を設定する必要があります。手順については、プライベート プールを作成するための環境を設定するをご覧ください。

  5. 省略可: マシンタイプの構成とリージョンでの可用性を確認します。詳細については、プライベート プール構成ファイル スキーマのドキュメントの workerconfig をご覧ください。

プライベート プールを作成する

がプライベート プールを作成するために必要な権限を持つようにするには、サービス アカウントの Cloud Build WorkerPool オーナー roles/cloudbuild.workerPoolOwner)IAM ロールを に付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

管理者は、カスタムロールや他の事前定義ロールを使用して、必要な権限を付与することもできます。

リージョンごとの Google Cloud プロジェクトごとに最大 10 個のプライベート プールを作成できます。プライベート プールを作成する手順は次のとおりです。

Google Cloud コンソール

  1. Google Cloud コンソールで [ワーカープール] ページを開きます。

    Cloud Build ワーカープールのページを開く

  2. [プライベート プールを作成] をクリックします。

    [プライベート プールの作成] ページが表示されます。

    プライベート プールを作成するには、次の情報を入力します。

  3. 名前: プライベート プールの名前を入力します。この値には、英数字 /[a-z][0-9]/ またはダッシュ - のみを使用できます。プライベート プールの名前は 1 ~ 63 文字にする必要があります。

  4. リージョン: プライベート プールを作成するリージョンを選択します。

  5. マシンの構成: 次のように構成します。

    1. シリーズ: マシンシリーズを選択します。

    2. マシンタイプ: この設定には、選択したマシンシリーズに基づいて、ワーカープールで使用できるマシンタイプが表示されます。使用可能なマシンタイプはリージョンによって異なります。

    3. ディスクサイズ: プライベート プールのディスクサイズを入力します。100 以上、4,000 以下の値を指定します。値を指定しない場合、Cloud Build はディスクサイズ 100 を使用します。

    4. ネストされた仮想化: C3 シリーズのマシンを選択した場合は、ネストされた仮想化を有効にできます。この機能を使用すると、他の VM 内で仮想マシン(VM)インスタンスを実行して、独自の仮想化環境を作成できます。

  6. [ネットワークの種類] で、次のいずれかのオプションを選択します。

    1. デフォルト ネットワーク: インスタンスに公共のインターネット経由でアクセスできる場合は、このオプションを選択します。[デフォルトのネットワーク] オプションが選択されている場合、プライベート プールはサービス プロデューサー ネットワークを使用します。詳細については、VPC ネットワークでプライベート プールを使用するように環境を設定するをご覧ください。

    2. プライベート ネットワーク: インスタンスがプライベート ネットワークでホストされている場合は、このオプションを選択し、次の操作を行います。

      1. プロジェクト: Google Cloud プロジェクト ID を選択します。

      2. ネットワーク: プルダウン メニューからネットワークを選択します。ネットワークを作成していない場合は、VPC ネットワークを作成して管理するでネットワークの作成方法を確認してください。

      3. [IP 範囲]: Cloud Build プロデューサー ネットワークがプライベート リポジトリとの接続を維持する VM に割り当てるために使用できる内部 IP 範囲を入力します。

        STARTING_IP_ADDRESS/SUBNET_PREFIX_SIZE 形式のクラスレス ドメイン間ルーティング(CIDR)ルーティング表記を使用して範囲を指定できます。たとえば、192.0.2.0/24 の接頭辞の長さは 24 です。IP 範囲の最初の 24 ビットがサブネット マスク(192.0.2.0)として使用されますが、使用可能なホストアドレスの範囲は 192.0.2.0 から 192.0.2.255 です。

        注: 接頭辞長の値は /29 以下にする必要があります。範囲に値が指定されていない場合は、デフォルト値の /24 が自動的に割り当てられます。接頭辞長に値が指定されていない場合、ピアリングされた VPC ネットワーク内で IP アドレスが自動的に割り当てられます。IP アドレスに値が指定されていない場合、ピアリングされた VPC ネットワーク内の範囲が IP アドレスに自動的に割り振られます。

    3. 外部 IP を割り当てる: このオプションはデフォルトで選択され、プライベート プールが公共のインターネットにアクセスできるようになります。このチェックボックスをオフにすると、プライベート ネットワークへのアクセスが制限されます。

  7. [作成] をクリックして、プライベート プールを作成します。

gcloud

gcloud を使用して新しいプライベート プールを作成する場合、2 つの方法があります。プライベート プール構成ファイルを gcloud コマンドに渡すか、構成オプションを直接 gcloud コマンドに渡します。

プライベート プール構成ファイルを gcloud コマンドに渡します。

  1. プライベート プール構成ファイルを YAML 形式または JSON 形式で作成します。

  2. 次の gcloud コマンドを実行します。ここで、PRIVATEPOOL_ID はプライベート プールの一意の識別子、PRIVATEPOOL_CONFIG_FILE はプライベート プールの構成ファイルの名前、REGION はプライベート プールを作成するリージョンです。

    gcloud builds worker-pools create PRIVATEPOOL_ID --config-from-file PRIVATEPOOL_CONFIG_FILE --region REGION
    

    出力は次のようになります。

    Created [https://cloudbuild.googleapis.com/v1/projects/gcb-docs-project/locations/us-central1/workerPools/private-pool].
    NAME                 CREATE_TIME                STATUS
    private-pool  2018-11-19T16:08:24+00:00  RUNNING
    

構成オプションを直接 gcloud コマンドに渡します。

次の gcloud コマンドを実行します。

    gcloud builds worker-pools create PRIVATEPOOL_ID \
        --project=PRIVATEPOOL_PROJECT_ID \
        --region=REGION \
        --peered-network=PEERED_NETWORK \
        --worker-machine-type=PRIVATEPOOL_MACHINE_TYPE \
        --worker-disk-size=PRIVATEPOOL_DISK_SIZE_GB \
        --no-public-egress

ここで

  • PRIVATEPOOL_ID: プライベート プールの一意の ID。この値は 1 ~ 63 文字で、有効な文字は [a-zA-Z0-9_-]+ です。
  • PRIVATEPOOL_PROJECT_ID: プライベート プールを作成する Google Cloud プロジェクトの ID。
  • REGION: サポートされているリージョンの 1 つ。
  • PEERED_NETWORK: サービス プロデューサー ネットワークとピアリングされているネットワークのネットワーク リソース URL。PEERED_NETWORKprojects/NETWORK_PROJECT_ID/global/networks/NETWORK_NAME の形式にする必要があります。ここで、NETWORK_PROJECT_ID は VPC ネットワークを保持する Google Cloud プロジェクトのプロジェクト ID、NETWORK_NAME は VPC ネットワークの名前です。値を指定しない場合、Cloud Build はサービス プロバイダ ネットワークを使用します。
  • PRIVATEPOOL_DISK_SIZE_GB: プライベート プールにアタッチされているディスクのサイズ。100 以上、4,000 以下の値を指定します。値を指定しない場合、Cloud Build は ディスクサイズ 100 を適用します。gcloud builds submit の実行時に --disk-size を使用して別のディスクサイズを指定した場合、--worker-disk-size はオーバーライドされます。
  • PRIVATEPOOL_MACHINE_TYPE: ワーカーのマシンタイプ。空白のままにすると、Cloud Build はデフォルト値の e2-standard-2 を使用します。サポートされているマシンタイプの一覧については、プライベート プール構成ファイルのスキーマをご覧ください。gcloud builds submit の実行時に --machine-type を使用して別のマシンタイプを指定した場合、--worker-machine-type はオーバーライドされます。
  • --no-public-egress: このフラグが設定されている場合、プライベート プールは外部 IP アドレスなしで作成されます。VPC Service Controls の境界内にプライベート プールを作成する場合は、このフラグを設定します。

API

  1. workerpool.json というプライベート プール構成ファイルを作成します。

  2. cURLを使用して Cloud Build API を呼び出します。

        curl -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)"
            -H "Content-Type: application/json" \
            https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/?workerPoolId=PRIVATEPOOL_ID -d @workerpool.json
    

    ここで

    • PRIVATEPOOL_PROJECT_ID: プライベート プールを作成する Google Cloud プロジェクトの ID。
    • PRIVATEPOOL_ID: プライベート プールの ID。この値は 1 ~ 63 文字で、有効な文字は [a-zA-Z0-9_-]+ です。
    • REGION: プライベート プールを作成することがサポートされているリージョンのいずれか。

VPC Service Controls の境界内にプライベート プールを作成する

VPC Service Controls の境界を含むプライベート プールを作成するには、VPC Service Controls の使用をご覧ください。

プライベート プールを更新する

がプライベート プールの作成に必要な権限を持っていることを確認するには、サービス アカウントに対する Cloud Build WorkerPool 編集者 roles/cloudbuild.workerPoolEditor)IAM ロールを に付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

管理者は、カスタムロールや他の事前定義ロールを使用して、必要な権限を付与することもできます。

プライベート プールの構成を更新する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールで [ワーカープール] ページを開きます。

    Cloud Build ワーカープールのページを開く

  2. プライベート プールを作成したプロジェクトを選択します。

  3. プライベート プール名をクリックします。

  4. [プライベート プールの編集] ページで、必要に応じてマシンタイプとディスクサイズを更新します。

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

gcloud

プライベート プール構成ファイルを更新する場合:

  1. プライベート プール構成ファイル内で、変更するフィールドを更新します。

  2. 次のコマンドを実行します。PRIVATEPOOL_ID はプライベート プールの一意の識別子、REGION はプライベート プールが配置されているリージョン、PRIVATEPOOL_CONFIG_FILE はプライベート プール構成ファイルの名前です。

    gcloud builds worker-pools update PRIVATEPOOL_ID \
        --region=REGION \
        --config-from-file=PRIVATEPOOL_CONFIG_FILE
    

更新する値を直接 gcloud builds worker-pools update コマンドに渡す場合:

   gcloud builds worker-pools update PRIVATEPOOL_ID \
       --region=REGION \
       --worker-disk-size=PRIVATEPOOL_DISK_SIZE \
       --worker-machine-type=PRIVATEPOOL_MACHINE_TYPE

ここで

  • PRIVATEPOOL_ID: 既存のプライベート プールの ID。この値は更新できません。既存のプライベート プール ID を指定する必要があります。
  • REGION: プライベート プールを作成したリージョン
  • PRIVATEPOOL_DISK_SIZE: 更新されたディスクサイズ。
  • PRIVATEPOOL_MACHINE_TYPE は、更新されたマシンタイプです。

API

  1. プライベート プール構成ファイルで、必要に応じてディスクサイズとマシンタイプを更新します。

  2. cURL を使用して Cloud Build API を呼び出し、変数を適切な値に置き換えます。

    curl -X PATCH -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID \
        -d @workerpool.json
    

    ここで

    • PRIVATEPOOL_ID: プライベート プールの ID。
    • PRIVATEPOOL_PROJECT_ID: プライベート プールを含む Google Cloud プロジェクトの ID。
    • REGION: プライベート プールを作成したリージョン

プライベート プールの詳細を表示する

プライベート プールの作成に必要な権限が に付与されるようにするには、サービス アカウントに対する Cloud Build WorkerPool ビューア roles/cloudbuild.workerPoolViewer)IAM ロールを に付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

管理者は、カスタムロールや他の事前定義ロールを使用して、必要な権限を付与することもできます。

プライベート プールの詳細を表示するには次を実行します。

コンソール

  1. Google Cloud コンソールで [ワーカープール] ページを開きます。

    Cloud Build ワーカープールのページを開く

  2. プライベート プールを作成したプロジェクトを選択します。

  3. プライベート プール名をクリックします。

    [プライベート プールの編集] ページが表示されます。

gcloud

プライベート プールの ID がわからない場合は、次のコマンドを実行して、プライベート プールの詳細を一覧表示します。

gcloud builds worker-pools list --region=REGION --project=PRIVATEPOOL_PROJECT_ID

ここで

  • PRIVATEPOOL_PROJECT_ID は、プライベート プールを含むGoogle Cloud プロジェクトの ID です。
  • REGION は、プライベート プールのリージョンです。

出力は次のようになります。

NAME                                                                  CREATE_TIME                STATUS
projects/[PRIVATEPOOL_PROJECT_ID]/locations/us-central1/workerPools/[PRIVATEPOOL_ID]      2018-11-19T16:08:24+00:00  RUNNING

プライベート プールの ID がわかっている場合は、次のコマンドを実行して、プライベート プールの詳細を取得します。

gcloud builds worker-pools describe PRIVATEPOOL_ID \
    --region=REGION \
    --project=PRIVATEPOOL_PROJECT_ID

場所

  • PRIVATEPOOL_ID: プライベート プールの ID。
  • REGION: プライベート プールを作成したリージョン
  • PRIVATEPOOL_PROJECT_ID: プライベート プールを含む Google Cloud プロジェクトの ID。

API

プライベート プールの ID がわからない場合は、次の cURL コマンドを実行して、プライベート プールの詳細を一覧表示します。ここで、PRIVATEPOOL_PROJECT_ID はプライベート プールを含む Google Cloud プロジェクトの ID です。

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools

プライベート プールの ID がわかっている場合は、次の curl コマンドを実行してプライベート プールの詳細を取得します。

    curl -X GET -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID

場所

  • PRIVATEPOOL_ID: プライベート プールの ID。
  • PRIVATEPOOL_PROJECT_ID: プライベート プールを含む Google Cloud プロジェクトの ID。
  • REGION: プライベート プールを作成したリージョン

プライベート プールの料金の見積もりを表示する

プライベート プールを作成または更新すると、[プライベート プールの作成] ページと [プライベート プールの編集] ページの [月額見積もり] サイドバーに、プールを 1 か月あたり実行する費用のお見積もりが表示されます。計算は次の要素に基づいています。

  • 仮想 CPU の数
  • マシンタイプ
  • メモリ
  • ビルド分
  • リージョン(N2D マシンと C3 マシンのみ)

見積もり料金には、デフォルトで含まれる 100 GB を超える追加のディスクサイズの費用は含まれていません。見積もり料金と最終的な料金は、最終的なビルド構成、実際に使用されたビルド時間、その他の要因によって異なる場合があります。詳細については、Cloud Build の料金をご覧ください。

プライベート プールを削除する

がプライベート プールを作成するために必要な権限を持つようにするには、サービス アカウントの Cloud Build WorkerPool オーナー roles/cloudbuild.workerPoolOwner)IAM ロールを に付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

管理者は、カスタムロールや他の事前定義ロールを使用して、必要な権限を付与することもできます。

プライベート プールを削除する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールで [ワーカープール] ページを開きます。

    Cloud Build ワーカープールのページを開く

  2. プライベート プールの行で、ゴミ箱アイコンをクリックします。

gcloud

プライベート プールを削除するには、gcloud builds worker-pools delete コマンドを実行します。

 gcloud builds worker-pools delete PRIVATEPOOL_ID \
     --region=REGION \
     --project=PRIVATEPOOL_PROJECT_ID

ここで

  • PRIVATEPOOL_ID: プライベート プールの ID。
  • PRIVATEPOOL_PROJECT_ID: プライベート プールを含む Google Cloud プロジェクトの ID。
  • REGION: プライベート プールを作成したリージョン

プライベート プールが削除されると、次のような出力が表示されます。

 Deleted [https://cloudbuild.googleapis.com/v1/projects/gcb-docs-project/locations/us-central1/workerPools/[PRIVATEPOOL_ID].

API

cURLを使用して Cloud Build API を呼び出します。

  curl -X DELETE -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      https://cloudbuild.googleapis.com/v1/projects/PRIVATEPOOL_PROJECT_ID/locations/REGION/workerPools/PRIVATEPOOL_ID

ここで

  • PRIVATEPOOL_ID: プライベート プールの ID。
  • PRIVATEPOOL_PROJECT_ID: プライベート プールを含む Google Cloud プロジェクトの ID。
  • REGION: プライベート プールを作成したリージョン

次のステップ