このドキュメントでは、MIG で複数のマシンタイプを設定できるようにインスタンスの柔軟性を追加する方法について説明します。
インスタンスの柔軟性は、MIG の作成時または既存の MIG の編集時に追加できます。柔軟性を追加するには、MIG でインスタンスの柔軟性ポリシーを構成します。ポリシーは、インスタンス テンプレートで指定されたマシンタイプをオーバーライドします。MIG が仮想マシン(VM)インスタンスを作成するたびに、リソースの可用性に基づいて、ポリシーに指定されているマシンタイプのいずれかが自動的に選択されます。マシンタイプのリストにランクを割り当てて、優先度を指定することもできます。
MIG でインスタンスの柔軟性がどのように機能するかについては、インスタンスの柔軟性についてをご覧ください。
始める前に
- MIG が配置されているリージョンでサポートされているマシンタイプを選択してください。リージョンのマシンタイプについては、使用可能なリージョンとゾーンをご覧ください。
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
Select the tab for how you plan to use the samples on this page:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Terraform
ローカル開発環境でこのページの Terraform サンプルを使用するには、gcloud CLI をインストールして初期化し、ユーザー認証情報を使用してアプリケーションのデフォルト認証情報を設定します。
詳細については Set up authentication for a local development environment をご覧ください。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
-
インスタンスの柔軟性を使用する MIG を作成する
MIG を作成する前に、インスタンス テンプレートを作成する必要があります(まだ作成していない場合)。インスタンスの柔軟性を使用する MIG を作成して、インスタンス テンプレートで指定されたマシンタイプをオーバーライドできます。
次のいずれかの方法で、インスタンスの柔軟性を使用する MIG を作成します。
複数のマシンタイプを含む MIG を作成する
複数のマシンタイプを含むリージョン MIG を作成するには、次のようにベータ版の instance-groups managed create
コマンドを使用します。
gcloud beta compute instance-groups managed createINSTANCE_GROUP_NAME \ --regionREGION \ --sizeTARGET_SIZE \ --templateINSTANCE_TEMPLATE \ --target-distribution-shapeSHAPE \ --instance-redistribution-type none \ --instance-selection-machine-typesMACHINE_TYPE,MACHINE_TYPE,...
ゾーン MIG はインスタンスの柔軟性をサポートしません。ただし、単一ゾーンに MIG を作成する場合は、ターゲット分配形態を any-single-zone
に設定します。さらに、特定のゾーンが必要な場合は any-single-zone
分配形態を使用し、--zones
ZONE
フラグを指定します。
次のように置き換えます。
INSTANCE_GROUP_NAME
: MIG の名前。REGION
: MIG を作成するリージョン。TARGET_SIZE
: MIG で作成および維持する VM の数。INSTANCE_TEMPLATE
: インスタンス テンプレートの名前。SHAPE
: ターゲット分配形態。値はbalanced
またはany-single-zone
です。他のターゲット分配形態はサポートされていません。MACHINE_TYPE
: MIG で構成するマシンタイプ(例:n1-standard-16,n2-standard-16,e2-standard-16
)。
複数のマシンタイプを含むリージョン MIG を作成するには、ベータ版の regionInstanceGroupManagers.insert
メソッドに POST
リクエストを行います。
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID /regions/REGION /instanceGroupManagers { "name": "INSTANCE_GROUP_NAME ", "targetSize":TARGET_SIZE , "instanceTemplate": "INSTANCE_TEMPLATE_URL ", "distributionPolicy": { "targetShape": "SHAPE " }, "updatePolicy": { "instanceRedistributionType": "NONE" }, "instanceFlexibilityPolicy": { "instanceSelections": { "INSTANCE_SELECTION ": { "machineTypes": [ "MACHINE_TYPE_1 ", "MACHINE_TYPE_2 ", ... ] } } } }
ゾーン MIG はインスタンスの柔軟性をサポートしません。ただし、単一ゾーンに MIG を作成する場合は、ターゲット分配形態を ANY_SINGLE_ZONE
に設定します。さらに、特定のゾーンが必要な場合は ANY_SINGLE_ZONE
分配形態を使用し、リクエストに distributionPolicy.zones[].zone
フィールドを含めます。
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクト ID。REGION
: MIG を作成するリージョン。INSTANCE_GROUP_NAME
: MIG の名前。TARGET_SIZE
: MIG で作成および維持する VM の数。INSTANCE_TEMPLATE_URL
: インスタンス テンプレートの URL。SHAPE
: ターゲット分配形態。値はBALANCED
またはANY_SINGLE_ZONE
です。他のターゲット分配形態はサポートされていません。INSTANCE_SELECTION
: マシンタイプのリストの名前。MACHINE_TYPE
: MIG で構成するマシンタイプ(例:"n1-standard-16","n2-standard-16","e2-standard-16"
)。
複数のマシンタイプと優先度を使用する MIG を作成する
複数のマシンタイプと優先度を使用するリージョン MIG を作成するには、ベータ版の instance-groups managed create
コマンドを使用します。
gcloud beta compute instance-groups managed createINSTANCE_GROUP_NAME \ --regionREGION \ --sizeTARGET_SIZE \ --templateINSTANCE_TEMPLATE \ --target-distribution-shapeSHAPE \ --instance-redistribution-type none \ --instance-selection "name=INSTANCE_SELECTION_1 ,machine-type=MACHINE_TYPE_1 ,machine-type=MACHINE_TYPE_2 ,rank=RANK_1 " \ --instance-selection "name=INSTANCE_SELECTION_2 ,machine-type=MACHINE_TYPE_3 ,machine-type=MACHINE_TYPE_4 ,rank=RANK_2 "
ゾーン MIG はインスタンスの柔軟性をサポートしません。ただし、単一ゾーンに MIG を作成する場合は、ターゲット分配形態を any-single-zone
に設定します。さらに、特定のゾーンが必要な場合は any-single-zone
分配形態を使用し、--zones
ZONE
フラグを指定します。
次のように置き換えます。
INSTANCE_GROUP_NAME
: MIG の名前。REGION
: MIG を作成するリージョン。TARGET_SIZE
: MIG で作成して維持する VM の数。INSTANCE_TEMPLATE
: インスタンス テンプレートの名前。SHAPE
: ターゲット分配形態。値はbalanced
またはany-single-zone
です。他のターゲット分配形態はサポートされていません。INSTANCE_SELECTION
: マシンタイプのリストの名前。優先度の異なる複数のリストを追加できます。MACHINE_TYPE
: MIG で構成するマシンタイプ。
複数のマシンタイプを含むリージョン MIG を作成するには、ベータ版の regionInstanceGroupManagers.insert
メソッドに POST
リクエストを行います。
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID /regions/REGION /instanceGroupManagers { "name": "INSTANCE_GROUP_NAME ", "targetSize":TARGET_SIZE , "instanceTemplate": "INSTANCE_TEMPLATE_URL ", "distributionPolicy": { "targetShape": "SHAPE " }, "updatePolicy": { "instanceRedistributionType": "NONE" }, "instanceFlexibilityPolicy": { "instanceSelections": { "INSTANCE_SELECTION_1 ": { "machineTypes": [ "MACHINE_TYPE_1 ", "MACHINE_TYPE_2 ", ... ], "rank":RANK_1 }, "INSTANCE_SELECTION_2 ": { "machineTypes": [ "MACHINE_TYPE_3 ", "MACHINE_TYPE_4 ", ... ], "rank":RANK_2 }, ... } } }
ゾーン MIG はインスタンスの柔軟性をサポートしません。ただし、単一ゾーンに MIG を作成する場合は、ターゲット分配形態を ANY_SINGLE_ZONE
に設定します。さらに、特定のゾーンが必要な場合は ANY_SINGLE_ZONE
分配形態を使用し、リクエストに distributionPolicy.zones[].zone
フィールドを含めます。
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクト ID。REGION
: MIG を作成するリージョン。INSTANCE_GROUP_NAME
: MIG の名前。TARGET_SIZE
: MIG で作成および維持する VM の数。INSTANCE_TEMPLATE_URL
: インスタンス テンプレートの URL。SHAPE
: ターゲット分配形態。値はBALANCED
またはANY_SINGLE_ZONE
です。ZONE
: MIG を作成するゾーン。特定のゾーンにリージョン MIG を作成する場合は、このフィールドを使用します。それ以外の場合は、このフィールドをスキップできます。INSTANCE_SELECTION
: マシンタイプのリストの名前。優先度の異なる複数のリストを追加できます。MACHINE_TYPE
: MIG で構成するマシンタイプ。RANK
: 優先順位を表す数。値が小さいほど、優先度が高くなります。
既存の MIG にインスタンスの柔軟性を追加する
既存の MIG にインスタンスの柔軟性を追加できます。MIG にすでに VM がある場合は、MIG のサイズを 0 に変更して VM を削除する必要があります。次に、MIG で複数のマシンタイプを設定できます。特定のマシンタイプに優先度を設定することもできます。
既存のインスタンスの柔軟性ポリシーにインスタンスの選択を追加する場合は、インスタンスの柔軟性構成を変更するをご覧ください。
複数のマシンタイプを設定する
MIG に複数のマシンタイプを設定するには、ベータ版の instance-groups managed update
コマンドを使用します。
gcloud beta compute instance-groups managed updateINSTANCE_GROUP_NAME \ --regionREGION \ --size 0 \ --instance-selection-machine-typesMACHINE_TYPE,MACHINE_TYPE,...
次のように置き換えます。
INSTANCE_GROUP_NAME
: インスタンスの柔軟性を追加する MIG の名前。REGION
: MIG が配置されているリージョン。MACHINE_TYPE
: MIG で構成するマシンタイプ(例:n1-standard-16,n2-standard-16,e2-standard-16
)。
MIG で複数のマシンタイプを設定するには、ベータ版の regionInstanceGroupManagers.patch
メソッドに PATCH
リクエストを送信します。
PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID /regions/REGION /instanceGroupManagers/INSTANCE_GROUP_NAME { "targetSize": 0, "instanceFlexibilityPolicy": { "instanceSelections": { "INSTANCE_SELECTION ": { "machineTypes": [ "MACHINE_TYPE_1 ", "MACHINE_TYPE_2 " ... ] } } } }
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクト ID。REGION
: MIG が配置されているリージョン。INSTANCE_GROUP_NAME
: インスタンスの柔軟性を追加する MIG の名前。INSTANCE_SELECTION
: マシンタイプのリストの名前。MACHINE_TYPE
: MIG で構成するマシンタイプ(例:"n1-standard-16","n2-standard-16","e2-standard-16"
)。RANK
: 優先順位を表す数。値が小さいほど、優先度が高くなります。
複数のマシンタイプと優先度を設定する
MIG で優先度を指定して複数のマシンタイプを設定するには、ベータ版の instance-groups managed update
コマンドを使用します。
gcloud beta compute instance-groups managed updateINSTANCE_GROUP_NAME \ --regionREGION \ --size 0 \ --instance-selection "name=INSTANCE_SELECTION_1 ,machine-type=MACHINE_TYPE_1 ,machine-type=MACHINE_TYPE_2 ,rank=RANK_1 " \ --instance-selection "name=INSTANCE_SELECTION_2 ,machine-type=MACHINE_TYPE_3 ,machine-type=MACHINE_TYPE_4 ,rank=RANK_2 "
次のように置き換えます。
INSTANCE_GROUP_NAME
: インスタンスの柔軟性を追加する MIG の名前。REGION
: MIG が配置されているリージョン。INSTANCE_SELECTION
: マシンタイプのリストの名前。優先度の異なる複数のリストを追加できます。MACHINE_TYPE
: MIG で構成するマシンタイプ。
MIG で優先度を指定して複数のマシンタイプを設定するには、ベータ版の regionInstanceGroupManagers.patch
メソッドを使用します。
PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID /regions/REGION /instanceGroupManagers/INSTANCE_GROUP_NAME { "targetSize": 0, "instanceFlexibilityPolicy": { "instanceSelections": { "INSTANCE_SELECTION_1 ": { "machineTypes": [ "MACHINE_TYPE_1 ", "MACHINE_TYPE_2 " ], "rank":RANK_1 }, "INSTANCE_SELECTION_2 ": { "machineTypes": [ "MACHINE_TYPE_3 ", "MACHINE_TYPE_4 " ], "rank":RANK_2 } } } }
次のように置き換えます。
PROJECT_ID
: 実際のプロジェクト ID。REGION
: MIG が配置されているリージョン。INSTANCE_GROUP_NAME
: MIG の名前。INSTANCE_SELECTION
: マシンタイプのリストの名前。優先度の異なる複数のリストを追加できます。MACHINE_TYPE
: MIG で構成するマシンタイプ。