プライベート クラウドを削除する

プライベート クラウドは、1 つ以上の vSphere クラスタで構成されます。プライベート クラウドを削除すると、すべてのクラスタとそのノードが削除されます。

始める前に

1 つのプライベート クラウドを削除すると、プライベート クラウド全体が削除されます。プライベート クラウド ノードを含む、すべてのプライベート クラウド コンポーネントが削除されます。データを保持する場合は、データをオンプレミス ストレージまたはその他のストレージにバックアップします。

プライベート クラウドのコンポーネントは次のとおりです。

  • ノード
  • 仮想マシン
  • 管理 VLAN とサブネット
  • ワークロードのサブネット
  • プライベート クラウドに保存されているすべてのユーザーデータ
  • すべての外部アクセスルール

gcloud と API の要件

gcloud コマンドライン ツールまたは API を使用して VMware Engine リソースを管理するには、以下で説明するようにツールを構成することをおすすめします。

gcloud

  1. デフォルトのプロジェクト ID を設定します。

    gcloud config set project PROJECT_ID
    
  2. デフォルトのリージョンとゾーンを設定します。

    gcloud config set compute/region REGION
    
    gcloud config set compute/zone ZONE
    

gcloud vmware ツールの詳細については、Cloud SDK リファレンス ドキュメントをご確認ください

API

このドキュメント セットの API の例では、cURL コマンドライン ツールを使用して API がクエリされています。cURL リクエストには、有効なアクセス トークンが必要です。有効なアクセス トークンを取得するにはさまざまな方法があります。次の手順では、gcloud ツールを使用してアクセス トークンを生成します。

  1. Google Cloud にログインします。

    gcloud auth login
    
  2. アクセス トークンを生成して TOKEN にエクスポートします。

    export TOKEN=`gcloud auth print-access-token`
    
  3. TOKEN が正しく設定されていることを確認します。

    echo $TOKEN
    

API へのリクエストで認証トークンを使用します。次に例を示します。

curl -X GET -H "Authorization: Bearer \"$TOKEN\"" -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations

Python

このドキュメントの Python コードサンプルは、VMware Engine ライブラリを使用して API と通信します。このアプローチを使用するには、ライブラリをインストールし、アプリケーションのデフォルト認証情報を構成する必要があります。

  1. Python ライブラリをダウンロードしてインストールします。

    pip install google-cloud-vmwareengine
    
  2. シェルで次のコマンドを実行して、ADC 情報を構成します。

    gcloud auth application-default login
    

    または、サービス アカウント キー ファイルを使用します。

    export GOOGLE_APPLICATION_CREDENTIALS="FILE_PATH"
    

ライブラリの詳細については、リファレンス ページまたは GitHub のコードサンプルをご覧ください。

プライベート クラウドを削除する

ワークロード ネットワーク IP CIDR をすぐに使用できるようにするには、プライベート クラウドの削除を開始する前に、プライベート クラウド内のすべての VM をシャットダウンします。

プライベート クラウドを削除すると、請求は直ちに停止されますが、プライベート クラウドは 24 時間以内に削除されない場合があります。この間、プライベート クラウドは Google Cloud コンソールに残り、VM は引き続き実行されます。

コンソール

  1. Google Cloud コンソールで、[プライベート クラウド] ページに移動します。

    [プライベート クラウド] に移動

  2. 削除するプライベート クラウドを選択します。

  3. 概要ページで、[Delete this Private Cloud] をクリックします。

  4. 確認ページで、削除操作のすべての結果を確認することを求められます。これらをよく読み、結果を受け入れる準備ができている場合にのみ、削除を続行します。結果を受け入れる準備ができたら、すべてのチェックボックスをオンにします。

  5. 削除を実行するまでの待機時間(1~8 時間)を入力します。この期間内であれば、[Cancel] をクリックして削除をキャンセルできます。

  6. 削除するプライベート クラウドを認識していることを確認するため、削除するプライベート クラウドの名前を入力します。

  7. [Delete] をクリックして、削除するプライベート クラウドにマークを付けます。

削除プロセスは、指定した遅延(時間数)の後に開始され、完了するまで実行されます。

gcloud

Google Cloud CLI を使用してプライベート クラウドを削除するには、gcloud vmware private-clouds delete コマンドを使用します。

  gcloud vmware private-clouds delete PRIVATE_CLOUD_ID \
     --location=ZONE [--delay-hours=HOURS]

以下のように置き換えます。

  • PRIVATE_CLOUD_ID: このリクエストのプライベート クラウド ID。
  • ZONE: このプライベート クラウドのゾーン
  • HOURS: このリクエストの遅延時間。デフォルトでは 3 時間に設定されていますが、0~8 時間に設定することもできます。この値を 0 に設定すると、削除リクエストがすぐに開始されます。

API

VMware Engine API を使用してプライベート クラウドを削除するには、DELETE リクエストを行います。

