レガシー ネットワークを管理する

レガシー ネットワークは推奨されず、作成できなくなりました。新しい Google Cloud 機能の多くはレガシー ネットワークではサポートされません。Virtual Private Cloud(VPC)ネットワークの使用をおすすめします。レガシー ネットワークを置き換える方法については、レガシー ネットワークを置き換えるをご覧ください。

このページでは、Google Cloud のレガシー ネットワークの変更について説明します。このページは、レガシー ネットワークのある既存の設定がある場合にのみ参考にしてください。

制限事項

レガシー ネットワークでは、以下の Google Cloud 機能はサポートされません。これらの機能を使用するには、代わりに VPC ネットワークを使用してください。

単一リージョンのレガシー ネットワークは、単一リージョンを VPC ネットワークに変換するを使用して、VPC ネットワークに変換できます。マルチリージョンのレガシー ネットワークがある場合は、変換ツールを使用する前にリソースを単一のリージョンに移行する必要があります。

レガシー ネットワークを作成する

レガシー ネットワークは作成できなくなりました。

レガシー ネットワークを作成しようとすると、次のエラーが表示されます。

Creation of legacy mode networks is deprecated. Please create a subnet mode
network instead by removing the IPv4Range field and adding the
autoCreateSubnetworks field to your network insert request.

レガシー ネットワークから VM を移行する

仮想マシン(VM)インスタンスをレガシー ネットワークから VPC ネットワークに移行できます。手順については、ネットワーク間の VM の移行をご覧ください。

レガシー ネットワークを削除する

ネットワークが他のリソースで使用されていない場合にのみ、レガシー ネットワークを明示的に削除できます。

ネットワークを削除するには:

gcloud compute networks delete LEGACY_NETWORK_NAME

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

  • LEGACY_NETWORK_NAME: 削除するレガシー ネットワークの名前。

単一リージョンのレガシー ネットワークを VPC ネットワークに変換する

単一リージョン変換ツールを使用して、レガシー ネットワークを同じプロジェクト内のカスタムモード VPC ネットワークに変換できます。レガシー ネットワーク内のすべてのリソースは、単一リージョンに配置されている必要があります。詳細については、単一リージョン変換の詳細をご覧ください。

単一リージョン変換ツールの制限事項

  • 変換は開始後にキャンセルできません。

  • レガシー ネットワークを VPC ネットワークに変換できるようにするには、先に、すべてのリソースが単一リージョン内に存在している必要があります。複数のリージョンにリソースがある場合、変換は失敗し、Google Cloud は何も行いません。単一リージョンに手動でリソースを移動するか、移行するリージョン以外のリージョンからリソースを削除する必要があります。たとえば、リージョンごとにリソース リージョンを複数の VPC ネットワークに変換することはできません。

  • 変換中、ネットワークは引き続きトラフィックを通過し、通信は中断されません。ただし、ネットワーク リソースへの変更は制限されています。ネットワーク リソースは削除できますが、特定の削除は変換が完了するまでブロックされます。変換中にネットワーク リソースを作成することはできません。

  • 変換された VPC ネットワークをレガシー ネットワークに戻すことはできません。

  • レガシー ネットワークに Google Kubernetes Engine クラスタが含まれている場合、コンポーネントが正常に動作するようにするには、レガシー ネットワークを変換した後に GKE クラスタをアップグレードする必要があります。詳細については、GKE クラスタを含むレガシー ネットワークの変換をご覧ください。

レガシー ネットワークの変換を準備する

  1. ネットワークのユーザー アクティビティが少ないときに、変換を行うことを検討してください。

  2. 変換も使用するには、レガシー ネットワーク内のすべてのリソースが 1 つのリージョン内にある必要があります。複数のリージョンにリソースがある場合は、使用するリージョンを決定して、そのリージョンにインスタンスを移動します。そのリージョンにない他のリソースは、手動で移動または削除する必要があります。

  3. ネットワーク CIDR 範囲の最後の 2 つの内部 IP アドレスが使用されていないことを確認します。これらの IP アドレスは、VPC ネットワーク サブネットで使用できないアドレスです。

    たとえば、IP アドレス範囲が 10.240.0.0/16 のネットワークの場合、10.240.255.25410.240.255.255 がどのリソースにも割り当てられていないことを確認します。

  4. 変換中に予想されるニーズに対応するために、インスタンス グループを手動でスケールアップし、オートスケーラーを無効にします

    変換中にオートスケーラーが有効になっていて、オートスケーラーが新しいインスタンスを作成しようとすると、エラーが発生することがあります。

  5. レガシー ネットワークに GKE クラスタが含まれている場合は、GKE クラスタを含むレガシー ネットワークの変換をご覧ください。

