ハイブリッド サブネットを使用して Google Cloud にワークロードを移行する

ハイブリッド サブネットを使用すると、IP アドレスを変更することなく、オンプレミス ネットワークから Virtual Private Cloud(VPC)ネットワークにワークロードを移行できます。このドキュメントでは、ハイブリッド サブネット ルーティングを構成し、オンプレミス ネットワークと VPC ネットワークで共有される CIDR ブロック間の接続をテストして、オンプレミス ネットワークからワークロードを移行する手順について説明します。

始める前に

ハイブリッド サブネット接続を準備するの手順が完了していることを確認します。

ハイブリッド サブネット ルーティングを有効にする

CIDR ブロックを共有するオンプレミス ネットワークと VPC ネットワーク間の内部接続をサポートするには、ハイブリッド サブネット ルーティングが有効になっているサブネットが少なくとも 1 つ必要です。

ハイブリッド サブネット ルーティングを使用するサブネットは、次の要件を満たす必要があります。

  • Cloud Router と、ハイブリッド接続を提供する HA VPN トンネルまたは VLAN アタッチメントと同じリージョンに存在する必要があります。
  • サブネットの IPv4 アドレス範囲は、移行するワークロードをホストするオンプレミス ネットワークの IP アドレス範囲と一致している必要があります。

ハイブリッド サブネット ルーティングは、新しいサブネットの作成時に有効にすることも、既存のサブネットを更新して有効にすることもできます。

ハイブリッド サブネット ルーティングが有効なサブネットを新規に作成する

ハイブリッド サブネット ルーティングが有効になっている新しいサブネットを作成する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールで、[VPC ネットワーク] ページに移動します。

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

  2. ハイブリッド サブネット ルーティングを構成する VPC ネットワークの名前をクリックします。

  3. [サブネット] タブをクリックします。

  4. [サブネットを追加] をクリックします。表示されたパネルで、次の操作を行います。

    1. 名前を入力します。
    2. リージョンを選択します。
    3. [目的] セクションで、[なし] を選択します。
    4. [スタックタイプ] セクションで、[IPv4(シングルスタック)] を選択します。
    5. [IPv4 範囲] フィールドに、このサブネットと移行するワークロード間で共有される CIDR ブロックを入力します。
    6. [ハイブリッド サブネット] セクションで、[オン] を選択します。
    7. [追加] をクリックします。

gcloud

gcloud compute networks subnets create コマンドを使用します。

gcloud compute networks subnets create SUBNET \
    --network=NETWORK \
    --region=REGION \
    --range=RANGE \
    --allow-cidr-routes-overlap

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

  • SUBNET: サブネットの名前
  • NETWORK: サブネットの VPC ネットワークの名前
  • RANGE: このサブネットと移行するワークロード間で共有される CIDR ブロック。
  • REGION: サブネットのリージョン

API

  1. ハイブリッド サブネット ルーティングが有効になっている新しいサブネットを作成します。

    リクエストのデータを使用する前に、次のように置き換えます。

    • PROJECT_ID: オブジェクトの ID
    • REGION: サブネットのリージョン
    • SUBNET: サブネットの名前
    • NETWORK_NAME: サブネットの VPC ネットワークの名前
    • RANGE: このサブネットと移行するワークロード間で共有される CIDR ブロック。

    HTTP メソッドと URL:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks

    リクエストの本文(JSON):

    {
      "name": "SUBNET",
      "network": "projects/PROJECT_ID/global/networks/NETWORK_NAME",
      "ipCidrRange": "RANGE",
      "allowSubnetCidrRoutesOverlap": true
    }
    

    リクエストを送信するには、次のいずれかのオプションを展開します。

    次のような JSON レスポンスが返されます。

    {
      "kind": "compute#operation",
      "id": "5973660558170953708",
      "name": "operation-1680288003494-5f8368991917a-59bf1c92-1897c7c6",
      "operationType": "insert",
      "targetLink": "https://www.googleapis.com/compute/v1/projects/test-project/regions/us-central1/subnetworks/subnet-name",
      "targetId": "5514771331600183201",
      "status": "RUNNING",
      "user": "user@gmail.com",
      "progress": 0,
      "insertTime": "2023-03-31T11:40:03.882-07:00",
      "startTime": "2023-03-31T11:40:03.893-07:00",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/test-project/regions/us-central1/operations/operation-1680288003494-5f8368991917a-59bf1c92-1897c7c6",
      "region": "https://www.googleapis.com/compute/v1/projects/test-project/regions/us-central1"
    }
    

既存のサブネットでハイブリッド サブネット ルーティングを有効にする

既存のサブネットでハイブリッド サブネット ルーティングを有効にするには、次の操作を行います。

コンソール

  1. Google Cloud コンソールで、[VPC ネットワーク] ページに移動します。

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

  2. 更新するサブネットを含む VPC ネットワークの名前をクリックします。

  3. [サブネット] タブをクリックします。

  4. 更新するサブネットをクリックします。

  5. [編集] をクリックします。

  6. [ハイブリッド サブネット] セクションで、[オン] を選択します。

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

gcloud

gcloud compute networks subnets update コマンドを使用します。

gcloud compute networks subnets update SUBNET \
    --region=REGION \
    --allow-cidr-routes-overlap

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

  • SUBNET: サブネットの名前
  • REGION: サブネットのリージョン

