偶発的な VM 削除の防止

このドキュメントでは、インスタンス リソースで deletionProtection プロパティを設定することによって特定の VM インスタンスが削除されないようにする方法について説明します。VM インスタンスについて詳しくは、インスタンスのドキュメントをご覧ください。

ワークロードの一部として、アプリケーションやサービスの実行に不可欠な VM インスタンスが存在する場合があります。たとえば、SQL サーバーを実行するインスタンスや、ライセンス マネージャーとして使用されるサーバーなどがこれに該当します。このような VM インスタンスは常に稼働していなければならないため、これらの VM が削除されないようにする手段が必要です。

deletionProtection フラグを設定することで、VM インスタンスが誤って削除される事態を防ぐことができます。deletionProtection フラグが設定された VM インスタンスをユーザーが削除しようとすると、そのリクエストは失敗します。このフラグをリセットしてリソースを削除可能にできるのは、compute.instances.create 権限を持つ役割を付与されたユーザーだけです。

始める前に

仕様

  • 削除保護では、次の操作は妨げられません。

  • 削除保護は、通常の VM とプリエンプティブ VM の両方に適用できます。

  • 削除保護は、マネージド インスタンス グループに属する VM には適用できませんが、非マネージド インスタンス グループに属するインスタンスには適用できます。

  • 削除保護は、インスタンス テンプレートでは指定できません。

権限

このタスクを実施するには、次の権限またはリソースに対する次の IAM 役割が付与されている必要があります。

権限

  • compute.instances.create

役割

  • compute.admin
  • compute.instanceAdmin.v1

インスタンスの作成時に削除保護を設定する

デフォルトでは、インスタンスの削除保護は無効になっています。削除保護を有効にするには、次の手順に従います。

Console

  1. [VM インスタンス] ページに移動します。

    [VM インスタンス] ページに移動

  2. プロンプトが表示されたら、プロジェクトを選択して [続行] をクリックします。
  3. [インスタンスを作成] ボタンをクリックします。
  4. [管理、セキュリティ、ディスク、ネットワーク、単一テナンシー] セクションを展開します。
  5. [管理] で、[削除からの保護の有効化] チェックボックスをオンにします。

    VM 削除チェックボックスのスクリーンショット

  6. VM 作成プロセスを続行します。

gcloud

VM インスタンスを作成するときに --deletion-protection または no-deletion-protection フラグを指定します。削除保護はデフォルトで無効になっているため、削除保護を有効にするには次のコマンドを実行します。

gcloud compute instances create [INSTANCE_NAME] --deletion-protection

ここで、[INSTANCE_NAME] は対象のインスタンスの名前です。

作成時に削除保護を無効にするには、次のコマンドを実行します。

gcloud compute instances create [INSTANCE_NAME] --no-deletion-protection

API

API では、VM インスタンスを作成するときにリクエスト本文に deletionProtection プロパティを含めます。次に例を示します。

POST https://www.googleapis.com/v1/compute/projects/[PROJECT_ID]/zones/[ZONE]/instances

{
  "name": "[INSTANCE_NAME]",
  "deletionProtection": "true",
  ...
}

削除保護を無効にするには、deletionProtectionfalse に設定します。

既存インスタンスの削除保護を切り替える

インスタンスの現在のステータスにかかわらず、既存インスタンスの削除保護を切り替えることができます。削除保護を有効または無効にする前にインスタンスを停止する必要はありません。

Console

  1. [VM インスタンス] ページに移動します。

    [VM インスタンス] ページに移動

  2. プロンプトが表示されたら、プロジェクトを選択して [続行] をクリックします。
  3. 削除保護を切り替えるインスタンスの名前をクリックします。インスタンスの詳細ページが表示されます。
  4. インスタンスの詳細ページで、次の手順を実行します。

    1. ページの上部にある [編集] ボタンをクリックします。
    2. [削除からの保護] で、チェックボックスをオンにして削除保護を有効にするか、チェックボックスをオフにして削除保護を無効にします。

      VM 削除チェックボックスのスクリーンショット

    3. 変更を保存します。

gcloud

gcloud ツールを使用し、--deletion-protection または --no-deletion-protection フラグを指定して update コマンドを実行します。

gcloud compute instances update [INSTANCE_NAME] \
    [--deletion-protection | --no-deletion-protection]

たとえば、example-vm というインスタンスの削除保護を有効にするには、次のコマンドを実行します。

gcloud compute instances update example-vm --deletion-protection

API

API では、delectionProtection クエリ パラメータを使用して setDeletionProtection メソッドに POST リクエストを発行します。次に例を示します。

POST https://www.googleapis.com/v1/compute/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]/setDeletionProtection?deletionProtection=true

削除保護を無効にするには、deletionProtection を false に設定します。リクエスト本文は提供しないでください。

インスタンスの削除保護が有効になっているかどうかを確認する

インスタンスの削除保護が有効になっているかどうかは、gcloud tool または API で確認できます。

Console

  1. [VM インスタンス] ページに移動します。

    [VM インスタンス] ページに移動

  2. プロンプトが表示されたら、プロジェクトを選択して [続行] をクリックします。
  3. [VM インスタンス] ページの [列を選択] プルダウン メニューで [削除からの保護] を有効にします。

    VM 削除オプションのスクリーンショット

  4. 新しい列が追加され、削除保護アイコンが表示されます。VM で削除保護が有効になっている場合、インスタンス名の横にアイコンが表示されます。

gcloud

gcloud ツールで instances describe コマンドを実行して、削除保護フィールドを検索します。次に例を示します。

gcloud compute instances describe example-instance | grep "deletionProtection"

このツールは deletionProtection プロパティに設定されている値(true または false)を返します。

deletionProtection: false

API

API では、GET リクエストを発行して deletionProtection フィールドを探します。

GET https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/zones/[ZONE]/instances/[INSTANCE_NAME]

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Compute Engine ドキュメント