首页 > 解决方案 > AWS 中单个服务器的正确设计模式

问题描述

我已经定制了在单个 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。在此先感谢您提供此类设置的任何设计模式。

标签: amazon-web-servicesamazon-ec2cloud

解决方案


推荐阅读