VM にローカル SSD がなく、マネージド インスタンス グループ(MIG)の一部でない場合は、停止した後に VM のマシンタイプを変更できます。
既存のマシンタイプが VM で実行するワークロードに適していない場合は、その VM のマシンタイプを変更します。ワークロードの変化に合わせて、VM のマシンタイプを変更して、vCPU の数とメモリを調整できます。たとえば、セットアップ、開発、テスト中に小さいマシンで VM を起動し、本番環境ワークロードの準備ができたら、より大きいマシンタイプを使用するように VM を変更できます。
ローカル SSD がなく、MIG の一部ではない VM の場合は、次のリソースに影響を与えることなくマシンタイプを変更できます。
- VM の SSH 認証鍵
- VM 構成(VM メタデータなど)
- VM の永続ディスクデータ(インストールされたアプリケーションやアプリケーション データなど)
MIG 内の VM のマシンタイプを変更する必要がある場合は、MIG で VM 構成の更新を自動的に適用するをご覧ください。
始める前に
- VM を停止する方法を理解しておきます。
- マシンタイプについて理解しておきます。
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
このページのサンプルをどのように使うかに応じて、タブを選択してください。
コンソール
Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。
Java
このページの Java サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- Google Cloud CLI をインストールします。
-
gcloud CLI を初期化するには:
gcloud init
-
Google アカウントのローカル認証情報を作成します。
gcloud auth application-default login
詳細については、 ローカル開発環境の認証の設定 をご覧ください。
Python
このページの Python サンプルをローカル開発環境から使用するには、gcloud CLI をインストールして初期化し、自身のユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定してください。
- Google Cloud CLI をインストールします。
-
gcloud CLI を初期化するには:
gcloud init
-
Google アカウントのローカル認証情報を作成します。
gcloud auth application-default login
詳細については、 ローカル開発環境の認証の設定 をご覧ください。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
制限事項
- VM にローカル SSD がある場合、VM のマシンタイプは変更できません。
- VM がエフェメラル外部 IP アドレスを使用する場合、VM のマシンタイプを変更すると、IP アドレスが変更される可能性があります。IP アドレスを維持するには、静的外部 IP アドレスに昇格させます。
- 一部の構成では、VM のマシンタイプを変更できません。
- マシン ファミリーの最新世代の CPU を使用する場合は、VM を新しいマシンシリーズに移行するをご覧ください。
- マシンタイプを ARM マシンタイプに変更する場合は、既存の VM から新しい VM にワークロードを移行するをご覧ください。
- このドキュメントの手順では、G2 アクセラレータ最適化マシンタイプのマシンタイプを変更できます。他のアクセラレータ最適化マシンタイプについては、アクセラレータ最適化 VM を変更するをご覧ください。
料金への影響
請求される料金はマシンタイプごとに異なるため、マシンタイプを変更する際は、料金への影響を確認してください。たとえば、e2-standard-2
マシンタイプの費用は e2-micro
マシンタイプより高くなります。
マシンタイプを変更すると、VM の継続利用割引に影響する可能性があります。継続利用割引は、同じリージョンの異なるカテゴリごとに個別に計算されます。マシンタイプを変更して新しいマシンタイプが別のカテゴリになった場合、以降の VM の実行時間は新しいカテゴリの継続利用割引にカウントされます。
たとえば、n2-standard-2
マシンタイプの VM が半月稼働しているとします。このマシンタイプを m1-ultramem-40
に変更することにします。変更すると、Compute Engine はメモリ最適化 vCPU とメモリのカテゴリの継続利用割引を適用して、VM の実行時間を計測するようになります。
請求書には、マシンタイプの変更を行う前から n2-standard-2
マシンタイプに適用されている継続利用割引と、VM が月の残り 25% 以上の間 m1-ultramem-40
で実行されていれば、別途 m1-ultramem-40
に適用された継続利用割引が記載されます。
ベスト プラクティス
VM マシンタイプを正常に変更するためのベスト プラクティスは次のとおりです。
スナップショットを使用して、定期的に永続ディスクデータのバックアップを取る。 マシンタイプを変更する前に、永続ディスクデータのスナップショットを取ることを検討してください。新しいマシンタイプで既存の VM 上のデータをサポートできることを確認する場合、永続ディスクのスナップショットを取り、それを使用して新しいマシンタイプで 2 番目の VM を起動し、VM が正常に起動することを確認します。
/etc/fstab
ファイルに永続ディスクを追加する。追加の永続ディスクを VM にアタッチする場合は、それらの永続ディスクを/etc/fstab
ファイルに追加して、VM の再起動時に自動的にマウントされるようにします。マシンタイプを変更する前に予約を作成する。リソースの可用性に関連するエラーを回避するには、必要なリソースが使用できるときに新しいマシンタイプの Compute Engine の予約を作成して、ゾーン内でそのリソースを確保します。予約を使用すると、必要なときにリソースを確実に利用できます。
プロジェクトを作成するには、次の手順を完了します。
計画された VM と同じプロパティを使用して予約を作成します(または既存の予約を特定します)。予約の VM 数は、変更する VM の数以上にする必要があります。他の VM がこの予約を使用できないようにするには、
specificReservationRequired
オプションを使用します。計画された VM が予約を使用可能であることを確認します。
- 目的の VM に正しい予約アフィニティがあることを確認します。
- VM を変更する直前に、予約に十分な容量があることを確認します。
マシンタイプを変更する
マシンタイプを変更できるのは停止した VM だけです。VM が停止しているとみなされるのは、VM がTERMINATED
状態にあるときのみです。実行中の VM のマシンタイプは変更できません。
マシンタイプを最新世代にアップグレードする場合は、VM を新しいマシンシリーズに移行するを確認してから続行してください。
このタスクに必要な権限
このタスクを行うには、次の権限が必要です。
- VM に対する
compute.instances.setMachineType
コンソール
Google Cloud コンソールで [VM インスタンス] ページに移動します。
[名前] 列で、マシンタイプを変更する VM の名前をクリックします。
[VM インスタンスの詳細] ページで、次の手順を行います。
- VM が実行されている場合は、ページ上部のメニューで [停止] を選択して VM を停止します。
- VM を編集するには、[ 編集] をクリックします。
[マシンの構成] セクションで、使用するマシンタイプを選択するか、カスタム マシンタイプを作成します。
変更を保存するには、[保存] をクリックします。
VM を再起動します。
gcloud
gcloud compute instances stop
コマンドを使用して VM を停止します。gcloud compute instances stop VM_NAME
VM_NAME
は、変更するマシンタイプを含む VM に置き換えます。マシンタイプを変更するには、
gcloud compute instances set-machine-type
コマンドを使用します。gcloud compute instances set-machine-type VM_NAME \ --machine-type NEW_MACHINE_TYPE
NEW_MACHINE_TYPE
は、VM の新しいマシンタイプに置き換えます。マシンタイプは次のいずれかになります。-
例:
e2-standard-2
-
たとえば、4 個の vCPU と 2 GB のメモリを持つカスタム マシンタイプを設定するには、
--machine-type e2-custom-4-2048
を指定します。
-
gcloud compute instances start
コマンドを使用して VM を開始します。gcloud compute instances start VM_NAME
VM_NAME
は、変更した VM の名前に置き換えます。
Java
Java
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Java の設定手順に沿って操作します。詳細については、Compute Engine Java API リファレンス ドキュメントをご覧ください。
Compute Engine に対して認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
Python
Python
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Python の設定手順に沿って操作します。詳細については、Compute Engine Python API リファレンス ドキュメントをご覧ください。
Compute Engine に対して認証を行うには、アプリケーションのデフォルト認証情報を設定します。詳細については、ローカル開発環境の認証を設定するをご覧ください。
REST
instances.stop
メソッドを使用して VM を停止します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
次のように置き換えます。
PROJECT_ID
: プロジェクト IDZONE
: VM を含むゾーンVM_NAME
: 変更するマシンタイプを含む VM。
マシンタイプを変更するには、次のように
instances.setMachineType
メソッドを使用します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setMachineType
リクエストの本文で、更新した
machineType
を指定します。{ machineType: "zones/MACHINE_TYPE_ZONE/machineTypes/NEW_MACHINE_TYPE" }
次のように置き換えます。
MACHINE_TYPE_ZONE
: マシンタイプを含むゾーンNEW_MACHINE_TYPE
: VM の新しいマシンタイプマシンタイプは次のいずれかになります。
-
例:
e2-standard-2
-
たとえば、4 個の vCPU と 2 GB のメモリを持つカスタム マシンタイプを設定するには、
--machine-type e2-custom-4-2048
を指定します。
-
instances.start
メソッドを使用して VM を開始します。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
次のように置き換えます。
PROJECT_ID
: プロジェクト IDZONE
: VM を含むゾーンVM_NAME
: 変更した VM の名前
より小さなマシンタイプに移行する
リソースが多いマシンタイプからリソースが少ないマシンタイプに移行する場合(たとえば、e2-standard-8
マシンタイプから e2-standard-2
マシンタイプへの移行など)、ハードウェアのリソースに関する問題やパフォーマンスの制限が発生する可能性があります。これは、小さいマシンタイプのほうが性能が低いためです。新しいマシンタイプで、VM で現在実行中のアプリケーションまたはサービスをサポートできることを確認してください。または、小さいマシンタイプで実行できるようサービスやアプリケーションを更新してください。
マシンタイプを変更する前に、サイズ適正化の推奨事項を確認します。Compute Engine の推奨サイズについては、VM インスタンスのマシンタイプに関する推奨事項の適用をご覧ください。
VM を新しいマシンシリーズに移行する
要件を満たしている場合は、マシンタイプを m1-ultramem-160
から m3-ultramem-128
などに変更することで、新しい世代のマシンシリーズのマシンタイプを使用するように VM を変更できます。
新世代のマシンタイプと Arm マシンタイプでは、現在のマシンタイプと同じ機能とインターフェースがサポートされていない場合があります。移行プロセスを開始する前に、新しい VM への移行の準備の要件と考慮事項を確認してください。
VM インスタンスのマシンタイプを新しいマシンタイプに変更するには、次のいずれかの方法を使用できます。
新しい VM インスタンスを作成してワークロードを移行する
この手順では、新しい VM インスタンスを作成し、使用中のワークロードを新しい VM に移動します。
この手順の実施方法の詳細については、既存の VM から新しい VM にワークロードを移行するをご覧ください。
マシンタイプを新しいマシンタイプに変更する
この手順では、新しいマシンタイプを使用するように現在の VM インスタンスを更新できることを確認してから、マシンタイプを変更します。
現在の VM インスタンスが、新しいマシンタイプでサポートされているオペレーティング システムのバージョンを使用していることを確認します。バージョンがサポートされていない場合は、既存の VM から新しい VM にワークロードを移行するの手順で操作します。
VM のマシンタイプを Arm マシンタイプに変更する場合は、既存の VM から新しい VM にワークロードを移行するの手順で操作します。
現在の VM にローカル SSD がアタッチされている場合は、ワークロードを既存の VM から新しい VM に移行するの手順で操作します。
アプリケーションとプログラムが、gVNIC や NVMe などの別のネットワークやストレージ インターフェースに対応できることを確認します。
- gVNIC を使用するようにインスタンスを更新するには、Google Virtual NIC の使用とキューの割り当てとマシンタイプの変更をご覧ください。
- NVMe インターフェースとドライバを使用するための準備については、インターフェースの選択をご覧ください。
- VM で Microsoft Windows を使用している場合は、まず 2022 年 5 月より前に作成された VM の NVME ドライバを置き換える必要があります。これは、既存の VM のブートディスクと、VM の作成に使用されるスナップショットまたはカスタム イメージの両方に適用されます。
VM のマシンタイプの変更に関するベスト プラクティスを確認します。
マシンタイプの変更で説明されている手順を行ってください。
次のステップ
- マシンタイプに関する推奨事項を確認する。
- マネージド インスタンス グループについて学習する。
- スケーラブルで復元性が高いアプリのためのパターンを学習する。