Terraform назначает эластичные IP-адреса для автоматического масштабирования экземпляров групп - PullRequest
0 голосов
/ 22 мая 2018

Я только что использовал Terraform уже несколько дней и ищу руководство.У меня есть две подсети под vpc (частная, публичная).Я пытаюсь назначить эластичные IP-адреса каждому экземпляру, который создает группа автоматического масштабирования, или удалить эластичный IP-адрес при уничтожении экземпляра.Я пытался перейти по этой ссылке: Автоматически назначать публичные IP-адреса моему экземпляру, созданному группой масштабирования austo

Итак, я создал эластичный балансировщик нагрузки, прослушивающий порт 80, и назначилэто к группе автоматического масштабирования и публичной подсети.Я ознакомился с документацией AWS по упругой балансировке нагрузки здесь: https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/how-elastic-load-balancing-works.html и другие другие, предоставляемые AWS, поэтому Я мог бы просто неправильно подумать о проблеме .Я не уверен, как назначить экземплярам EC2 группы автоматического масштабирования общедоступной подсети эластичный IP, поэтому единственное, о чем я могу думать, это то, что он автоматически обрабатывается через эластичный балансировщик нагрузки?

Первое решение, о котором я подумал (даже не уверен, смогу ли я сделать это, не будучи экземпляром EC2), а второе - из инструкций в первой ссылке

  1. Назначитьэластичный IP-адрес для эластичного балансировщика нагрузки вместо экземпляров EC2, затем укажите DNS-запись на этот эластичный IP-адрес, а затем балансировщик нагрузки будет обрабатывать остальное
  2. Создайте DNS-запись, чтобы указать DNS DNS-балансировщика

Если второй вариант верен, я попробую его снова, и мой .tf должен быть просто неверным.Однако, если есть какие-то лучшие варианты, я хотел бы услышать любые предложения, которые люди использовали!

1 Ответ

0 голосов
/ 22 мая 2018

Второй вариант правильный.Вы должны указать свою DNS-запись на балансировщик нагрузки.В terraform это выглядит примерно так (ваш ресурс ELB или ALB будет разным):

# Set up the load balancer
resource "aws_alb" "example" {
  name            = "example"
  internal        = false
  security_groups = ["${aws_security_group.example.id}"]
  subnets         = ["${data.aws_subnet_ids.example.ids}"]
}

# Get the zone id for the zone you are setting this in
data "aws_route53_zone" "example" {
  name         = "example.com"
  private_zone = false
}

# Set the record, replace <your dns name> with the name you want to use
resource "aws_route53_record" "build" {
  provider = "aws"
  zone_id  = "${data.aws_route53_zone.example.zone_id}"
  name     = "<your dns name>"
  type     = "A"

  alias {
    name                   = "${aws_alb.example.dns_name}"
    zone_id                = "${aws_alb.eaxmple.zone_id}"
    evaluate_target_health = false
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...