カスタム マシンタイプの VM インスタンスを作成する

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

事前定義されたマシンタイプがニーズに合わない場合は、カスタムの仮想化ハードウェア設定を使用してインスタンスを作成できます。例として、カスタム マシンタイプを効果的に利用し、vCPU の数とメモリ容量をカスタム指定してインスタンスを作成できます。カスタム マシンタイプは、汎用マシンタイプでのみ作成できます。つまり、カスタム マシンタイプを作成するということは、N1 または N2 マシンタイプ ファミリーからカスタム マシンタイプをデプロイすることを実質的に意味します。

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

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

始める前に

仕様

全般

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

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

  • カスタム マシンタイプのインスタンスには、事前定義されたマシンタイプのインスタンスと同じ永続ディスク容量制限があります。

  • カスタム マシンタイプには、汎用マシンタイプと同じ永続ディスク制限が適用されます。現在、インスタンスごとの各マシンタイプの最大合計永続ディスクサイズは 64 TB、最大永続ディスク数は 128 です。

N1 カスタム マシンタイプ

  • カスタム マシンタイプで許可される vCPU の最大数は、選択したマシンタイプ ファミリーによって決まります。N1 マシンタイプの場合は次のとおりです。

    • Skylake CPU プラットフォームをサポートするゾーンにデプロイする場合、最大で 96 個の vCPU を持つカスタム マシンタイプを作成できます。
    • Broadwell、Haswell、Ivy Bridge CPU のプラットフォームをサポートするゾーンにデプロイする場合、最大 64 個の vCPU を持つカスタム マシンタイプをデプロイできます。

    各ゾーンで使用できるプラットフォームについては、リージョンとゾーンの表をご覧ください。

  • デフォルトでは、カスタム マシンタイプで選択できる vCPU ごとのメモリ容量は、マシンタイプ ファミリーによって決まります。N1 マシンタイプの場合、vCPU あたり 0.9 GB~6.5 GB の範囲から選択します。拡張メモリを有効にすると、使用できるメモリ容量が増えます。

無効なマシンタイプの例

  • 1 個の vCPU、0.2 GB の合計メモリ。合計メモリが N1 マシンタイプの最小値 0.65 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 の合計メモリ。vCPU 数が最小値の 1 であり、合計メモリも 256 MB の倍数であるため有効です。vCPU あたりのメモリ容量も 0.9 GB~6.5 GB の許容範囲内です。

N2 カスタム マシンタイプ

  • カスタム マシンタイプで許可される vCPU の最大数は、選択したマシンタイプ ファミリーによって決まります。Cascade Lake プラットフォームのみをサポートする N2 マシンタイプの場合、2~80 個の vCPU のカスタム マシンタイプをデプロイできます。

  • N2 マシンは、一部のゾーンでのみ使用できます。詳細については、リージョンとゾーンのページをご覧ください。

  • デフォルトでは、カスタム マシンタイプで選択できる vCPU ごとのメモリ容量は、マシンタイプ ファミリーによって決まります。N2 マシンタイプの場合、vCPU あたり 0.5~8.0 GB の範囲から選択します。拡張メモリを有効にすると、使用できるメモリ容量が増えます。

  • インスタンスの vCPU 数が 32 個以上の場合、vCPU 数は 4 で割り切れる数値である必要があります。したがって、たとえば 32、36、40 は有効ですが、38 は無効です。

無効なマシンタイプの例

  • 2 個の vCPU、0.8 GB の合計メモリ。合計メモリが N2 マシンタイプの最小値 0.5 より小さいため無効です。
  • 34 個の vCPU、34 GB の合計メモリ。vCPU の合計数が 4 で割り切れないため無効です。
  • 1 個の vCPU、1024 MB のメモリ。vCPU 数が少なすぎるため無効です。N2 カスタム マシンタイプには、最低 2 個の vCPU が必要です。

有効なマシンタイプの例

  • 36 個の vCPU、18 GB の合計メモリ。vCPU の合計数が偶数であり、合計メモリが 256 MB の倍数であるため有効です。また、vCPU あたりのメモリ容量は 0.5 GB であり最小要件を満たしています。また、vCPU 数が 32 個より多いため 4 で割り切れる数値である必要がありますが、この条件も満たしています。
  • 2 個の vCPU、7 GB の合計メモリ。vCPU 数が最小値の 2 であり、合計メモリも 256 MB の倍数であるため有効です。vCPU あたりのメモリ容量も 0.5 GB~8 GB の許容範囲内です。

料金

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

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

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

