When using Terraform, it's not possible to know when the EC2 instances that are part of an AutoScaling Group are completely ready without using an ELB. And by completely ready, I mean we know the instances have finished running their cloud-init process (AKA userdata ). See this Github issue for more details. But if we have access to the instances in the VPC, there's a workaround! To do this, you'll create your AutoScaling Group as usual: resource "aws_autoscaling_group" "cluster" { desired_capacity = " ${ var . ec2-instance-count } " launch_configuration = " ${ aws_launch_configuration . cluster . id } " max_size = " ${ var . ec2-instance-count } " min_size = 1 name = "cluster" vpc_zone_identifier = var . subnet-ids tag { key = "Name" value = "cluster"