サービス プロジェクトの共有 VPC ネットワーク上にインスタンスを作成する

このチュートリアルでは、サービス プロジェクトから共有 VPC ネットワークに Filestore インスタンスを作成するプロセスについて説明します。

共有 VPC ネットワークには、ホスト プロジェクトまたは関連するサービス プロジェクトの 1 つで Filestore インスタンスを作成できます。ホスト プロジェクトでインスタンスを作成する場合、共有 VPC ネットワークを通常どおり選択でき、サービス プロジェクト クライアントはインスタンスに接続できます。ただし、サービス プロジェクトでインスタンスを作成する場合は、最初にホスト プロジェクトから共有 VPC ネットワークでのプライベート サービス アクセスを有効にする必要があります。

目標

料金

このチュートリアルでは、課金対象である次の Google Cloud コンポーネントを使用します。

料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを生成できます。 新しい Google Cloud ユーザーは無料トライアルをご利用いただける場合があります。

このチュートリアルを終了した後、作成したリソースを削除すると、それ以上の請求は発生しません。詳細については、クリーンアップをご覧ください。

始める前に

  1. Cloud プロジェクトに対して課金が有効になっていることを確認します。プロジェクトに対して課金が有効になっていることを確認する方法を学習する

  2. ホスト プロジェクトと接続されたサービス プロジェクトで共有 VPC ネットワークを作成します。
  3. Filestore and Service Networking API を有効にします。

    API を有効にする

共有 VPC ネットワークでプライベート サービス アクセスを有効にする。

共有 VPC ネットワークを使用するサービス プロジェクトで Filestore インスタンスを作成するには、共有 VPC ネットワークでプライベート サービス アクセスを有効にする必要があります。

共有 VPC ネットワークでプライベート サービス アクセスが有効になっているかどうかを確認する

次のいずれかの方法で、共有 VPC ネットワークでプライベート サービス アクセスがすでに有効になっているかどうかを確認します。

Cloud Console

  1. Cloud Console で、Filestore インスタンス ページに移動します。

    Filestore インスタンス ページに移動

  2. [インスタンスを作成] をクリックします。

  3. 使用する共有 VPC ネットワークを選択します。

  4. [ネットワークの詳細オプション] をクリックします。

  5. [プライベート サービス アクセス接続] セクションに、プライベート サービス アクセスが有効になっているかが表示されます。

gcloud ツール

gcloud beta services vpc-peerings list \
    --network=SHARED_VPC_NAME \
    --project=HOST_PROJECT_ID

以下を置き換えます。

  • SHARED_VPC_NAME は、Filestore インスタンスに使用する共有 VPC ネットワークの名前に置き換えます。
  • HOST_PROJECT_ID は、共有 VPC ネットワークを含むホスト プロジェクトのプロジェクト ID に置き換えます。

プライベート サービス アクセスがすでに有効になっている場合、レスポンスで servicenetworking-googleapis-com とのピアリングが確立されていることを表示します。

network: projects/PROJECT_NUMBER/global/networks/SHARED_VPC_NAME
peering: servicenetworking-googleapis-com
reservedPeeringRanges: RANGES

共有 VPC ネットワークでプライベート サービス アクセスが有効になっている場合は、そのネットワークで Filestore インスタンスの作成を開始できます。それ以外の場合は、最初にプライベート サービス アクセスを有効にする必要があります。

プライベート サービス アクセスを有効にする

割り当て済みの IP アドレス範囲を作成し、プライベート接続を管理するには、オーナー(roles/owner)、編集者(roles/editor)、またはネットワーク管理者(roles/networkmanagement.admin)のロールが必要です。これらの権限を付与されていない場合は、ネットワーク管理者にお問い合わせください。詳しくは、ロールについてをご覧ください。

次のいずれかの方法で、共有 VPC ネットワークでプライベート サービス アクセスを有効にします。

Cloud Console

共有 VPC ネットワークで Google マネージド サービス用に IP アドレス範囲を予約する

  1. Google Cloud Console で [VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] ページに移動

  2. 使用する共有 VPC ネットワークを含むホスト プロジェクトを選択します。

  3. Filestore インスタンスを作成する共有 VPC ネットワークの名前をクリックします。

  4. [プライベート サービス接続] タブを選択します。

  5. [プライベート サービス接続] タブで、[サービスに割り当てられた IP 範囲] タブを選択します。

  6. [IP 範囲の割り当て] をクリックし、次のように構成します。

    • 名前: google-service-range
    • 説明: Peering range for Google managed services
    • IP 範囲

      • [自動] を選択します。
      • テキスト フィールドに接頭辞として「20」と入力します。この範囲はすべての Google Cloud マネージド サービスで使用されるため、実際には、より大きな範囲が必要になる場合があります。基本階層インスタンスには /29 接頭辞が必要で、高スケール インスタンスには /24 接頭辞が必要です。
  7. [割り当て] をクリックして、割り振る範囲を作成します。

共有 VPC ネットワークと Google マネージド サービス ネットワークのプライベート接続を作成する

  1. Google Cloud Console で [VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] ページに移動

  2. 使用する共有 VPC ネットワークを含むホスト プロジェクトを選択します。

  3. Filestore インスタンスを作成する共有 VPC ネットワークの名前をクリックします。

  4. [プライベート サービス接続] タブを選択します。

  5. [プライベート サービス接続] タブで、[サービスへのプライベート接続] タブを選択します。

  6. [接続の作成] をクリックします。

  7. [割り当て] で [google-service-range] を選択します。

  8. [接続] をクリックして接続を作成します。