API

  1. サブネットの fingerprint ID を見つけます。

    リクエストのデータを使用する前に、次のように置き換えます。

    • PROJECT_ID: オブジェクトの ID
    • REGION: サブネットのリージョン
    • SUBNET_NAME: サブネットの名前

    HTTP メソッドと URL:

    GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME

    リクエストを送信するには、次のいずれかのオプションを展開します。

    次のような JSON レスポンスが返されます。

    {
      "kind": "compute#subnetwork",
      "id": "5514771331600183201",
      "creationTimestamp": "2022-09-16T12:41:02.010-07:00",
      "name": "subnet-name",
      "network": "https://www.googleapis.com/compute/v1/projects/project-name/global/networks/network-name",
      "ipCidrRange": "10.6.0.0/16",
      "gatewayAddress": "10.6.0.1",
      "region": "https://www.googleapis.com/compute/v1/projects/project-name/regions/us-central1",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/project-name/regions/us-central1/subnetworks/subnet-name",
      "privateIpGoogleAccess": true,
      "fingerprint": "YiItidAFRsA5",
      "allowSubnetCidrRoutesOverlap": false,
      "enableFlowLogs": true,
      "privateIpv6GoogleAccess": "DISABLE_GOOGLE_ACCESS",
      "purpose": "PRIVATE",
      "stackType": "IPV4_ONLY"
    }
    

  2. ハイブリッド サブネット ルーティングを有効にします。

    リクエスト データのいずれかを使用する前に、SUBNET_FINGERPRINT を前のリクエストで確認したサブネットのフィンガープリント ID(YiItidAFRsA5 など)に置き換えます。

    HTTP メソッドと URL:

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME

    リクエストの本文(JSON):

    {
      "allowSubnetCidrRoutesOverlap": true,
      "fingerprint": "SUBNET_FINGERPRINT"
    }
    

    リクエストを送信するには、次のいずれかのオプションを展開します。

    次のような JSON レスポンスが返されます。

    {
      "kind": "compute#operation",
      "id": "5973660558170953708",
      "name": "operation-1680288003494-5f8368991917a-59bf1c92-1897c7c6",
      "operationType": "compute.subnetworks.patch",
      "targetLink": "https://www.googleapis.com/compute/v1/projects/test-project/regions/us-central1/subnetworks/subnet-name",
      "targetId": "5514771331600183201",
      "status": "RUNNING",
      "user": "user@gmail.com",
      "progress": 0,
      "insertTime": "2023-03-31T11:40:03.882-07:00",
      "startTime": "2023-03-31T11:40:03.893-07:00",
      "selfLink": "https://www.googleapis.com/compute/v1/projects/test-project/regions/us-central1/operations/operation-1680288003494-5f8368991917a-59bf1c92-1897c7c6",
      "region": "https://www.googleapis.com/compute/v1/projects/test-project/regions/us-central1"
    }
    

  3. allowSubnetCidrRoutesOverlap がサブネットで有効になっていることを確認するには、別の GET リクエストを作成し、レスポンスに以下が含まれていることを確認します。

    • "allowSubnetCidrRoutesOverlap": true

VPC ネットワークからオンプレミス ネットワークへのネットワーク接続をテストする

共有 CIDR ブロックを介して VPC ネットワークとオンプレミス ネットワーク間の接続をテストするには、次の操作を行います。

  1. ハイブリッド サブネット ルーティングを使用するサブネットにテスト VM を作成します。
  2. テスト VM のプライマリ内部 IPv4 アドレスをメモします
  3. テスト VM を含む VPC ネットワークで、関連する Cloud Router BGP セッションにカスタム アドバタイズを構成します。これには、テスト VM のプライマリ内部 IPv4 アドレスと一致する特定の /32 カスタムルート アドバタイズが含まれます。詳細については、Cloud Router のドキュメントのアドバタイズされたルートカスタム アドレス範囲をアドバタイズするをご覧ください。
  4. オンプレミス ネットワークと VPC ネットワークのファイアウォール ルールで、オンプレミス システムからテスト VM への接続(TCP と ICMP)が許可されていることを確認します。
  5. SSH で VM に接続します
  6. オペレーティング システムのプロンプトで、ping コマンドを使用して、オンプレミス ネットワーク内のシステムへの接続をテストします。

ワークロードの移動とルーティングの更新

ワークロードまたはワークロードのグループを移行するたびに、次の手順を完了します。

ワークロードの移行

任意の方法で、オンプレミス ネットワークから VPC ネットワークにワークロードと VM を移行します。

移行オプションについては、移行オプションをご覧ください。

カスタム アドバタイズ ルートを更新する

VM を Google Cloudに移行する際は、移行した各 VM のプライマリ内部 IPv4 アドレスが含まれるように、Cloud Router の BGP セッションのカスタム アドバタイズ・ルートを更新します。

連続する IP アドレス ブロックの場合、アドレスを可能な限り少ないカスタム アドバタイズに統合します。アドバタイズは、ハイブリッド サブネット ルーティングが有効になっているサブネットの IPv4 アドレス範囲よりも限定的である(サブネット マスクを長くする)必要があります。

オンプレミス ネットワークから移行後の VM への接続をテストする

Google Cloudに移行した VM への接続をテストするには、次の操作を行います。

  1. ハイブリッド接続を管理する BGP セッションのカスタム アドバタイズが更新されていることを確認します。ルート アドバタイズには、移行した VM の内部 IP アドレスが含まれている必要があります。
  2. ping コマンドを使用して、オンプレミス ネットワーク内のシステムから移行後の VM の IP アドレスへの接続をテストします。

次のステップ