curl -X DELETE -H "Authorization: Bearer TOKEN"  -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/privateClouds?privateCloudId=PRIVATE_CLOUD_ID&mps;delayHours=HOUR

以下のように置き換えます。

  • TOKEN: このリクエストの認証トークン。
  • PROJECT_ID: このリクエストのプロジェクト
  • ZONE: プライベート クラウドのゾーン
  • PRIVATE_CLOUD_ID: プライベート クラウドのプライベート クラウド ID
  • HOUR: このリクエストの遅延時間。デフォルトは 3 です。0~8 時間に指定できます。この値を 0 に設定すると、削除リクエストがすぐに開始されます。

Python

VMWare Engine ライブラリによるプライベート クラウドの削除は、Google Cloud コンソールを使用する場合とは異なり、1 ステップのプロセスです。プライベート クラウドの削除メソッドを呼び出すときは十分に注意してください。

from google.api_core import operation
from google.cloud import vmwareengine_v1


def delete_private_cloud_by_full_name(cloud_name: str) -> operation.Operation:
    """
    Deletes VMWare Private Cloud.

    Args:
        cloud_name: identifier of the Private Cloud you want to delete.
            Expected format:
            projects/{project_name}/locations/{zone}/privateClouds/{cloud}

    Returns:
        An Operation object related to started private cloud deletion operation.
    """
    client = vmwareengine_v1.VmwareEngineClient()
    request = vmwareengine_v1.DeletePrivateCloudRequest()
    request.force = True
    request.delay_hours = 3
    request.name = cloud_name
    return client.delete_private_cloud(request)


def delete_private_cloud(
    project_id: str, zone: str, cloud_name: str
) -> operation.Operation:
    """
    Deletes VMWare Private Cloud.

    Args:
        project_id: name of the project hosting the private cloud.
        zone: zone in which the private cloud is located in.
        cloud_name: name of the private cloud to be deleted.

    Returns:
        An Operation object related to started private cloud deletion operation.
    """
    return delete_private_cloud_by_full_name(
        f"projects/{project_id}/locations/{zone}/privateClouds/{cloud_name}"
    )

プライベート クラウドの削除をキャンセルする

プライベート クラウドの削除は、待機期間内であればキャンセルできます。次の操作を行います。

コンソール

  1. Google Cloud コンソールで、[プライベート クラウド] ページに移動します。

    [プライベート クラウド] に移動

  2. 削除対象としてマークしたプライベート クラウドを選択します。

  3. 概要ページで [Cancel deletion] をクリックして、プライベート クラウドの削除をキャンセルします。

gcloud

Google Cloud CLI を使用してプライベート クラウドの削除をキャンセルするには、gcloud vmware private-clouds undelete コマンドを使用します。

  gcloud vmware private-clouds undelete PRIVATE_CLOUD_ID \
     --location=ZONE

以下のように置き換えます。

  • PRIVATE_CLOUD_ID: このリクエストのプライベート クラウド ID。
  • ZONE: このプライベート クラウドのゾーン

API

VMware Engine API を使用してプライベート クラウドの削除をキャンセルするには、POST リクエストを行います。

curl -X POST -H "Authorization: Bearer TOKEN"  -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/privateClouds?privateCloudId=PRIVATE_CLOUD_ID:undelete

以下のように置き換えます。

  • TOKEN: このリクエストの認証トークン。
  • PROJECT_ID: このリクエストのプロジェクト ID
  • ZONE: プライベート クラウドのゾーン
  • PRIVATE_CLOUD_ID: このリクエストのプライベート クラウド ID。

Python

from google.api_core import operation
from google.cloud import vmwareengine_v1


def cancel_private_cloud_deletion_by_full_name(cloud_name: str) -> operation.Operation:
    """
    Cancels in progress deletion of VMWare Private Cloud.

    Args:
        cloud_name: identifier of the Private Cloud you want to cancel deletion for.
            Expected format:
            projects/{project_name}/locations/{zone}/privateClouds/{cloud}

    Returns:
        An Operation object related to canceling private cloud deletion operation.
    """
    client = vmwareengine_v1.VmwareEngineClient()
    request = vmwareengine_v1.UndeletePrivateCloudRequest()
    request.name = cloud_name
    return client.undelete_private_cloud(request)


def cancel_private_cloud_deletion(
    project_id: str, zone: str, cloud_name: str
) -> operation.Operation:
    """
    Cancels in progress deletion of VMWare Private Cloud.

    Args:
        project_id: name of the project hosting the private cloud.
        zone: zone in which the private cloud is located in.
        cloud_name: name of the private cloud to cancel deletion for.

    Returns:
        An Operation object related to canceling private cloud deletion operation.
    """
    return cancel_private_cloud_deletion_by_full_name(
        f"projects/{project_id}/locations/{zone}/privateClouds/{cloud_name}"
    )