Google Cloud Platform のツールとドキュメントでは、マシンタイプ メモリはギガバイト(GB)単位で計算されます。1 GB は 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. Google Cloud Platform Console で [インスタンスの作成] ページに移動します。

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

  2. このインスタンスをホストするゾーンを選択します。これにより、マシンタイプのリストがそのゾーンで使用可能なタイプのみにフィルタされます。
  3. [マシンの構成] で、[汎用] を選択します。
  4. [生成] プルダウンから、N1 カスタム マシンタイプの場合は [1 番目]、N2 カスタム マシンタイプの場合は [2 番目] を選択します。
  5. [マシンタイプ] プルダウンから、[カスタム] を選択します。
  6. スライダーをドラッグして、インスタンスの vCPU の数とメモリ容量を選択します。vCPU の数とメモリを変更すると、コンソールにインスタンスの見積もり価格が表示されます。
  7. 変更内容を保存して、作成プロセスの残りを続行します。

gcloud

カスタム マシンタイプの gcloud コマンドは、マシンタイプ ファミリーごとにわずかに異なります。

N1 マシンタイプの場合、gcloud compute instances create コマンドを使用して次のいずれかのオプションを指定します。

  • --custom-cpu フラグおよび --custom-memory フラグ。
  • --machine-type=custom-[NUMBER_OF_CPUS]-[NUMBER_OF_MB] フラグ。

たとえば、次のコマンドは、4 個の vCPU と 5 GB の合計メモリを備えた N1 マシンタイプを実行するインスタンスを作成します。

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

N2 マシンタイプの場合、gcloud beta compute instances create コマンドを使用して次のいずれかのオプションを指定します。

  • --custom-cpu フラグ、--custom-memory フラグおよび --custom-vm-type フラグ。
  • --machine-type=n2-custom-[NUMBER_OF_CPUS]-[NUMBER_OF_MB] フラグ。

--custom-memory フラグを使用する場合、メモリの合計量を GB または MB で指定します。プロパティは整数にする必要があるため、0.25 GB 単位のメモリを指定する場合は、代わりに値を MB に変換して指定します。

メモリの 2.5 GB などの増分値を指定するには、値を MB に変換して、その値に MB のサフィックスを付けて指定します。次の例では、N2 マシンタイプを実行するインスタンスを作成します。

gcloud beta compute instances create example-instance \
    --custom-cpu 6 --custom-memory 3072MB --custom-vm-type n2

または、カスタム マシンタイプは次の形式を使用して、後から指定することもできます。

gcloud beta compute instances create example-instance \
    --machine-type n2-custom-[NUMBER_OF_CPUS]-[NUMBER_OF_MB]

ここで

  • [NUMBER_OF_CPUS] は目的の CPU 数です
  • [NUMBER_OF_MB] は目的のメモリ量(MB 単位)です

例:

gcloud compute instances create example-instance --machine-type n2-custom-6-3072

API

API では、通常どおりインスタンス作成リクエストを作成しますが、machineType 値を指定する場合は次のいずれかの形式を使用します。NUMBER_OF_CPUS を CPU 数に、AMOUNT_OF_MEMORY を必要なメモリ容量にそれぞれ置き換えます。メモリは MB 単位で指定します。

  • N1 マシンタイプの場合、次のように指定します。

    zones/[ZONE]/machineTypes/custom-[NUMBER_OF_CPUS]-[AMOUNT_OF_MEMORY_MB]
    
  • N2 マシンタイプの場合、次のように指定します。

    zones/[ZONE]/machineTypes/n2-custom-[NUMBER_OF_CPUS]-[AMOUNT_OF_MEMORY_MB]
    

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

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

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

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

各マシンタイプでは、デフォルトでメモリを特定の量まで指定できます。たとえば、N1 カスタム マシンタイプの VM を作成する場合、VM に vCPU あたり最大 6.5 GB のメモリを指定できます。N2 カスタム マシンタイプの場合は、vCPU あたり最大 8 GB のメモリを指定できます。

一部のワークロードでは、これらのメモリ容量では足りないことがあります。追加料金をご負担いただければ、vCPU ごとにデフォルトの上限を超えるメモリを利用できます。これを拡張メモリと呼びます。

拡張メモリを使用すると、vCPU ごとに制限なしでメモリをマシンタイプに追加できます。マシンのタイプに基づいて、特定の上限まで拡張メモリを追加できます。

  • N1 マシンタイプの場合、VM ごとに合計で最大 624 GB のメモリを追加できます。
  • N2 マシンタイプの場合、VM ごとに合計で最大 640 GB のメモリを追加できます。

さらに多くのメモリが必要な場合は、メガメモリ マシンタイプのいずれかを使用する必要があります。このマシンタイプでは、VM インスタンスごとに合計 1.4 TB のメモリを持つインスタンスを作成できます。

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

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

