Compute Engine は、VM インスタンスの作成時に使用できる事前定義されたマシンタイプを提供しています。事前定義されたマシンタイプには、vCPU の数とメモリの容量がプリセットされており、セット価格で課金されます。
事前定義された VM がニーズに合わない場合は、カスタムの仮想ハードウェア設定を使用して VM インスタンスを作成できます。具体的には、カスタム マシンタイプを効果的に利用して、vCPU の数とメモリ容量をカスタマイズした VM インスタンスを作成できます。カスタム マシンタイプは、汎用マシン ファミリーで使用できます。カスタム VM を作成すると、E2、N2、N2D、または N1 マシン ファミリーからカスタム VM をデプロイします。
カスタム VM は、次のようなシナリオに適しています。
- 事前定義された仮想マシンタイプに適していないワークロード。
- 処理能力やメモリがさらに必要だが、次のレベルのマシンタイプで提供されるアップグレードをすべては必要としないワークロード。
始める前に
- このガイドのコマンドラインの例を使用する場合は、次の操作を行います。
- Google Cloud CLI の最新バージョンをインストールするか、最新バージョンに更新します。
- デフォルトのリージョンとゾーンを設定します。
- このガイドの API の例を使用する場合は、API アクセスを設定します。
- マシン ファミリーのドキュメントをご覧ください。
料金
Google は、VM が使用する vCPU の数とメモリの時間に基づいてカスタム VM の請求を行います。事前定義されたマシンタイプの課金方法とは異なります。詳細については、VM の料金をご覧ください。
カスタム VM には、他のインスタンスと同じ 1 分間の最低料金が発生しますが、カスタム マシンタイプの継続利用割引は計算方法が異なります。詳細については、カスタム VM の継続利用割引をご覧ください。
メモリの表記(GB または MB)
Google Cloud のツールとドキュメントでは、マシンタイプ メモリはギガバイト(GB)単位で計算されます。1 GB は 230 バイトです。この測定単位はギビバイト(GiB)とも呼ばれます。メモリを GB から MB に変換する場合、1 GB = 1,024 MB です。
API では、メモリは常に MB 単位で指定します。Google Cloud CLI を使用する場合は、VM の合計メモリを GB 単位または MB 単位で指定できます。ただし、gcloud ツールを使用する際にはメモリ値は整数と想定されているため、浮動小数点数値を指定することはできません。たとえば、5.75 GB を表現するには、5.75 GB を MB に変換します。この場合、5.75 GB は 5,888 MB と表現します。
カスタム マシンタイプの VM を作成する
VM インスタンスを作成する前に、このマシンタイプの作成に関するカスタム仕様を読んで理解しておいてください。Console
Google Cloud コンソールで、[インスタンスの作成] ページに移動します。
[ゾーン] リストで、この VM をホストするゾーンを選択します。[シリーズ] リストは、選択したゾーンで使用可能なマシンタイプ ファミリーのみが含まれるようにフィルタされます。
[マシンの構成] セクションで、[汎用] を選択します。
- [シリーズ] リストで、N1 カスタム マシンタイプの場合は [第 1 世代] の [N1] をクリックし、第 2 世代のカスタム マシンタイプの場合は、[E2] または [N2]、[N2D] をクリックします。
- [マシンタイプ] リストから [カスタム] を選択します。
- VM インスタンスの vCPU の数とメモリ容量を指定するには、スライダーをドラッグするか、テキスト ボックスに値を入力します。vCPU の数とメモリを変更すると、コンソールに VM の見積もり価格が表示されます。
VM の作成を続行します。
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 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 compute instances create example-instance \
--custom-cpu=6 --custom-memory=3072MB --custom-vm-type=n2
または、カスタム マシンタイプは次の形式を使用して、後から指定することもできます。
gcloud 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
N2D または E2 マシンタイプの場合は、gcloud compute instances create
コマンドを使用して次のいずれかのオプションを指定します。
--custom-cpu
、--custom-memory
、--custom-vm-type
フラグ。--machine-type=n2d-custom-NUMBER_OF_CPUS-NUMBER_OF_MB
フラグ。--machine-type=e2-custom-NUMBER_OF_CPUS-NUMBER_OF_MB
フラグ。
E2 共有コア カスタム マシンタイプの場合は、同じ gcloud compute instances create
コマンドを使用し、共有コア マシンタイプ micro
、small
、または medium
を指定します。
--machine-type=e2-custom-SHARED_CORE_MACHINE_SIZE-NUMBER_OF_MB
フラグ。
例:
gcloud compute instances create example-instance \
--machine-type=e2-custom-medium-NUMBER_OF_MB
--custom-memory
フラグを使用する場合、メモリの合計量を GB または MB で指定します。プロパティは整数にする必要があります。0.25 GB 単位のメモリを指定する場合は、代わりに値を MB に変換して指定します。
メモリの 2.5 GB などの増分値を指定するには、値を MB に変換して、その値に MB のサフィックスを付けて指定します。次の例では、E2 マシンタイプを実行するインスタンスを作成します。
gcloud compute instances create example-instance \
--custom-cpu=6 --custom-memory=3072MB --custom-vm-type=e2
または、次の形式を使用してカスタム マシンタイプを指定することもできます。
gcloud compute instances create example-instance \
--machine-type=e2-custom-NUMBER_OF_CPUS-NUMBER_OF_MB
以下を置き換えます。
NUMBER_OF_CPUS
: 目的の CPU 数。NUMBER_OF_MB
: メモリ容量(MB)。
例:
gcloud compute instances create example-instance --machine-type=e2-custom-6-3072
API
API では、通常どおりインスタンス作成リクエストを作成しますが、machineType
値を指定する場合は次のいずれかの形式を使用します。NUMBER_OF_CPUS
を CPU 数に、AMOUNT_OF_MEMORY_MB
を必要なメモリ容量にそれぞれ置き換えます。メモリは 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
N2D マシンタイプの場合:
zones/ZONE/machineTypes/n2d-custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB
E2 マシンタイプの場合、次のように指定します。
zones/ZONE/machineTypes/e2-custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY_MB
E2 共有コア カスタム マシンタイプの場合は、次のように指定します。
zones/ZONE/machineTypes/e2-custom-SHARED_CORE_MACHINE_SIZE-AMOUNT_OF_MEMORY_MB
たとえば、次の URL は、4 個の vCPU と 5 GB(5,120 MB)のメモリのインスタンスを作成します。
zone/us-central1-f/machineTypes/custom-4-5120
Go
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Go の設定手順を行います。 詳細については、Compute Engine Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Java の設定手順を行います。 詳細については、Compute Engine Java API のリファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Node.js の設定手順を行います。 詳細については、Compute Engine Node.js API のリファレンス ドキュメントをご覧ください。
Python
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Python の設定手順を行います。 詳細については、Compute Engine Python API のリファレンス ドキュメントをご覧ください。
同様に、カスタム マシンタイプのプリエンプティブル インスタンスやインスタンスのグループを作成することもできます。
マシンタイプに拡張メモリを追加する
各マシンタイプには、マシンに応じてデフォルトで特定のメモリ量が設定されています。たとえば、カスタム N1 VM を作成する場合は、vCPU あたり最大 6.5 GB のメモリを設定できます。カスタム N2 VM の場合、この数値は vCPU あたり最大 8 GB のメモリに引き上げられます。
一部のワークロードでは、これらのメモリ容量では足りないことがあります。追加料金をご負担いただければ、vCPU ごとにデフォルトの上限を超えるメモリを利用できます。これを拡張メモリと呼びます。
拡張メモリを使用すると、vCPU ごとに制限なしでメモリをマシンタイプに追加できます。マシンのタイプに基づいて、特定の上限まで拡張メモリを追加できます。
- N1 マシンタイプの場合、VM ごとに合計で最大 624 GB のメモリを追加できます。
- N2 マシンタイプの場合、VM ごとに合計で最大 640 GB のメモリを追加できます。
- N2D マシンタイプの場合、VM ごとに合計で最大 768 GB のメモリを追加できます。
- E2 マシンタイプでは、拡張メモリを使用できません。
さらに多くのメモリが必要な場合は、メモリ最適化マシンタイプのいずれかを使用する必要があります。このマシンタイプでは、VM ごとに合計 12 TB までのメモリを搭載した VM を作成できます。詳細については、メモリ最適化マシン ファミリーをご覧ください。
拡張メモリが必要かどうかの判断
ワークロードによっては、最適な成果を得るために必要な vCPU あたりのメモリ容量がデフォルトの量を超えることがあります。MS SQL Server、MongoDB、MemcacheD / Redis といったリレーショナル データベースや NoSQL データベースなど、インメモリの高パフォーマンス分析データベースに基づくワークロードが、このカテゴリに該当します。また、オペレーティング システムやソフトウェア スタックのライセンスは vCPU ベースであるため、事前定義されたマシンタイプで最適な VM メモリ構成を選択することは容易ではありません。拡張メモリを使用すると、VM が必要とするだけのメモリを追加して最高の費用対効果を実現できます。
料金
カスタム マシンタイプをご使用の場合、vCPU あたりのメモリ容量がデフォルトの量までであれば、N1 カスタム マシンタイプの料金または N2 カスタム マシンタイプの料金が適用されます。E2 カスタムマシンと E2 共有コア カスタム マシンタイプは同じ料金体系を共有します。
一方、デフォルトを超える拡張メモリについては、N1 拡張カスタムメモリの料金または N2 拡張カスタムメモリの料金が適用されます。 拡張メモリの料金とデフォルト範囲のメモリの料金は異なります。
拡張メモリの料金はリージョンごとに異なります。実行中のインスタンスで拡張メモリを使用した場合も、最小課金時間はその他のインスタンスと同じ 1 分です。また、拡張メモリも継続利用割引の対象になります。
詳細については、カスタム マシンタイプの継続利用割引と拡張カスタムメモリの料金をご覧ください。
制限事項
- 拡張メモリは、カスタム マシンタイプに対してのみ追加できます。事前定義されたマシンタイプはサポートされていません。
- 追加できる vCPU あたりのメモリの上限はありませんが、各 VM インスタンスに追加できるメモリの容量には上限があります。N1 マシンタイプの場合、最大 624 GB のメモリを追加できます。N2 マシンタイプの場合、最大 640 GB のメモリを追加できます。N2D マシンタイプの場合、最大 768 GB のメモリを追加できます。
- N2 マシンタイプと N2D マシンタイプは一部のリージョンとゾーンでのみ使用できます。
- メモリは 256 MB 単位で指定する必要があります。
- 拡張メモリは、確約利用割引の対象にはなりません。
インスタンスの作成時に拡張メモリを追加する
VM インスタンスの作成時に拡張メモリを追加する手順は次のとおりです。Console
Google Cloud コンソールで、[インスタンスの作成] ページに移動します。
[ゾーン] リストで、この VM をホストするゾーンを選択します。[シリーズ] リストは、選択したゾーンで使用可能なマシンタイプ ファミリーのみが含まれるようにフィルタされます。
[マシンの構成] セクションで、[汎用] を選択します。
- [シリーズ] リストで、N1 カスタム マシンタイプの場合は [第 1 世代] の [N1] をクリックし、第 2 世代のカスタム マシンタイプの場合は、[N2] または [N2D] をクリックします。
- [マシンタイプ] リストから [カスタム] を選択します。
- vCPU の数を指定するには、[コア数] スライダーをドラッグするか、テキスト ボックスに値を入力します。
拡張メモリを追加するには、[メモリを拡張する] を選択し、次の操作を行います。
- VM インスタンスのメモリ量を指定するには、[メモリ] スライダーをドラッグするか、テキスト ボックスに値を入力します。
vCPU の数とメモリを変更すると、コンソールに VM の見積もり価格が表示されます。
VM の作成を続行します。
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
コマンドを使用します。--custom-extensions
フラグ、--custom-cpu
フラグ、--custom-memory
フラグに続けて、--custom-vm-type
フラグで N2 マシンタイプを指定します。
gcloud compute instances create example-instance \
--custom-extensions --custom-cpu=2 --custom-memory=16 \
--custom-vm-type=n2
N2D マシンタイプの場合、instances create
サブコマンドとともに gcloud
コマンドを使用します。--custom-extensions
フラグ、--custom-cpu
フラグ、--custom-memory
フラグに続けて、--custom-vm-type
フラグで N2D マシンタイプを指定します。
gcloud compute instances create example-instance \
--custom-extensions --custom-cpu=2 --custom-memory=16 \
--custom-vm-type=n2d
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
N2D マシンタイプの場合:
zones/ZONE/machineTypes/n2d-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
Go
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Go の設定手順を行います。 詳細については、Compute Engine Go API のリファレンス ドキュメントをご覧ください。
Java
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Java の設定手順を行います。 詳細については、Compute Engine Java API のリファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Node.js の設定手順を行います。 詳細については、Compute Engine Node.js API のリファレンス ドキュメントをご覧ください。
Python
このサンプルを試す前に、Compute Engine クイックスタート: クライアント ライブラリの使用に記載されている Python の設定手順を行います。 詳細については、Compute Engine Python API のリファレンス ドキュメントをご覧ください。