レガシー ネットワークを変換する

ツールを使用してレガシー ネットワークから VPC ネットワークに変換しても、ネットワーク トラフィックは中断されません。リソースは引き続き正常に動作します。なんらかの理由でネットワーク変換が失敗した場合は、ネットワーク変換が自動的にロールバックされます。エラーが発生した場合は、ソリューションのトラブルシューティングのセクションをご覧ください。

  1. レガシー ネットワークを VPC ネットワークに変換します。

    変換は長時間実行オペレーションです。所要時間は、ネットワーク上のリソースの数によって異なります。ネットワークの変換が完了するまで少なくとも 7 分かかります。大規模なネットワークでは、1,000 台の VM あたり 20 分以上かかることがあります。変換中はネットワークに変更を加えることができません。

    gcloud

    gcloud beta compute networks update LEGACY_NETWORK_NAME \
        --switch-to-custom-subnet-mode
    

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

    • LEGACY_NETWORK_NAME: 変換するレガシー ネットワークの名前。

    API

    POST https://www.googleapis.com/compute/beta/projects/PROJECT_ID/global/networks/LEGACY_NETWORK_NAME/switchToCustomMode
    

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

    • PROJECT_ID: 変換するレガシー ネットワークを含むプロジェクト。

    • LEGACY_NETWORK_NAME: 変換するレガシー ネットワークの名前。

    globalOperations.get メソッドまたは globalOperations.wait メソッドを使用して、オペレーションのステータスをモニタリングできます。

  2. オペレーションが完了したら、ネットワークのサブネット モードが CUSTOM であることを確認します。

    ネットワークを一覧表示して、サブネット モードを確認します。

    gcloud compute networks list
    
  3. オートスケーラーを前に無効にした場合は、オートスケーラーを再度有効にする必要があります。

  4. VPC ネットワークで、新しいリソースを作成するリージョンにサブネットを追加します。

  5. 変換に含まれなかったリソースを再作成します。

GKE クラスタを含むレガシー ネットワークを変換する

レガシー ネットワークに GKE クラスタが含まれている場合は、コンポーネントが正常に機能するように、変換後に GKE クラスタをアップグレードする必要があります。

GKE ネットワーク変換スクリプトを使用して、ネットワーク、クラスタ、ノードプールのアップグレードを実行します。

スクリプトを使用せずにレガシー ネットワークを VPC ネットワークに変換した場合は、スクリプトを使用して、必要なクラスタとノードプールをアップグレードできます。

単一リージョン変換後にリソースを更新する

レガシー ネットワークにはサブネットワークがないため、レガシー ネットワークのリソースの作成または変更に使用されるスクリプトやコマンドはサブネットワークを指定しません。VPC ネットワークにはサブネットワークが含まれます。したがって、VPC ネットワーク内のリソースを管理するスクリプトやコマンドでは、通常、サブネットワークを指定する必要があります。

ただし、VPC ネットワークへの変換後にレガシー ネットワークの管理に使用されたスクリプトとコマンドが引き続き機能するように、以下が適用されます。

  • 変換時にレガシー ネットワークが使用していたリージョンを指定して gcloud CLI コマンドを実行するか API リクエストを行うと、変換オペレーション中に作成されたサブネットワークが自動的に設定されます。

  • 変換時にレガシー ネットワークが使用していたリージョンと異なるリージョンを指定して gcloud CLI コマンドの実行または API リクエストを行う場合は、サブネットワークを指定する必要があります。

単一リージョン変換のトラブルシューティング

変換の試行: 複数のリージョンにある VM を使用してネットワークを変換できません

ネットワークを変換しようとすると、次のエラーが発生します。

  ERROR: (gcloud.compute.networks.switchToCustomMode) ResponseError: code=400, message=Only single-region legacy networks are supported. This network has at least one resource in us-central1 and at least one resource in asia-east1.

