コンテンツにスキップ

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

概要

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

複数のインスタンステンプレートを活用する場面

MIG では 2 つまでのインスタンステンプレートを利用できる。インスタンステンプレートを複数利用することで、異なる設定の仮想マシンを起動できる。次のような組み合わせが典型的だ。

目的 組み合わせ例 効果
コスト削減 preemptible インスタンス + 通常のインスタンス コストを抑えながら冗長化できる
GPU quota の回避 異なる GPU を搭載した仮想マシン GPU quota の制約を回避しやすくなる

Terraform での設定方法

Terraform で複数のインスタンステンプレートを MIG として利用する場合は、google_compute_region_instance_group_managerリソースを使う。リソースの中にversionブロックを複数定義し、それぞれにインスタンステンプレートを指定する。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
}

参考