このページでは、VPC ネットワークでプライベート プールを使用するようにネットワーク環境を設定する方法について説明します。プライベート プールの情報については、プライベート プールの概要をご覧ください。
ネットワーク構成オプションについて
プライベート プールは、サービス プロデューサー ネットワークと呼ばれる Google 所有の Virtual Private Cloud ネットワークでホストされます。プライベート プールを設定するときは、サービス プロデューサー ネットワークを使用するか、サービス プロデューサー ネットワークとリソースを含む VPC ネットワークの間にプライベート接続を設定するかを選択できます。
組織の要望に応じて、次のいずれかのネットワーク構成スキームを選択します。
サービス プロデューサー ネットワークを単独で使用する: このオプションは、次の場合に使用します。
- プライベート ネットワーク内のリソースにアクセスするためのビルドが必要ない場合
- 構成可能なマシンタイプとサイズが必要な場合
これは、プライベート プールを作成するためのデフォルトのネットワーク オプションで、ネットワークの設定は不要です。このオプションを検討する場合は、プライベート プールの作成に進みます。
サービス プロデューサー ネットワークと VPC ネットワーク間のプライベート接続を設定する: プライベート接続を使用すると、VPC ネットワーク内の VM インスタンスとプライベート プールで内部 IP アドレスのみを使用して通信できます。このオプションは、次の場合に使用します。
- ビルドに VPC ネットワーク内のリソースにアクセスさせたい場合
- 構成可能なマシンタイプとサイズが必要な場合
VPC ネットワークとサービス プロデューサー ネットワーク間のプライベート接続を設定する
サービス プロデューサーのネットワークへの接続に使用する既存の VPC ネットワークが必要です。
このガイドのコマンドラインの例を使用するには、Google Cloud CLI をインストールして構成します。
API を有効にします。
コンソール
Enable the Cloud Build and the Service Networking APIs.
gcloud
Cloud Build と Service Networking API を有効にします。
gcloud services enable cloudbuild.googleapis.com servicenetworking.googleapis.com
-
プライベート接続を設定するために必要な権限を取得するには、VPC ネットワークが存在する Google Cloud プロジェクトに対する Compute Engine ネットワーク管理者(
roles/compute.networkAdmin
)の IAM ロールの付与を管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。 VPC ネットワークで、名前付き内部 IP 範囲を割り当てます。
ここで指定する IP 範囲は、VPC ネットワークで定義されるファイアウォール ルールの対象です。
Cloud Build は、Docker ブリッジ ネットワーク用に IP 範囲
192.168.10.0/24
と172.17.0.0/16
を予約します。プロジェクト内のリソースに IP 範囲を割り当てる際に、Cloud Build ビルダーがこれらのリソースにアクセスする場合は、192.168.10.0/24
と172.17.0.0/16
以外の範囲を選択することをおすすめします。たとえば、Google Kubernetes Engine コントロール プレーンのアドレス範囲
192.168.10.96/28
は、重複のために Cloud Buildgke-deploy
ビルダーからアクセスできません。コンソール
Google Cloud Console で [VPC ネットワーク] ページに移動します。
プライベート プールの VPC ネットワークに接続する VPC ネットワークを選択します。
[限定公開サービス アクセス] タブを選択します。
[プライベート サービス アクセス] タブで、[サービスに割り当てられた IP 範囲] タブを選択します。
[IP 範囲の割り当て] をクリックします。
割り当て範囲の [名前] と [説明] を入力します。
割り当ての [IP 範囲] を指定します。
- IP アドレス範囲を指定するには、[カスタム] を選択してから、CIDR ブロックを入力します。
- 接頭辞長を指定して利用可能な範囲を Google に選択させるには、[自動] を選択して接頭辞長を入力します。接頭辞長は
/24
以下でなければなりません(/22
、/21
など)。
[割り当て] をクリックして、割り振る範囲を作成します。
gcloud
アドレス範囲と接頭辞長(サブネット マスク)を指定するには、
addresses
フラグとprefix-length
フラグを使用します。接頭辞長は /24 以下でなければなりません(/22、/21 など)。たとえば、CIDR ブロック192.168.0.0/16
を割り振るには、アドレスに192.168.0.0
を指定し、接頭辞長には16
を指定する必要があります。gcloud compute addresses create RESERVED_RANGE_NAME \ --global \ --purpose=VPC_PEERING \ --addresses=192.168.0.0 \ --prefix-length=16 \ --description=DESCRIPTION \ --network=VPC_NETWORK
接頭辞長(サブネット マスク)だけを指定するには、
prefix-length
フラグを使用します。アドレス範囲を省略すると、VPC ネットワークで使用されていないアドレス範囲が自動的に選択されます。次の例では、16
ビットの接頭辞長を使用して、未使用の IP アドレス範囲を選択しています。gcloud compute addresses create RESERVED_RANGE_NAME \ --global \ --purpose=VPC_PEERING \ --prefix-length=16 \ --description=DESCRIPTION \ --network=VPC_NETWORK
コマンドのプレースホルダ値を、次のように置き換えます。
RESERVED_RANGE_NAME
: 割り当て範囲の名前(my-allocated-range
など)。DESCRIPTION
: 範囲の説明(allocated for my-service
など)。VPC_NETWORK
: VPC ネットワークの名前(my-vpc-network
など)。
サービス プロデューサー VPC ネットワークと お使いの VPC ネットワークの間にプライベート接続を作成します。
コンソール
Google Cloud Console で [VPC ネットワーク] ページに移動します。
プライベート プールの VPC ネットワークに接続する VPC ネットワークを選択します。
[限定公開サービス アクセス] タブを選択します。
[プライベート サービス アクセス] タブで、[サービスへのプライベート接続] タブを選択します。
ネットワークとサービス プロデューサー ネットワークの間にプライベート接続を作成するには、[接続の作成] をクリックします。
[割り当て] で、前の手順で作成した割り振り範囲を選択します。
[接続] をクリックして接続を作成します。
gcloud
以下のとおり、プライベート接続を作成します。
gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=ALLOCATED_RANGE_NAME \ --network=VPC_NETWORK \ --project=PROJECT_ID
コマンドのプレースホルダ値を、次のように置き換えます。
ALLOCATED_RANGE_NAME
: 前の手順で作成した割り当て範囲の名前。VPC_NETWORK
: VPC ネットワークの名前。PROJECT_ID
: VPC ネットワークを含むプロジェクトの ID。
このコマンドは、長時間実行オペレーションを開始し、オペレーション名を戻します。
オペレーションが成功したかどうかを確認し、
OPERATION_NAME
を前のステップで返されたオペレーション名に置き換えます。gcloud services vpc-peerings operations describe \ --name=OPERATION_NAME
[省略可: 共有 VPC のシナリオ]共有 VPC を使用している場合は、割り振られた IP 範囲とプライベート接続をホスト プロジェクトに作成します。通常、ホスト プロジェクトのネットワーク管理者がこれらの作業を行う必要があります。ホスト プロジェクトがプライベート接続で設定されると、サービス プロジェクト内の VM インスタンスはサービス プロデューサー ネットワークとのプライベート接続を使用できます。VPC 接続をホストするプロジェクトと、プライベート プールを含むプロジェクトは、同じ組織に属している必要があります。
[省略可: ファイアウォール ルールの使用]。VPC ネットワークで上り(内向き)ファイアウォール ルールを作成する場合は、上り(内向き)ルールのソースフィルタで割り振ったのと同じ IP 範囲を指定します。
次のステップ
- プライベート プールの作成と管理の方法を確認する。