Step-01: Introduction¶
- MIG Healthcheck: google_compute_region_health_check
- MIG Stateless: google_compute_region_instance_group_manager
- MIG Autoscaling: google_compute_region_autoscaler
Step-02: c6-02-app1-mig-healthcheck.tf¶
Step-03: c6-03-app1-mig.tf¶
- google_compute_region_instance_group_manager
# Resource: Managed Instance Group resource "google_compute_region_instance_group_manager" "myapp1" { name = "${local.name}-myapp1-mig" base_instance_name = "${local.name}-myapp1" region = var.gcp_region1 distribution_policy_zones = data.google_compute_zones.available.names # Instance Template version { instance_template = google_compute_region_instance_template.myapp1.id } # Named Port named_port { name = "webserver" port = 80 } # Autosclaing auto_healing_policies { health_check = google_compute_region_health_check.myapp1.id initial_delay_sec = 300 } }
Step-04: c6-04-app1-mig-autoscaling.tf¶
- google_compute_region_autoscaler
# Resource: MIG Autoscaling resource "google_compute_region_autoscaler" "myapp1" { name = "${local.name}-myapp1-autoscaler" target = google_compute_region_instance_group_manager.myapp1.id autoscaling_policy { max_replicas = 6 min_replicas = 2 cooldown_period = 60 cpu_utilization { target = 0.9 } } }
Step-05: c6-05-app1-mig-outputs.tf¶
# Terraform Output Values
output "myapp1_mig_id" {
value = google_compute_region_instance_group_manager.myapp1.id
}
output "myapp1_mig_instance_group" {
value = google_compute_region_instance_group_manager.myapp1.instance_group
}
output "myapp1_mig_self_link" {
value = google_compute_region_instance_group_manager.myapp1.self_link
}
output "myapp1_mig_status" {
value = google_compute_region_instance_group_manager.myapp1.status
}
Step-06: Execute Terraform Commands¶
# Terraform Initialize
terraform init
# Terraform Validate
terraform validate
# Terraform Plan
terraform plan
# Terraform Apply
terraform apply
Step-07: Verify VM Instances¶
- Go to Google Cloud -> Compute Engine, verify
- Managed Instance Groups
- VM Instances
- Key Observation: VM Instances will have external or public IP assigned
Step-08: Clean-Up¶
🎉 New Course
Ultimate DevOps Real-World Project Implementation on AWS
$15.99
$84.99
81% OFF
DEVOPS2026FEB
Enroll Now on Udemy →
🎉 Offer