解決策: ネットワークのモードをレガシーモードからカスタムモードに変換するのは、これらのリソースがすべて単一リージョンに存在する場合のみです。

  • インスタンス(停止したインスタンスを含む)
  • インスタンス·グループ
  • マネージド インスタンス グループ
  • 転送ルール
  • routers

続行するには、すべてのリソースを 1 つのリージョンに移行するか、変換前に削除します。

変換の試行: レート制限を超えているため、ネットワークを変換できません

ネットワークを変換しようとすると、次のエラーが発生します。

  Error 403: Rate Limit Exceeded, rateLimitExceeded
  

解決策: 変換オペレーションでは、同時実行オペレーションに対するグローバル割り当てがあります。このエラーが発生した場合は、5 分ほど待ってからもう一度試してください。

変換中: 切り替えモードのネットワークでは VM を作成できません

VM を作成、削除、または更新しようとすると、次のエラーが発生します。

  ERROR: (gcloud.compute.instances.create) ResponseError: code=400, message="Resource not ready".
  

解決策: ネットワークのモードを切り替えると、ネットワークがロックされ、オペレーションが完了するまで新しい VM を作成できなくなります。変換の完了後に VM を作成、削除、更新できます。

変換後: サブネットワークを指定せずにリソースを作成できません

ネットワークで新しいリソースを作成しようとすると、次のエラーが発生します。

  gERROR: (gcloud.compute.instances.create) ResponseError: code=400, message=Subnetwork should be specified for custom subnetmode network.

解決策: リソース作成スクリプトを更新して、リソースのサブネットワークを指定します。

変換後: サブネットワークを削除できません

変換されたネットワーク、または変換オペレーション中に作成されたサブネットワークを削除しようとすると、次のエラーが発生します。

  ERROR: (gcloud.compute.networks.subnets.delete) Could not fetch resource:
   - Cannot delete subnetwork created during legacy network to custom-mode conversion for a day. Please try again tomorrow.
   

解決策: 1 日待ってから、ネットワークまたはサブネットワークの削除を試みてください。

VPC ネットワークに手動で移行する

単一リージョン変換ができない場合は、VPC ネットワークのレガシー ネットワーク内のすべてのリソースを再作成できます。レガシー ネットワーク内の複数のリージョンを VPC ネットワークに変換するための自動化されたソリューションはありません。

  1. カスタムモードの VPC ネットワークを作成し、使用するリージョンそれぞれにサブネットを追加します。

  2. レガシー ネットワークで、既存のリソースの詳細を記録します。この情報は、VPC ネットワークで再作成するために必要です。

    作業を開始するにあたり、再作成する必要があるかもしれない一般的なリソースをいくつか紹介します。

  3. 記録した同じ構成でリソースを再作成します。VM インスタンスなどの一部のリソースでは、再作成のために追加の計画と手順が必要になります。いくつかの例については、特記事項のセクションをご覧ください。

    可能であれば、既存のリソースを削除する前にリソースを再作成してください。これにより、既存のリソースを削除する前に、新しいリソースが期待どおりに動作することをテストして確認できます。一部のリソースでは再作成ができない場合があります。割り当ての超過や、既存の命名規則の再利用ができない場合もあります。

  4. 古いリソースとレガシー ネットワークを削除します。

手動移行に関する特記事項

リソースを再作成するだけでは、サービスが中断することがあります。中断を避けるため、移行前に追加の操作が必要になることがあります。たとえば、古いネットワークから新しいネットワークにトラフィックをリダイレクトできるように、サービスのインフラストラクチャを複製する必要がある場合があります。あるいは、既存の VM インスタンスのスナップショットを取得し、データを保持して新しいインスタンスに移動する必要がある場合もあります。

次のシナリオは、移行の前に計画できます。

  • エフェメラル外部 IP アドレスを使用していて、引き続き使用する場合は、予約済みの静的 IP アドレスに昇格してください。
  • VM インスタンスを移動する必要がある場合は、手動で再作成するか、Google Cloud を使用して、既存のインスタンスから同様のインスタンスを作成します。同様のインスタンスを作成しても、Google Cloud は既存のデータをコピーしませんが、スナップショットブートディスクを使用してデータをコピーできます。
  • ロード バランシングしたサービスがあり、これを実行し続ける場合は、VPC ネットワークに重複するバックエンドを追加します。レガシー ネットワークでバックエンドを削除する前に、VPC でバックエンドへのトラフィックの転送を開始できます。

次のステップ