カスタム マシンタイプを持つインスタンスの作成

Compute Engine は、インスタンスを作成する場合に利用できる事前定義されたマシンタイプを提供します。事前定義されたマシンタイプには、vCPU の数とメモリ容量がプリセットされ、料金ページに記載されているセット価格で請求されます。

事前定義されたマシンタイプがニーズを満たさない場合は、独自の仮想化ハードウェア設定を使用してインスタンスを作成できます。特に、vCPU の数とメモリ容量を独自に指定してインスタンスを作成し、カスタム マシンタイプを効果的に利用できます。

カスタム マシンタイプは、次のようなシナリオに適しています。

  • 利用できる事前定義のマシンタイプにあまり適していないワークロード。
  • 処理能力やメモリの要求が高いが、次のマシンタイプ レベルで提供するアップグレードをすべては必要としないワークロード。

始める前に

仕様

  • カスタム マシンタイプで許可される vCPU の最大数は、インスタンスがホストされるゾーンによって決まります。

    • Broadwell、Haswell、および Ivy Bridge プロセッサをサポートするゾーンは、最大で 64 個の vCPU を持つカスタム マシンタイプをサポートできます。
    • Sandy Bridge プロセッサをサポートするゾーンは、最大で 16 個の vCPU をサポートできます。

    どのプロセッサがどのゾーンでサポートされるのかを確認するには、ゾーン表を参照してください。

  • vCPU の数は、1 個より多い場合は 2、4、6、8、10 などの偶数でなければなりません。

  • カスタム マシンタイプの vCPU あたりのメモリは、0.9 GB~6.5 GB でなければなりません。

  • カスタム マシンタイプのメモリの合計は、256 MB の倍数でなければなりません。たとえば、6.9 GB は無効ですが、6.75 GB や 7 GB は指定できます。

  • カスタム マシンタイプのインスタンスには、定義済みのマシンタイプのインスタンスと同じ永続ディスク容量制限があります。ただし、カスタム マシンタイプは引き続き 16 個のディスク ボリュームまでに制限されます。

有効と無効のマシンタイプの例については、インスタンスの作成のセクションをご覧ください。

料金

Google は、インスタンスが使用する vCPU の数とメモリの時間に基づいてカスタム マシンタイプの請求を行います。これは、事前定義されたマシンタイプの課金方法とは異なるため、カスタム マシンタイプを作成する前に料金ページを確認することをお勧めします。

カスタム マシンタイプを実行するインスタンスの場合、最小課金時間は 10 分で同じですが、継続利用割引の計算方法が異なります。詳しくは、カスタム マシンタイプの 継続利用割引をご覧ください。

カスタム マシンタイプを持つインスタンスの作成

インスタンスを作成する前に、カスタム マシンタイプの作成に関する仕様を読んで理解しておいてください。まとめると、次のとおりです。

  • 1 個または偶数の vCPU を持つマシンタイプのみを作成できます。
  • メモリは vCPU 1 個あたり 0.9 GB 以上、最大 6.5 GB にする必要があります。
  • インスタンスの合計メモリは、256 MB の倍数にする必要があります。
  • 許可される vCPU の最大数は、ゾーンに応じて異なります。Haswell、および Ivy Bridge プロセッサをサポートするゾーンは最大 64 個の vCPU を持つマシンタイプをサポートでき、Ivy Bridge プロセッサを使用するゾーンは最大 32 個の vCPU を持つマシンタイプをサポートできます。Sandy Bridge プロセッサがあるゾーンは最大 16 個の vCPU を持つマシンタイプをサポートできます。

無効なマシンタイプの例

  • 1 vCPU、合計メモリ 0.6 GB - 合計メモリが最小値の 0.9 GB より少ないため無効です。
  • 1 vCPU、合計メモリ 0.9 GB - 合計メモリは 256 MB の倍数にする必要があるため無効です。1 vCPU の場合は、最小値の 1,024 MB メモリを使用します。

有効なマシンタイプの例

  • 32 vCPU、合計メモリ 29 GB - vCPU が偶数で、合計メモリが 256 MB の倍数であるため有効です。vCPU あたりのメモリ容量は 0.9 GB であり、最小要件を満たしています。
  • 1 vCPU、合計メモリ 1 GB - 最小値である 1 個の vCPU を持ち、合計メモリは 256 MB の倍数です。また、vCPU あたりのメモリ容量は許容範囲の 0.9 GB~6.5 GB の間です。

メモリの表記(GB または MB)

マシンタイプのメモリはギガバイト(GB)で計算され、1GB は 230 バイトです。この測定単位は、ギビバイト(GiB)とも呼ばれます。メモリを GB から MB に変換する場合、1 GB = 1,024 MB です。