gcloud ツール

  1. 次のコマンドを実行して、Google マネージド サービスに共有 VPC ネットワーク内の IP アドレス範囲を予約します。

    gcloud compute addresses create google-service-range \
        --global \
        --purpose=VPC_PEERING \
        --prefix-length=PREFIX \
        --description="Peering range for Google managed services" \
        --network=SHARED_VPC_NAME \
        --project=PROJECT_ID
    

    以下を置き換えます。

    • PREFIX は接頭辞長に置き換えます。基本階層インスタンスには接頭辞 /29 が必要で、高スケール階層インスタンスには接頭辞 /24 が必要です。ただし、この範囲はすべての Google Cloud マネージド サービスで使用されるため、複数の Filestore インスタンスやその他の Google Cloud マネージド サービスを使用する場合は、次のように、より大きな接頭辞が必要になります。例: /20
    • SHARED_VPC_NAME は、Filestore インスタンスを作成する共有 VPC ネットワークの名前に置き換えます。
    • PROJECT_ID は、共有 VPC ネットワークを含むホスト プロジェクトのプロジェクト ID に置き換えます。
  2. 次のコマンドを実行して、共有 VPC ネットワークと Google マネージド サービス ネットワークのプライベート接続を作成します。

    gcloud services vpc-peerings connect \
        --service=servicenetworking.googleapis.com \
        --ranges=google-service-range \
        --network=SHARED_VPC_NAME \
        --project=HOST_PROJECT_ID
    

    以下を置き換えます。

    • SHARED_VPC_NAME は、Filestore インスタンスを作成する共有 VPC ネットワークの名前に置き換えます。
    • HOST_PROJECT_ID は、共有 VPC ネットワークを含むホスト プロジェクトのプロジェクト ID に置き換えます。

    このコマンドは、長時間実行オペレーションを開始し、オペレーション名を戻します。

  3. オペレーションが成功したかどうかを確認します。

    gcloud services vpc-peerings operations describe \
        --name=OPERATION_NAME
    

    OPERATION_NAME を、前の手順から返されたオペレーション名に置き換えます。

IP アドレス範囲の割り当てとプライベート接続の作成の詳細については、プライベート サービス アクセスの構成をご覧ください。

省略可: VPC Service Controls を有効にする

プライベート サービス アクセスを有効にしたら、任意で次のコマンドを実行して VPC Service Controls を有効にすることもできます。

gcloud beta services vpc-peerings enable-vpc-service-controls \
    --network=SHARED_VPC_NAME \
    --project=HOST_PROJECT_ID \
    --service=servicenetworking.googleapis.com

以下を置き換えます。

  • SHARED_VPC_NAME は、Filestore インスタンスを作成する共有 VPC ネットワークの名前に置き換えます。
  • HOST_PROJECT_ID は、共有 VPC ネットワークを含むホスト プロジェクトのプロジェクト ID に置き換えます。

VPC Service Controls で Filestore を使用する方法については、サービス境界でのインスタンスの保護をご覧ください。

共有 VPC ネットワーク上に Filestore インスタンスを作成する

共有 VPC ネットワークでプライベート サービス アクセスを有効にすると、サービス プロジェクトから Filestore インスタンスを作成できるようになります。

Cloud Console

  1. Cloud Console で、Filestore インスタンス ページに移動します。

    Filestore インスタンス ページに移動

  2. [インスタンスを作成] をクリックし、次のようにインスタンスを構成します。

    • [インスタンス ID] を nfs-server に設定します。
    • [インスタンスのタイプ] を [基本] に設定します。
    • [ストレージのタイプ] を [HDD] に設定します。
    • [容量の割り当て] を 1 TB に設定します。
    • [リージョン] を us-central1、[ゾーン] を us-central1-c に設定します。
    • [VPC ネットワーク] を共有 VPC ネットワークに設定します。これは「projects/HOST_PROJECT_ID/global/networks/SHARED_VPC_NAME」の形式で表示されます。
    • [ファイル共有名] を vol1 に設定します。
    • [割り当てられた IP 範囲] を [自動的に割り当てられた IP 範囲を使用] に設定します。
    • [アクセス制御] を [すべてのクライアントへのアクセスを許可する] に設定します。
  3. [作成] をクリックします。

gcloud ツール

gcloud beta filestore instances create nfs-server \
    --project=SERVICE_PROJECT_ID \
    --zone=us-central1-c \
    --tier=BASIC_HDD \
    --file-share=name="vol1",capacity=1TiB \
    --network=name="projects/HOST_PROJECT_ID/global/networks/SHARED_VPC_NAME",connect-mode=PRIVATE_SERVICE_ACCESS

以下を置き換えます。

  • SERVICE_PROJECT_ID は、Filestore インスタンスを作成するサービス プロジェクトのプロジェクト ID に置き換えます。
  • HOST_PROJECT_ID は、共有 VPC ネットワークを含むホスト プロジェクトのプロジェクト ID に置き換えます。
  • SHARED_VPC_NAME は、Filestore インスタンスを作成する共有 VPC ネットワークの名前に置き換えます。

サービス プロジェクト クライアントにインスタンスをマウントする

共有 VPC ネットワーク上で Filestore インスタンスを作成したら、そのインスタンスを同じネットワーク上の任意のクライアントにマウントできます。マウントの手順については、Compute Engine クライアントでのファイル共有のマウントをご覧ください。

クリーンアップ

このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。

Filestore インスタンスを削除する

Cloud Console

  1. Cloud Console で、Filestore インスタンス ページに移動します。

    Filestore インスタンス ページに移動

  2. nfs-server インスタンス ID をクリックして、インスタンスの詳細ページを開きます。

  3. [削除] をクリックします。

  4. プロンプトが表示されたら、インスタンス ID を入力します。

  5. [削除] をクリックします。

gcloud ツール

nfs-server インスタンスを削除します。

gcloud filestore instances delete nfs-server --zone=us-central1-c

次のステップ