Правильный шаблон проектирования для одного сервера в AWS - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть настроенное программное обеспечение кластера, которое работает в одной AZ (подсети). Одним из серверов является «контроллер». Одновременно может быть только один из них. Мне нужно иметь возможность иметь его в локальном DNS. Он должен автоматически восстанавливать себя, если по какой-либо причине происходит сбой. Я не верю, что мне нужна настройка elb / alb / nlb для этого. Однако, когда я настроил систему с группой автоматического масштабирования, я не смог получить доступ к частному IP-адресу для обновления записи route53. Есть ли правильный шаблон проектирования для этого в AWS?

Вот код заглушки, который работает при восстановлении сервера с нуля, если он остановился или стал нездоровым.

resource "aws_launch_configuration" "example" {
  image_id  = "${lookup(var.AmiLinux, var.region)}"
  instance_type   = "t2.micro"
  security_groups = [aws_security_group.ingress-all-test.id]
  key_name = "akeyname"

  lifecycle {
    create_before_destroy = true
  }
}

data "aws_availability_zones" "all" {}

resource "aws_autoscaling_group" "example" {
  launch_configuration = aws_launch_configuration.example.id
  min_size = 1
  max_size = 1
  health_check_grace_period = 60
 vpc_zone_identifier       = ["${aws_subnet.subnetTest.id}"]
  tag {
    key                 = "Name"
    value               = "tf-asg-example"
    propagate_at_launch = true
  }
}

Мне нравится вышеупомянутое, поскольку он поддерживает один сервер в AZ. Тем не менее, ASG затрудняет доступ к IP. Я не ищу пользовательских данных, чтобы «взломать» изменения при загрузке. Поскольку он может работать только в одной подсети (AZ), я не могу использовать elb. Заранее благодарим за любой шаблон проектирования для этого типа установки.

...