API では、メモリは常に MB の単位で指定する必要があります。gcloud コマンドライン ツールを使用すると、インスタンスの合計メモリを GB または MB 単位で指定できます。ただし、gcloud ツールは整数のメモリ値を予期しているので、浮動小数点数値を指定することはできません。たとえば、5.75 GB を表現するには、5.75 GB を MB に変換します。この場合、5.75 GB は 5,888 MB とします。

インスタンスの作成

Console

  1. インスタンスの作成ページに移動します。
  2. [マシンタイプ] で [カスタマイズ] をクリックします。
  3. スライダーをドラッグして、インスタンスの vCPU の数とメモリ容量を選択します。vCPU の数とメモリを変更すると、コンソールにインスタンスの見積もり価格が表示されます。
  4. 変更内容を保存して、作成プロセスの残りを続行します。

gcloud

gcloud コマンドライン ツール、instances create サブコマンド、--custom-cpu フラグ、--custom-memory フラグの順に使用します。メモリの合計量を GB または MB で指定します。プロパティは整数にする必要があるため、0.25 GB 単位のメモリを指定する場合は、代わりに値を MB に変換して指定します。

たとえば、次のコマンドは、4 vCPU、合計メモリが 5 GB のインスタンスを作成します。

gcloud compute instances create example-instance --custom-cpu 4 --custom-memory 5

メモリの 5.25 GB など 0.25 GB 単位の値を指定するには、値を MB に変換して、その値に MB のサフィックスを付けて指定します。

gcloud compute instances create example-instance --custom-cpu 4 --custom-memory 5376MB

API

API で、通常どおり自分のインスタンス作成リクエストを作成します。ただし、machineType 値を指定するときは次の形式を使用します。NUMBER_OF_CPUS を CPU の数で置換し、AMOUNT_OF_MEMORY を必要なメモリ容量で置換します。メモリは MB 単位で指定します。

zones/[ZONE]/machineTypes/custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY

たとえば、次の URL は、4 個の vCPU と 5 GB(5,120 MB)のメモリのインスタンスを作成します。

zones/us-central1-f/machineTypes/custom-4-5120

また、前述の形式でカスタム マシンタイプを指定することにより、カスタム マシンタイプのプリエンプティブ インスタンスや、カスタム マシンタイプのインスタンスのグループを作成することもできます。

マシンタイプに対する拡張メモリの追加

デフォルトでは、カスタムマシンで使用できるメモリの容量は、vCPU 1 つにつき 6.5 GB までです。ただし、追加料金をご負担いただければ、vCPU 1 つにつき 6.5 GB を超えるメモリを利用することも可能です。これを拡張メモリと呼びます。

拡張メモリを使用すると、マシンタイプに対してメモリを追加することが可能で、vCPU 1 つあたりのメモリ容量に上限はありません。ただし、いずれの設定においても、追加できる拡張メモリの容量は VM ごとに計 455 GB までです。

拡張メモリが必要かどうかの判断

ワークロードによっては、最適な成果を得るために、vCPU 1 つあたり 6.5 GB を超えるメモリが必要になることがあります。こうしたワークロードに該当するものとしては、インメモリ解析が中心となるワークロードや、MS SQL Server、MongoDB、MemcacheD/Redis といったリレーショナル データベースや NoSQL データベースなどの高パフォーマンス データベースが対象となるワークロードなどがあります。また、オペレーティング システムやソフトウェア スタックのライセンスは vCPU ベースであるため、事前定義されたマシンタイプで最適な VM メモリ設定を選択することは容易ではありません。拡張メモリを利用すれば、使用している VM インスタンスの費用対効果を最適化するうえで必要な容量のメモリを追加することができます。

料金

カスタム マシンタイプをご使用の場合、vCPU 1 つあたりのメモリ容量が 6.5 GB までであれば、標準的なカスタム マシンタイプの料金が適用されます。vCPU 1 つあたりのメモリ容量が上限の 6.5 GB を超える場合、Compute Engine での拡張メモリの料金は、拡張メモリ料金に基づいて算定されます。拡張メモリの料金は、vCPU 1 つあたり 6.5 GB を上限とするメモリの料金とは異なるため注意が必要です。

拡張メモリの料金はリージョンによって異なります。実行中のインスタンスで拡張メモリを使用した場合も、最小課金時間はその他のインスタンスと同じ 10 分です。また、拡張メモリも継続利用割引の対象になります。詳細については、カスタム マシンタイプの継続利用割引をご覧ください。

