このドキュメントでは、仮想マシン(VM)インスタンスを一時停止または再開する方法について説明します。
VM インスタンスを残すが、使用していないときに課金されたくない場合は、VM を一時停止できます。VM を一時停止すると、VM がプロジェクト内に保持され、VM のメモリの内容がストレージに移動します。VM が一時停止されている間は、VM のメモリの保持に使用されるストレージに対してのみ課金されます。静的 IP アドレスなどの属性はそのまま維持されるため、VM を再開する際にネットワーク機能が予期したとおりに機能します。再開後、VM のメモリがストレージからインスタンスに戻され、実行中の VM インスタンスに対する課金が開始されます。
インスタンスの一時停止は次の場合に最適です。
- 夜間や週末などのオフ時間に使用率が低い開発環境やテスト環境。新しい VM インスタンスを作成する場合よりもコストを抑え、短時間で初期化を行うことができます。
- 仮想デベロッパー ワークステーションや複雑な Java アプリケーションなど、インスタンスの起動が完了してから最初のリクエストを処理するまでに初期化に時間がかかるアプリケーション。
一時停止の仕組み
インスタンスを一時停止すると、ACPI S3 一時停止信号がインスタンスのオペレーティング システムに送信されます。インスタンスの一時停止は、ノートパソコンのカバーを閉じてインスタンスを SUSPENDED
状態にすることに似ています。
インスタンスの一時停止は、次の点でインスタンスの停止とは異なります。
- インスタンスの一時停止では、ゲスト OS のメモリ、デバイスの状態、アプリケーションの状態が保持されます。
- インスタンスのメモリの保存に必要なストレージに対して料金が発生します。
- インスタンスを一時停止できる期間は最長で 60 日です。60 日が経過すると、インスタンスは自動的に
TERMINATED
状態になります。
インスタンスに接続されているすべてのリソースはインスタンスへの接続を維持し、課金対象になります。これには永続ディスク、静的 IP アドレス、予約済みの外部 IP アドレスが含まれます。インスタンスが一時停止している場合でも、これらのリソースはすべて料金表に従って課金されます。
ゲスト環境に組み込まれている標準プロセスを使用してインスタンスを一時停止することはできません。Ubuntu 16.04 以降の systemctl suspend
コマンドは使用できません。インスタンスを一時停止するために使用できるのは、Google Cloud CLI または REST だけです。
後でインスタンスを再開するときに、インスタンスのメモリやデバイスの状態を復元する必要がない場合は、インスタンスを停止できます。この場合、追加のストレージ料金は発生しません。
準備
-
まだ設定していない場合は、認証を設定します。認証とは、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.
- GPU を使用するインスタンスは一時停止できません。
- ベアメタル インスタンスは一時停止できません。
- ゲスト環境に組み込まれている標準プロセスを使用してインスタンスを一時停止することはできません。コマンド(例: Ubuntu 16.04 以降の
systemctl suspend
コマンド)は使用できません。ゲスト内の信号は無視されます。 - インスタンスを一時停止できる期間は最大 60 日です。この期間を経過すると、VM が自動的に停止します。
- メモリが 208 GB を超えるインスタンスは一時停止できません。
- プリエンプティブル インスタンスは一時停止できますが、正常に一時停止する前に終了することがあります。
- Confidential VM は一時停止できません。
- CSEK で保護されたディスクがアタッチされている VM は一時停止できません。
- インスタンスのメモリ(一時停止された VM インスタンスの料金を参照)。
- ブートディスクの永続ディスクの使用量、インスタンスにアタッチされている追加ディスク(永続ディスクの料金を参照)。
- インスタンスに関連付けられている静的 IP。
- VM を一時停止すると、ソフトウェアのライセンス料を節約できることがあります。たとえば、Windows VM を一時停止すると、Windows ライセンス料金は発生しません。他のイメージのライセンス料は利用規約が異なる場合があります。このため、一時停止した場合でも料金が発生することもあります。
Google Cloud コンソールで [VM インスタンス] ページに移動します。
一時停止するインスタンスを 1 つ以上選択します。
[停止] をクリックします。
プロンプトが表示され、ローカル SSD のデータを破棄する場合は、[SSD のコンテンツを破棄] を選択します。インスタンスが再開されたときに、インスタンス上のローカル SSD データは破棄されています。
PROJECT_ID
: プロジェクト IDZONE
: VM のゾーンVM_NAME
: 一時停止するインスタンスGoogle Cloud コンソールで [VM インスタンス] ページに移動します。
再開するインスタンスを 1 つ以上選択します。
[開始 / 再開] をクリックします。
PROJECT_ID
: このリクエストのプロジェクト ID。ZONE
: VM のゾーンVM_NAME
: 再開するインスタンスssh を使用して VM インスタンスに接続します。
gcloud compute ssh VM_NAME
VM インスタンスで、
acpi
フォルダの下にディレクトリを作成します。sudo mkdir -p /etc/acpi/events/
スリープボタン イベントを処理するように ACPID を構成します。
cat <<EOF | sudo tee /etc/acpi/events/sleepbtn-acpi-support event=button[ /]sleep action=/etc/acpi/sleepbtn-acpi-support.sh EOF
スリープ イベントを処理するスクリプトを作成します。
cat <<EOF | sudo tee /etc/acpi/sleepbtn-acpi-support.sh #!/bin/sh echo mem > /sys/power/state EOF
スクリプトの権限を設定します。
sudo chmod 755 /etc/acpi/sleepbtn-acpi-support.sh
ACPID を再起動します。
sudo systemctl restart acpid.service
ssh を使用して VM インスタンスに接続します。
gcloud compute ssh VM_NAME
VM インスタンスに
dbus
をインストールします。sudo apt-get install dbus
logind
を再起動します。sudo systemctl restart systemd-logind.service
- 不要になったインスタンスを削除する。
- インスタンスを停止または再起動する
- インスタンスのライフサイクルを確認する。
- VM の一時停止に問題が発生した場合は、VM の停止に関するトラブルシューティングをご覧ください。
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 を使用して認証するをご覧ください。
制限事項
この機能には、次の制限があります。
ローカル SSD
通常、ローカル SSD を使用する VM インスタンスを一時停止すると、ローカル SSD ドライブ上のすべてのデータが破棄されます。これは、インスタンスを停止する場合と同じ動作です。
詳細については、ローカル SSD のドキュメントをご覧ください。
プリエンプティブル VM
プリエンプティブル VM は一時停止できますが、一時停止オペレーションが完了する前にプリエンプションが発生すると(プリエンプションの事前警告ではありません)、一時停止が終了し、インスタンスがプリエンプトされます。
OS の互換性
Compute Engine で提供されているほとんどのオペレーティング システム(OS)は、一時停止と再開の機能をサポートしていますが、サポートしていない OS もあります。完全なリストについては、OS の詳細ページをご覧ください。
料金
インスタンスを一時停止すると、次のものに対して料金が発生します。
インスタンスを一時停止する
インスタンスを一時停止するには、Google Cloud コンソール、gcloud CLI、API またはCloud クライアント ライブラリを使用します。
ゲスト環境に組み込まれている標準プロセスを使用してインスタンスを一時停止することはできません。インスタンスは、Google Cloud コンソール、Google Cloud CLI、または API を使用して一時停止できます。
インスタンスの開始後、すぐに一時停止の操作が行われると失敗する可能性があります。一時停止操作を成功させるには、インスタンスを完全に起動する必要があります(ゲスト エージェントなどのプロセスを含む)。
コンソール
gcloud
Google Cloud CLI でインスタンスを一時停止するには:
gcloud compute instances suspend VM_NAME
インスタンスの一時停止をリクエストした後に、Compute Engine でインスタンスのすべての必要なデータを保持するために時間がかかることがあります。この間、実行中のインスタンスに対して引き続き料金が発生します。
一時停止されたインスタンスは、
SUSPENDED
ステータスでマークされます。describe
リクエストを実行してインスタンスのステータスを確認します。gcloud compute instances describe VM_NAME
ローカル SSD データが含まれるインスタンスを一時停止するには、
--discard-local-ssd
フラグを指定する必要があります。gcloud compute instances suspend VM_NAME --discard-local-ssd
--discard-local-ssd
または--discard-local-ssd=True
を使用すると、ローカル SSD の内容は破棄されます。Compute Engine では、--discard-local-ssd=False
は現在パブリック プレビュー版です。このフラグを使用すると、一時停止中に最大 32 個のローカル SSD ディスクの内容が保存されます。詳細については、ローカル SSD のドキュメントをご覧ください。Go
Java
Node.js
PHP
Python
REST
API で、
instances.suspend
メソッドを使用してリクエストを送信します。https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/suspend
以下のように置き換えます。
インスタンスの一時停止をリクエストした後に、Compute Engine でインスタンスのすべての必要なデータを保持するために時間がかかることがあります。この間、実行中のインスタンスに対して料金が発生します。
Compute Engine は、一時停止されたインスタンスに
SUSPENDED
ステータスのマークを付けます。GET
リクエストを実行してインスタンスのステータスを確認します。GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
インスタンスのステータスは、ステータス フィールドに表示されます。例:
... "zone": "https://content.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a", "status": "SUSPENDED", "name": "example-vm", ...
32 個を超えるローカル SSD ディスクを含むインスタンスを一時停止するには、次のように
discardLocalSsd
クエリ パラメータを指定してローカル SSD データを破棄する必要があります。https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/suspend?discardLocalSsd=true
詳細については、ローカル SSD のドキュメントをご覧ください。
一時停止されたインスタンスを再開する
インスタンスを再開できるのは、VM が存在するゾーンに十分な容量がある場合のみです。ほとんどの場合、これは問題にはなりませんが、実際に容量の問題が発生した場合は、後で再開リクエストを再試行してください。
一時停止したインスタンスを再開するには、Google Cloud コンソール、gcloud CLI、API、または Cloud クライアント ライブラリを使用します。
コンソール
gcloud
Google Cloud CLI でインスタンスを再開するには:
gcloud compute instances resume VM_NAME
インスタンスの再開をリクエストした後に、Compute Engine でインスタンスに必要なすべてのデータを復元する際に時間がかかることがあります。この間、再開中のインスタンスに対して料金が発生します。
インスタンスが再開されると、
RUNNING
とマークされます。インスタンスのステータスを確認するには、次のように describe リクエストを実行します。gcloud compute instances describe VM_NAME
Go
Java
Node.js
PHP
Python
REST
instances.resume
メソッドにリクエストを送信します。https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/resume
以下のように置き換えます。
インスタンスの再開をリクエストした後に、Compute Engine でインスタンスに必要なすべてのデータを復元する際に時間がかかることがあります。この間、再開中のインスタンスに対して料金が発生します。
再開が完了すると、Compute Engine によりそのインスタンスに
RUNNING
ステータスのマークが付けられます。GET
リクエストを実行してインスタンスのステータスを確認します。GET https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-instance
インスタンスのステータスは、ステータス フィールドに表示されます。次に例を示します。
... "zone": "https://content.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a", "status": "RUNNING", "name": "example-instance", ...
一時停止プロセス
一時停止リクエストを行うと、ACPI 一時停止信号が VM インスタンスに送信されます。数分以内に VM が ACPI S3 一時停止信号に応答しない場合、Compute Engine は一時停止をキャンセルし、VM を
RUNNING
状態に戻します。以下の表に、VM インスタンスの一時停止がその関連リソースに及ぼす影響について説明します。
リソース サポート メモリ 一時停止できるのは、メモリが 208 GB 以下の VM のみです。 ローカル SSD ローカル SSD のデータは破棄されます。 永続ディスク 永続ディスク(HDD と SSD)は保持されます。 IP アドレス 一時停止時に VM インスタンスのエフェメラル IP は解放されますが、静的 IP は解放されません。エフェメラル IP を保持する場合は、それを昇格します。 VM 構成(マシンタイプ、メタデータ、ラベルなど) エフェメラル IP アドレスを除くすべての VM 構成は保持され、インスタンスの再開時に復元されます。 一時停止と再開をサポートする Debian VM の構成
Debian 8 と 9 を実行している VM は一時停止と再開が可能ですが、事前に構成を行う必要があります。Debian インスタンスを構成するには、次のいずれかの手順(オプション A または B)を行います。可能であれば、ACPID を構成することをおすすめします(オプション A)。
オプション A
このオプションでは、スリープボタン イベントを処理するように ACPID を構成し、スリープ イベントを処理するシェル スクリプトを追加します。
オプション B
次のステップ
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2024-11-19 UTC。
-