料金

カスタム マシンタイプをご使用の場合、vCPU あたりのメモリ容量がデフォルトの量までであれば、N1 カスタム マシンタイプの料金または N2 カスタム マシンタイプの料金が適用されます。一方、デフォルトを超える拡張メモリについては、N1 拡張カスタムメモリの料金または N2 拡張カスタムメモリの料金が適用されます。拡張メモリの料金とデフォルト範囲のメモリの料金は異なるため、注意が必要です。

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

料金について詳しくは、拡張カスタムメモリの料金をご覧ください。

制限事項

  • 拡張メモリは、カスタム マシンタイプに対してのみ追加できます。事前定義されたマシンタイプはサポートされていません。
  • 追加できる vCPU あたりのメモリの上限はありませんが、各 VM インスタンスに追加できるメモリの容量には上限があります。N1 マシンタイプの場合、最大 624 GB のメモリを追加できます。N2 マシンタイプの場合、最大 640 GB のメモリを追加できます。
  • N2 マシンタイプは、次の一部のゾーンでのみ使用できます。
    • us-central1-a および us-central1-c
    • europe-west4-b および europe-west4-c
  • メモリは 256 MB 単位で指定する必要があります。
  • 拡張メモリは、確約利用割引の対象にはなりません。

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

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

Console

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

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

  2. このインスタンスをホストするゾーンを選択します。これにより、マシンタイプのリストがそのゾーンで使用可能なタイプのみにフィルタされます。
  3. [マシンの構成] で、[汎用] を選択します。
  4. [生成] プルダウンから、N1 カスタム マシンタイプの場合は [1 番目]、N2 カスタム マシンタイプの場合は [2 番目] を選択します。
  5. [マシンタイプ] プルダウンから、[カスタム] を選択します。
  6. 必要なメモリ容量を選択します。拡張メモリを追加するには、[メモリを拡張する] オプションをオンにします。選択可能なメモリの範囲が展開されます。
  7. インスタンスの作成プロセスを続けます。

gcloud

N1 マシンタイプの場合、gcloud ツールで instances create サブコマンドを実行します。その際、--custom-extensions フラグを指定して拡張メモリを有効にします。また、--custom- memory パラメータも使用して必要な合計メモリを指定します。

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

N2 マシンタイプの場合、instances create サブコマンドとともに gcloud beta コマンドを使用します。--custom-extensions フラグ、--custom-cpu フラグ、--custom-memory フラグに続けて、--custom-vm-type フラグで N2 マシンタイプを指定します。

gcloud beta compute instances create example-instance \
    --custom-extensions --custom-cpu 2 --custom-memory 16 \
    --custom-vm-type n2

API

API では、通常どおりインスタンス作成リクエストを作成しますが、machineType 値を指定する場合は次のいずれかの形式を使用します。

  • N1 マシンタイプの場合、次のように指定します。

    zones/[ZONE]/machineTypes/custom-[NUMBER_OF_CPUS]-[AMOUNT_OF_MEMORY]-ext
    
  • N2 マシンタイプの場合、次のように指定します。

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

ここで

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

たとえば、以下の例では、2 個の vCPU と 20 GB のメモリを持つ N2 マシンタイプを指定しています。

zones/[ZONE]/machineTypes/n2-custom-2-20480-ext

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

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

Console

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

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

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

gcloud

gcloud コマンドライン ツールで、--custom-extensions フラグと既存の --custom-memory パラメータを指定した instances set-machine-type サブコマンドを実行します。N1 マシンタイプから N2 マシンタイプへ変更するには、--custom-vm-type フラグを指定します。逆も同様です。

たとえば、us-central1-b ゾーンで、現在 2 個の vCPU、13 GB のメモリを備えた N1 マシンタイプの example-instance というインスタンスに 2 GB のメモリを追加するには、次のコマンドを使用します。

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

N1 マシンと N2 マシンのマシンタイプを変更するには、次のコマンドを使用します。

gcloud beta compute instances set-machine-type example-instance \
   --zone us-central1-a  --custom-extensions --custom-cpu 2 \
   --custom-memory 16 --custom-vm-type n2

API

API では、setMachineType メソッドPOST リクエストを発行します。その際、リクエストの本文に目的のマシンタイプを指定します。次のいずれかの形式で指定してください。

  • N1 マシンタイプの場合、次のように指定します。

    zones/[ZONE]/machineTypes/custom-[NUMBER_OF_CPUS]-[AMOUNT_OF_MEMORY]-ext
    
  • N2 マシンタイプの場合、次のように指定します。

    zones/[ZONE]/machineTypes/n2-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 ドキュメント