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

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

始める前に

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

  2. Enable the Cloud Build API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

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

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

新しいプライベート プールの作成

IAM 権限: このタスクを実行するには、Cloud Build WorkerPool オーナーのロールが必要です。このロールを付与する方法については、Cloud Build リソースへのアクセスを構成するをご覧ください。

新しいプライベート プールを作成するには:

コンソール

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

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

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

  3. [ワーカープール] ページで、[作成] をクリックします。

    [プライベート プールの作成] サイドパネルが表示されます。

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

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

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

    3. マシンタイプ: プライベート プールに使用する Compute Engine マシンタイプを選択します。

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

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

      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 アドレスに自動的に割り振られます。

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

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

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 の使用をご覧ください。

プライベート プールの更新

IAM 権限: このタスクを実行するには、Cloud Build WorkerPool 編集者のロールが必要です。このロールを付与する方法については、Cloud Build リソースへのアクセスを構成するをご覧ください。

既存のプライベート プールのディスクサイズとマシンタイプを更新できます。プライベート プールを更新するには、次を実行します。

コンソール

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

    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: プライベート プールを作成したリージョン

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

IAM 権限: このタスクを実行するには、Cloud Build WorkerPool 閲覧者のロールが必要です。このロールを付与する方法については、Cloud Build リソースへのアクセスを構成するをご覧ください。

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

コンソール

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

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

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

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

[プライベート プールの編集] サイドパネルが表示されます。パネルには、プライベート プールの詳細が表示されます。

gcloud

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

gcloud builds worker-pools list --project=PRIVATEPOOL_PROJECT_ID

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

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

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: プライベート プールを作成したリージョン

プライベート プールの削除

IAM 権限: このタスクを実行するには、Cloud Build WorkerPool オーナーのロールが必要です。このロールを付与する方法については、Cloud Build リソースへのアクセスを構成するをご覧ください。

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

コンソール

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

    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: プライベート プールを作成したリージョン

次のステップ