コンテンツにスキップ

複数のインスタンステンプレートを MIG として利用する

概要

MIG(Manged Instance Group)は、Google Cloud 上で複数の仮想マシンを管理するためのサービス。MIG は、インスタンステンプレートを元に複数の仮想マシンを起動し、autoscale や負荷分散、冗長化を実現する。MIG は、2 つまでのインスタンステンプレートを利用できる。

複数のインスタンステンプレートを MIG として利用する

MIG では 2 つまでのインスタンステンプレートを利用できる。インスタンステンプレートを複数利用することで、異なる設定の仮想マシンを起動できる。例えば、preemptible インスタンスと通常のインスタンスを同時に起動することで、コストを抑えつつ冗長化を実現したり、異なる GPU を搭載した仮想マシンを同時に起動することで、GPU quota の制約を回避しやすくなる。 3 つ以上のインスタンステンプレートを利用することはできない。

terraform で複数のインスタンステンプレートを MIG として利用する場合、次のように google_compute_region_instance_group_manager リソースを定義する。version ブロックを複数定義し、それぞれのインスタンステンプレートを指定する。target_size のブロックには、percent または fixed を指定できる。percent を指定した場合、インスタンスグループのサイズに対する割合となる。

resource "google_compute_region_instance_group_manager" "igm-sr" {
  provider = google-beta
  name = "tf-sr-igm"

  base_instance_name        = "tf-sr-igm-instance"
  region                    = "us-central1"

  target_size               = 5

  version {
    instance_template = google_compute_instance_template.sr-igm.self_link
    name              = "primary"
  }
  version {
    instance_template = google_compute_instance_template.sr-igm-preemptible.self_link
    name              = "preemptible"
    target_size {
     percent = 20
    }
  }

  standby_policy {
    initial_delay_sec           = 50
    mode                        = "SCALE_OUT_POOL"
  }
  target_suspended_size         = 1
  target_stopped_size           = 1
}

参考