このドキュメントでは、Compute Engine インスタンスを停止または再起動する方法について説明します。インスタンスの一時停止、停止、リセットの詳細については、Compute Engine インスタンスを一時停止、停止、リセットするをご覧ください。
インスタンスの停止は、インスタンスが不要になった場合や、プロパティを変更する場合(マシンタイプの変更、アタッチされているディスクの削除、マウントされたディスクの削除など)に役立ちます。インスタンスを停止した後には、次のことができます。
再起動してワークロードを再開する。
インスタンスが不要になった場合はそのインスタンスを削除する。
インスタンスの停止または再起動を自動化するには、代わりに以下をご確認ください。
始める前に
-
まだ設定していない場合は、認証を設定します。認証とは、 Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のいずれかのオプションを選択して Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
-
インスタンスを停止する: インスタンスに対する
compute.instances.stop
-
ゲスト OS からインスタンスを停止する: インスタンス レベルの公開 SSH 認証鍵を使用する場合、インスタンスに対する
compute.instances.setMetadata
。 -
インスタンスを再起動するには: インスタンスに対する
compute.instances.start
-
暗号鍵を使用するインスタンスを再起動する: インスタンスに対する
compute.instances.startWithEncryptionKey
ローカル SSD ディスクがアタッチされていないインスタンスを停止する
ローカル SSD ディスクがアタッチされていない 1 つ以上のインスタンスを同時に停止できます。インスタンスのシャットダウン スクリプトの実行が、デフォルトのシャットダウン期間内に完了する必要があります。
ローカル SSD ディスクがアタッチされているインスタンスを停止する
ローカル SSD ディスクがアタッチされている 1 つ以上のインスタンスを同時に停止する場合は、これらのディスク上のデータを破棄するかまたは保持するかを選択できます(プレビュー)。インスタンスのシャットダウン スクリプトの実行が、デフォルトのシャットダウン期間内に完了する必要があります。
-
この方法では、シャットダウン スクリプトの実行が完了した後にのみ単一インスタンスを停止できます。正常なシャットダウンを有効にしている場合は、正常なシャットダウンを行わずにインスタンスを停止するか、進行中の正常なシャットダウンを終了することができます。アタッチされたローカル SSD ディスクのデータを耐久性の高いストレージ ボリュームに手動でバックアップしない限り、ゲスト OS 内からインスタンスを停止すると、それらのディスク上のデータは破棄されます。
インスタンスで正常なシャットダウンを有効にしている場合は、Google Cloud コンソール、gcloud CLI、または REST API を使用して、正常なシャットダウンを行わずにインスタンスを停止するか、進行中の正常なシャットダウンを終了することができます。
複数のインスタンスを同時に停止するには、Google Cloud コンソールを使用するか、同じゾーンにあるインスタンスの場合は gcloud CLI を使用します。
Google Cloud コンソールで [VM インスタンス] ページに移動します。
停止する実行中のインスタンスを選択します。
[
停止] をクリックします。ダイアログで次の操作を行います。
省略可: 正常なシャットダウンを行わずにインスタンスを停止する場合、または進行中の正常なシャットダウンを終了する場合は、[グレースフル シャットダウンをスキップする(該当する場合)] チェックボックスをオンにします。
[停止] をクリックして確定します。
INSTANCE_NAMES
: インスタンス名のスペース区切りのリスト(例:instance-01 instance-02 instance-03
)。ZONE
: インスタンスが配置されているゾーン。INSTANCE_NAME
: インスタンスの名前。PROJECT_ID
: インスタンスが配置されているプロジェクトの ID。ZONE
: インスタンスが配置されているゾーン。インスタンスで正常なシャットダウンを有効にしている場合は、Google Cloud コンソール、gcloud CLI、または REST API を使用して、正常なシャットダウンを行わずにインスタンスを停止するか、進行中の正常なシャットダウンを終了することができます。
インスタンス(Z3 インスタンスは除く)にアタッチされているローカル SSD ディスクのデータを保持するには、gcloud CLI または REST API を使用してインスタンスを停止します。
複数のインスタンスを同時に停止するには、Google Cloud コンソールを使用するか、同じゾーンにあるインスタンスの場合は gcloud CLI を使用します。
Google Cloud コンソールで [VM インスタンス] ページに移動します。
停止する実行中のインスタンスを選択します。
[
停止] をクリックします。ダイアログで次の操作を行います。
省略可: 正常なシャットダウンを行わずにインスタンスを停止する場合、または進行中の正常なシャットダウンを終了する場合は、[グレースフル シャットダウンをスキップする(該当する場合)] チェックボックスをオンにします。
[停止] をクリックして確定します。
ローカル SSD のデータを破棄するには、
--discard-local-ssd=true
フラグを指定してgcloud compute instances stop
コマンドを使用します。gcloud compute instances stop INSTANCE_NAMES \ --discard-local-ssd=true \ --zone=ZONE
ローカル SSD のデータを保持するには、
--discard-local-ssd=false
フラグを指定してgcloud beta compute instances stop
コマンドを使用します。gcloud beta compute instances stop INSTANCE_NAMES \ --discard-local-ssd=false \ --zone=ZONE
INSTANCE_NAMES
: インスタンス名のスペース区切りのリスト(例:instance-01 instance-02 instance-03
)。ZONE
: インスタンスが配置されているゾーン。ローカル SSD のデータを破棄するには、
instances.stop
メソッドにPOST
リクエストを送信します。リクエスト URL に、true
に設定されたdiscardLocalSsd
クエリ パラメータを含めます。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/stop?discardLocalSsd=true
ローカル SSD のデータを保持するには、
beta.instances.stop
メソッドにPOST
リクエストを送信します。リクエスト URL に、false
に設定されたdiscardLocalSsd
クエリ パラメータを含めます。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/stop?discardLocalSsd=false
PROJECT_ID
: インスタンスが配置されているプロジェクトの ID。ZONE
: インスタンスが配置されているゾーン。INSTANCE_NAME
: インスタンスの名前。まだインスタンスに接続していない場合は、インスタンスに接続します。
インスタンスを停止するには、次のいずれかの方法を選択します。
ゲスト OS をシャットダウンする前に、インスタンスがシャットダウン スクリプトを実行できるようにするクリーン シャットダウンを行うには、次のコマンドを実行します。
sudo shutdown -h now
それ以外の場合、強制的にシャットダウンするには、次のコマンドを実行します。
sudo poweroff
まだインスタンスに接続していない場合は、次のいずれかの方法でインスタンスに接続します。
インスタンスを停止するには、次のいずれかの方法を選択します。
インスタンスをクリーンな状態で停止し、ゲスト OS をシャットダウンする前にインスタンスがシャットダウン スクリプトを実行できるようにするには、次のコマンドを実行します。
shutdown /s
強制的にシャットダウンするには、次のコマンドを実行します。
shutdown /f
暗号化されたディスクがインスタンスにアタッチされていない場合は、暗号化されたディスクがアタッチされていないインスタンスを再起動するをご覧ください。
それ以外の場合は、暗号化されたディスクがアタッチされているインスタンスを再起動するをご覧ください。
Google Cloud コンソールで [VM インスタンス] ページに移動します。
1 つ以上のインスタンスを選択します。
[
開始 / 再開] をクリックします。INSTANCE_NAMES
: インスタンス名のスペース区切りのリスト(例:instance-01 instance-02 instance-03
)。ZONE
: インスタンスが配置されているゾーン。INSTANCE_NAME
: 再起動するインスタンスの名前。PROJECT_ID
: インスタンスが配置されているプロジェクトの ID。ZONE
: インスタンスが配置されているゾーン。Google Cloud コンソールで [VM インスタンス] ページに移動します。
再起動するインスタンスを選択します。
[
開始 / 再開] をクリックします。インスタンスにアタッチされている暗号化された各ディスクの暗号鍵を指定し、[開始] をクリックします。
INSTANCE_NAMES
: インスタンス名のスペース区切りのリスト(例:instance-01 instance-02 instance-03
)。ENCRYPTION_KEY_FILE
: 顧客指定の暗号鍵を含む JSON ファイルの相対パス。複数のインスタンスを同時に再起動できるのは、これらのインスタンスで同じ顧客指定の暗号鍵が使用される場合のみです。ZONE
: インスタンスが配置されているゾーン。PROJECT_ID
: インスタンスが配置されているプロジェクトの ID。ZONE
: インスタンスが配置されているゾーン。INSTANCE_NAME
: インスタンスの名前。DISK_URL
: 顧客指定の暗号鍵で暗号化され、アタッチされているディスクの完全リソース名に対応するリソース URL。ENCRYPTION_TYPE
: 使用しているディスク暗号化のタイプ。rawKey
、kmsKeyName
、rsaEncryptedKey
のいずれかです。rsaEncryptedKey
タイプを使用する場合は、beta.instances.startWithEncryptionKey
メソッドにPOST
リクエストを送信します。ENCRYPTION_KEY
: インスタンスにアタッチされている永続ディスクの暗号化に使用される暗号鍵。rawKey
鍵またはrsaEncryptedKey
鍵は base64 でエンコードされている必要があります。また、rsaEncryptedKey
鍵を準備するには、RSA 鍵のラッピングをご覧ください。
Go
ローカル開発環境でこのページの Go サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
詳細については Set up authentication for a local development environment をご覧ください。
Java
ローカル開発環境でこのページの Java サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
詳細については Set up authentication for a local development environment をご覧ください。
Node.js
ローカル開発環境でこのページの Node.js サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
詳細については Set up authentication for a local development environment をご覧ください。
PHP
ローカル開発環境でこのページの PHP サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
詳細については Set up authentication for a local development environment をご覧ください。
Python
ローカル開発環境でこのページの Python サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
詳細については Set up authentication for a local development environment をご覧ください。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
必要なロール
VM の停止と再起動に必要な権限を取得するには、プロジェクトに対する Compute インスタンス管理者(v1)(
roles/compute.instanceAdmin.v1
)IAM ロールを付与するように管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。この事前定義ロールには、コンピューティング インスタンスの停止または再起動に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
コンピューティング インスタンスを停止または再起動するには、次の権限が必要です。
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
インスタンスの停止
ユーザーがコンピューティング インスタンスを停止するか、Compute Engine がスケジュールされたアクションのためにコンピューティング インスタンスを停止すると、インスタンスは、接続されているリソース、構成設定、内部 IP アドレス、MAC アドレス、メタデータを保持します。ただし、インスタンスのメモリ内データとアプリケーションの状態は失われます。これらの状態を保持する必要がある場合は、代わりにインスタンスを一時停止します。
インスタンスにローカル SSD ディスクがアタッチされているかどうかと、シャットダウン スクリプトをどのように処理するかに応じて、次の方法でインスタンスを停止できます。
ローカル SSD ディスクがアタッチされていないインスタンスを停止する
インスタンスの停止時に行う操作に応じて、次のオプションを使用します。
1 つ以上のインスタンスを停止するには、次のいずれかのオプションを選択します。
コンソール
gcloud
同じゾーン内の 1 つ以上のインスタンスを停止するには、
gcloud compute instances stop
コマンドを使用します。gcloud compute instances stop INSTANCE_NAMES \ --zone=ZONE
次のように置き換えます。
1 つ以上のインスタンスで正常なシャットダウンを有効にしている場合は、必要に応じて正常なシャットダウンを行わずにインスタンスを停止するか、進行中の正常なシャットダウンを手動で終了することができます。これを行うには、
--no-graceful-shutdown
フラグを指定してgcloud beta compute instances stop
コマンドを使用します。gcloud beta compute instances stop INSTANCE_NAMES \ --no-graceful-shutdown \ --zone=ZONE
Go
Java
Node.js
PHP
Python
REST
インスタンスを停止するには、
instances.stop
メソッドにPOST
リクエストを送信します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/stop
次のように置き換えます。
1 つのインスタンスで正常なシャットダウンを有効にしている場合は、必要に応じて正常なシャットダウンを行わずにインスタンスを停止するか、進行中の正常なシャットダウンを手動で終了することができます。そのためには、
instances.stop
メソッドにPOST
リクエストを送信します。リクエスト URL にnoGracefulShutdown=true
クエリ パラメータを含めます。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop?noGracefulShutdown=true
ローカル SSD ディスクがアタッチされているインスタンスを停止する
コンピューティング インスタンスを停止するときに行う操作に応じて、次のオプションを使用します。
ローカル SSD ディスクがアタッチされている 1 つ以上のインスタンスを停止するには、次のいずれかのオプションを選択します。
コンソール
gcloud
ローカル SSD ディスクがアタッチされている同じゾーン内の 1 つ以上のインスタンスを停止する場合は、次のようにローカル SSD のデータを破棄するかまたは保持するかを指定します。
次のように置き換えます。
1 つ以上のインスタンスで正常なシャットダウンを有効にしている場合は、必要に応じて正常なシャットダウンを行わずにインスタンスを停止するか、進行中の正常なシャットダウンを終了することができます。これを行うには、
--no-graceful-shutdown
フラグを指定してgcloud beta compute instances stop
コマンドを使用します。gcloud beta compute instances stop INSTANCE_NAMES \ --discard-local-ssd=DISCARD_LOCAL_SSD \ --no-graceful-shutdown \ --zone=ZONE
ローカル SSD ディスクのデータを破棄する場合は
DISCARD_LOCAL_SSD
をtrue
に置き換え、データを保持する場合はfalse
に置き換えます。REST
ローカル SSD ディスクがアタッチされているインスタンスを停止する場合は、次のようにローカル SSD のデータを破棄するかまたは保持するかを指定します。
次のように置き換えます。
1 つのインスタンスで正常なシャットダウンを有効にしている場合は、必要に応じて、正常なシャットダウンを行わずにインスタンスを停止できます。また、進行中の正常なシャットダウンを手動で終了することもできます。そのためには、
instances.stop
メソッドにPOST
リクエストを送信します。リクエスト URL にnoGracefulShutdown=true
クエリ パラメータを含めます。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop?discardLocalSsd=DISCARD_LOCAL_SSD&noGracefulShutdown=true
ローカル SSD ディスクのデータを破棄する場合は
DISCARD_LOCAL_SSD
をtrue
に置き換え、データを保持する場合はfalse
に置き換えます。ゲスト OS からインスタンスを停止する
コンピューティング インスタンスにローカル SSD ディスクがアタッチされている場合、ゲスト OS をシャットダウンすると、ローカル SSD のデータが自動的に破棄されます。このデータを保持するには、インスタンスを停止する前に、データを永続ストレージ オプションに手動でコピーします。
ゲスト OS からインスタンスを停止するには、次のいずれかのオプションを選択します。
Linux
Windows
インスタンスの再起動
完全に停止されたコンピューティング インスタンス(インスタンスの状態が
TERMINATED
)は再起動できます。インスタンスの停止時にローカル SSD ディスクのデータを保持することを選択した場合は、再起動後にローカル SSD ディスクを再マウントする必要がある可能性があります。ローカル SSD ディスクをマウントする方法の詳細については、ローカル SSD デバイスのフォーマットとマウントをご覧ください。
インスタンスを再起動するには、暗号化されたディスクがインスタンスにアタッチされているかどうかに応じて、次のいずれかの方法を使用します。
暗号化されたディスクがアタッチされていないインスタンスを再起動する
複数のコンピューティング インスタンスを同時に再起動することも、個々のインスタンスを再起動することもできます。複数のインスタンスの場合は、Google Cloud コンソールを使用します。同じゾーンにあるインスタンスの場合は、gcloud CLI を使用します。個々のインスタンスの場合は、次のいずれかのオプションを選択します。
コンソール
gcloud
同じゾーン内の 1 つ以上のインスタンスを再起動するには、
gcloud compute instances start
コマンドを使用します。gcloud compute instances start INSTANCE_NAMES \ --zone=ZONE
次のように置き換えます。
Go
Java
Node.js
PHP
Python
REST
インスタンスを再起動するには、
instances.start
メソッドにPOST
リクエストを送信します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/start
次のように置き換えます。
暗号化されたディスクがアタッチされているインスタンスを再起動する
顧客指定の暗号鍵を使用して暗号化されたディスクがアタッチされている停止中のコンピューティング インスタンスを再起動する場合は、暗号鍵情報を指定する必要があります。
複数のインスタンスを同時に再起動することも、個々のインスタンスを再起動することもできます。複数のインスタンスの場合は、Google Cloud コンソールを使用します。同じゾーンにあるインスタンスの場合は、gcloud CLI を使用します。個々のインスタンスの場合は、次のいずれかのオプションを選択します。
コンソール
gcloud
同じゾーン内の暗号化されたディスクを使用する 1 つ以上のインスタンスを再起動するには、
--csek-key-file
フラグを指定してgcloud compute instances start
コマンドを使用します。RSA でラップされた鍵を使用している場合は、代わりに--csek-key-file
フラグを指定してgcloud beta compute instances start
コマンドを使用します。gcloud compute instances start INSTANCE_NAMES \ --csek-key-file=ENCRYPTION_KEY_FILE \ --zone=ZONE
次のように置き換えます。
Go
Java
Node.js
PHP
Python
REST
暗号化されたディスクを使用するインスタンスを再起動するには、
instances.startWithEncryptionKey
メソッドにPOST
リクエストを送信します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/startWithEncryptionKey { "disks": [ { "source": "DISK_URL", "diskEncryptionKey": { "ENCRYPTION_TYPE": "ENCRYPTION_KEY" } } ] }
次のように置き換えます。
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-03-27 UTC。
-