Perhaps the simplest way to launch a brand-new cluster in an ASG is actually to launch it outside the ASG, with known node names, and then [attach the instances to the ASG](https://docs.aws.amazon.com/autoscaling/ec2/userguide/attach-instance-asg.html
). Alternatively you can launch the cluster without bootstrapping it in the ASG and then briefly run another Elasticsearch node to do the bootstrapping. I also know of some people who are using an external Zookeeper to orchestrate the node names and the bootstrapping, although it's only really worth doing this if you're launching a *lot* of new clusters.
It's not recommended to have each instance wait for the other instances to come up using the EC2 APIs before bootstrapping (like `discovery-ec2` would). The upper bound on an ASG isn't a guarantee, and the EC2 APIs don't always return the full picture, so it's possible you could get 4 nodes instead of 3 and accidentally bootstrap two clusters.