Получите общедоступный DNS для экземпляров aws_autoscaling_group

Я хочу вывести общедоступный DNS EC2, составляющих мою группу автоматического масштабирования:

resource "aws_launch_configuration" "instances" {
  image_id        = "ami-0fad7824ed21125b1"
  instance_type   = "${var.instance_type}"
  security_groups = ["${aws_security_group.security_group_ec2.id}"]
  key_name        = "${var.key_pair_name}"

  user_data = "${data.template_file.user_data.rendered}"

  lifecycle {
    create_before_destroy = true
  }
}

resource "aws_autoscaling_group" "scaling_group" {
  launch_configuration = "${aws_launch_configuration.instances.id}"
  availability_zones   = ["${var.availability_zones_names}"]

  load_balancers    = ["${var.elb_id}"]
  health_check_type = "ELB"

  min_size = "${var.min_size}"
  max_size = "${var.max_size}"

  tags = {
    key                 = "Name"
    value               = "terraformUpAndRunning-${var.cluster_name}"
    propagate_at_launch = true
  }

  wait_for_capacity_timeout = "5m"
}

Я проверил атрибуты группы автоматического масштабирования. в официальной документации Terraform, но не могу придумать ни одного из них, чтобы добиться своей цели... Есть ли какой-нибудь способ?


person Arcones    schedule 07.12.2018    source источник
comment
Экземпляры создаются асинхронно после создания ASG, поэтому я думаю, что это невозможно сделать.   -  person StephenKing    schedule 07.12.2018
comment
Использование data.aws_instance также выполняется раньше..   -  person StephenKing    schedule 07.12.2018


Ответы (1)


Экземпляры, которыми управляет группа автоматического масштабирования, не управляются Terraform. Поэтому для Terraform неразумно отслеживать эти эфемерные экземпляры в своих файлах состояния. Эфемерные экземпляры будут приходить и уходить по своей природе.

Однако, если вы действительно хотите использовать Terraform для этой цели, существует источник данных с именем aws_instances. Это дает вам возможность запрашивать и перечислять несколько экземпляров.

Вы также можете использовать awscli для вывода сведений об экземпляре. Вот пример этого: Получение списка экземпляров в группе автоматического масштабирования EC2?.

person vtorhonen    schedule 08.12.2018
comment
Вы также можете назначить балансировщик нагрузки для ASG и получить DNS ALB/ELB. - person victor m; 12.12.2018