このページでは、仮想マシン(VM)インスタンスを停止および起動する方法について説明します。Compute Engine は
STOP
と TERMINATE
を区別せずに使用します。VM を一時停止して再開する方法については、VM の一時停止と再開をご覧ください。VM の停止と一時停止の詳細については、VM インスタンスのライフサイクルをご覧ください。
ほとんどの場合、不要になった VM は一時的に停止して後で再起動できます。例外については、制限事項をご覧ください。停止された VM の永続ディスク、内部 IP、MAC アドレスは保持されます。ただし、ゲスト OS は VM によりシャットダウンされ、アプリケーションの状態は失われます。ゲスト OS とアプリケーションの状態を維持する必要がある場合は、代わりに VM を一時停止します。基本的に、停止された VM はパワーオン時の状態にリセットされ、データは保存されません。マシンタイプの変更、アタッチされるディスクの追加と削除、最小 CPU プラットフォームの変更、GPU の追加と削除、推奨マシンタイプの適用を行う場合には、VM を停止します。
VM を停止すると、Compute Engine は ACPI シャットダウン信号を VM に送信します。最新のゲスト オペレーティング システム(OS)は、電源オフ信号に応じて、電源を切る前にクリーン シャットダウンを行うように構成されています。Compute Engine は、ゲスト OS のシャットダウンが完了してから VM を TERMINATED
状態に移行します。
始める前に
- このガイドのコマンドラインの例を使用する場合は、次の操作を行います。
- Google Cloud CLI の最新バージョンをインストールするか、最新バージョンに更新します。
- デフォルトのリージョンとゾーンを設定します。
- このガイドの API の例を使用する場合、API アクセスを設定します。
制限事項
ローカル SSD を使用する VM をシャットダウンすると、ローカル SSD のデータはすべて破棄されます。
課金
TERMINATED
状態の VM は状態のインスタンスは秒単位の使用量に対して課金されず、リージョナル CPU 割り当てにもカウントされません。ただし、永続ディスクや外部 IP アドレスなど、VM に接続しているリソースは、削除されるまで課金対象になります。接続されたリソースに対する課金を停止するには、停止した VM を再構成し、これらのリソースを切断してから削除します。
使用していない VM を停止すれば、アクティブでない VM に対して課金されることはなくなります。準備ができたら、同じ VM プロパティ、メタデータ、リソースを使用して VM を再起動できます。
VM を停止する
VM を停止するには、Google Cloud Console、gcloud CLI、または Compute Engine API を使用します。
Console
Google Cloud コンソールの [VM インスタンス] ページに移動します。
停止する VM を選択します。VM は複数選択できます。
[停止] をクリックします。
gcloud
-
Google Cloud コンソールで、「Cloud Shell をアクティブにする」をクリックします。
Google Cloud コンソールの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。
VM を停止するには、
gcloud compute instances stop
コマンドを使用し、停止する VM を 1 つ以上指定します。gcloud compute instances stop VM_NAME
ローカル SSD を使用する VM の場合は、
--discard-local-ssd
フラグを使用します。gcloud compute instances stop VM_NAME --discard-local-ssd
VM_NAME
は、停止する VM の名前に置き換えます。
API
VM を停止するには、instances.stop
メソッドを使用して POST
リクエストを作成します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
次のように置き換えます。
PROJECT_ID
: VM が属しているプロジェクトZONE
: VM インスタンスが配置されているゾーンVM_NAME
: 停止する VM の名前
Go
Java
Node.js
PHP
Python
TERMINATED
状態の VM は、構成の設定とインスタンス メタデータを保持した状態で残りますが、メモリ内データと仮想マシン状態は失われます。停止した VM に接続されたリソースは、手動で切断するか、VM を削除するまで接続されたままになります。
VM が TERMINATED
状態になると、VM を起動するか、VM を削除できます。VM を起動する予定がない場合は、VM を削除します。
OS から VM を停止する
必要に応じて、ゲスト OS 内から、sudo shutdown -h now
または sudo poweroff
コマンドを使用して VM を停止できます。ローカル SSD を使用する VM を停止するには、次のコマンドを使用します。VM にログインした状態で次のいずれかのコマンドを実行します。
sudo shutdown -h now
sudo poweroff
暗号化されたディスクのない VM の起動
停止された VM を起動するには、instances().start
メソッドを使用します。このメソッドは、TERMINATED
状態で停止している VM を起動します。
start
メソッドは TERMINATED
状態の VM を起動しますが、reset()
や sudo reboot
などのメソッドは、現在動作中の VM に対してのみ機能します。VM が TERMINATED
状態であれば、プリエンプティブル VM を含む、ほぼすべての VM を起動できます。
Console
Google Cloud コンソールの [VM インスタンス] ページに移動します。
起動する VM を 1 つ以上選択します。
[開始 / 再開] をクリックします。
gcloud
-
Google Cloud コンソールで、「Cloud Shell をアクティブにする」をクリックします。
Google Cloud コンソールの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。
VM を起動するには、
gcloud compute instances start
コマンドを使用して、起動する VM を 1 つ以上指定します。gcloud compute instances start VM_NAME
VM_NAME
は、起動する VM の名前に置き換えます。
API
VM を起動するには、instances.start
メソッドを使用して POST
リクエストを作成します。
POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
次のように置き換えます。
PROJECT_ID
: VM が属しているプロジェクトZONE
: VM インスタンスが配置されているゾーンVM_NAME
: 起動する VM の名前
Go
Java
Node.js
PHP
Python
暗号化されたディスクのある VM の起動
起動する VM が顧客指定の暗号鍵を使用している場合は、VM を起動するときにその鍵を指定する必要があります。
Console
Google Cloud コンソールの [VM インスタンス] ページに移動します。
起動する VM を選択します。
[開始 / 再開] をクリックします。ウィンドウが開くと、その VM にアタッチされているデバイスの暗号鍵を指定できます。
その VM にアタッチされている暗号化された各ディスクの暗号鍵を指定します。
[起動] をクリックして VM を起動します。
gcloud
-
Google Cloud コンソールで、「Cloud Shell をアクティブにする」をクリックします。
Google Cloud コンソールの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。
暗号鍵を使用する VM を起動するには、
フラグを指定して--csek-key-file
gcloud compute instances start
コマンドを使用します。RSA でラップされた鍵を使用している場合は、gcloud beta
コマンドを使用します。gcloud compute instances start VM_NAME \ --csek-key-file ENCRYPTION_KEY_FILE
次のように置き換えます。
VM_NAME
: 起動する VM の名前ENCRYPTION_KEY_FILE
: 暗号鍵を含む JSON ファイルの相対パス。この鍵は、VM にアタッチされている永続ディスクを暗号化するために使用されます。詳細については、暗号鍵のファイル形式をご覧ください。
API
暗号鍵を持つ VM を開始するには、instances.startWithEncryptionKey
メソッドを使用して POST
リクエストを作成します。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/startWithEncryptionKey { "disks": [ { "source": "DISK_URL", "diskEncryptionKey": { "ENCRYPTION_TYPE": "ENCRYPTION_KEY" } } ] }
次のように置き換えます。
PROJECT_ID
: VM が属しているプロジェクトZONE
: VM インスタンスが配置されているゾーンVM_NAME
: 起動する VM の名前DISK_URL
: 顧客指定の暗号鍵で暗号化され、アタッチされているディスクの完全リソース名に対応するリソース URL。ENCRYPTION_TYPE
: 使用しているディスク暗号化のタイプ(rawKey
、kmsKeyName
、rsaEncryptedKey
のいずれか)。rsaEncryptedKey
を使用する場合、v1 API の代わりにベータ版 API を使用する必要があります。ENCRYPTION_KEY
: VM にアタッチしている永続ディスクの暗号化に使用された暗号鍵。rawKey
型またはrsaEncryptedKey
型の鍵は base64 でエンコードする必要があります。RSA 鍵のラッピングの指示に沿って、rsaEncryptedKey
型の鍵を用意します。