料金に関する詳細については、拡張メモリの料金をご覧ください。

制限事項

  • 拡張メモリは、カスタム マシンタイプに対してのみ追加できます。事前定義されたマシンタイプはサポートされていません。
  • 追加できる vCPU 1 つあたりのメモリ容量には制限はありませんが、各 VM に対して追加できるメモリ容量には上限があります。各 VM で使用できるメモリの容量は最大 455 GB です。
  • メモリは 256 MB 単位で指定する必要があります。
  • 拡張メモリは、確約利用割引の対象にはなりません。
  • 拡張メモリは、Compute Engine ベータ版の API でのみ使用できます。

インスタンス作成時における拡張メモリの追加

VM インスタンスの作成時に拡張メモリを追加する手順は次のとおりです。

Console

  1. Google API Console で [インスタンスの作成] ページに移動します。

    [インスタンスの作成] ページに移動

  2. [マシンタイプ] で [カスタマイズ] をクリックします。
  3. VM インスタンスに対して必要な vCPU を選択します。
  4. 必要なメモリ容量を選択します。拡張メモリを追加するため、[拡張メモリ] チェックボックスをオンにします。選択可能なメモリの範囲が展開します。
  5. インスタンス作成処理を続けます。

gcloud

gcloud ツールで、--custom-extensions フラグを指定した instances create サブコマンドを実行して、拡張メモリを有効にします。また、--custom-memory パラメータを使用して必要なメモリ容量を指定します。

たとえば、次のコマンドを実行すると、2 つの vCPU と 15 GB のメモリが割り当てられたインスタンス(2 GB の拡張メモリを含む)が作成されます。

gcloud beta compute instances create example-instance --custom-cpu 2 --custom-memory 15 --custom-extensions

API

ベータ版 API で、通常どおり自分のインスタンス作成リクエストを作成します。ただし、machineType 値を指定するときは次の形式を使用します。

zones/[ZONE]/machineTypes/custom-[NUMBER_OF_CPUS]-[AMOUNT_OF_MEMORY]-ext

以下のように置き換えます。

  • [NUMBER_OF_CPUS] は vCPU の数。
  • [AMOUNT_OF_MEMORY] は必要なメモリ容量。メモリ容量は MB 単位で指定します。

たとえば、2 つの vCPU と 15 GB のメモリが割り当てられたインスタンスを指定する場合は次のようになります。

zones/[ZONE]/machineTypes/custom-2-15360-ext

既存の VM インスタンスに対する拡張メモリの追加

既存のインスタンスに対してメモリを追加する場合は、最初にそのインスタンスを停止する必要があります。インスタンスが停止したら、次の手順に沿って VM にメモリを追加します。

Console

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

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

  2. 変更の対象となる停止したインスタンスをインスタンス リストから選択します。
  3. ページ上部の [編集] をクリックします。
  4. [マシンタイプ] で [カスタマイズ] をクリックします。
  5. 必要な vCPU の数を選択します。
  6. 必要なメモリ容量を選択します。拡張メモリを追加するため、[拡張メモリ] チェックボックスをオンにします。選択可能なメモリの範囲が展開します。
  7. 変更を保存します。

gcloud

gcloud コマンドライン ツールで、--custom-extensions フラグと既存の --custom-memory パラメータを指定した instances set-machine-type サブコマンドを実行します。

たとえば、現在 us-central1-b ゾーンにあり 2 つの vCPU と 13 GB のメモリが割り当てられている example-instance という名前のインスタンスにメモリを 2 GB 追加する場合は、次のコマンドを実行します。

gcloud beta compute instances set-machine-type example-instance \
   --zone us-central1-b --custom-cpu 2 \
   --custom-memory 15 --custom-extensions

API

ベータ版 API で、setMachineType メソッドに対して POST リクエストを発行します。その際、目的のマシンタイプはリクエスト本文に指定します。新しいマシンタイプを指定する場合は、以下の形式を使用します。

zones/[ZONE]/machineTypes/custom-[NUMBER_OF_CPUS]-[AMOUNT_OF_MEMORY]-ext

以下のように置き換えます。

  • [NUMBER_OF_CPUS] は vCPU の数。
  • [AMOUNT_OF_MEMORY] は必要なメモリ容量。メモリ容量は MB 単位で指定します。

たとえば、2 つの vCPU と 15 GB のメモリが割り当てられたマシンタイプを使用する場合は次のようになります。

zones/[ZONE]/machineTypes/custom-2-15360-ext

次に例を示します。

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

{
    machineType: "zones/us-central1-f/machineTypes/custom-2-15360-ext"
}

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

Compute Engine ドキュメント