如何将 AWS ec2 实例中的主机名设置为自动缩放组中的唯一值?

如何将 AWS ec2 实例中的主机名设置为自动缩放组中的唯一值?

我想找出设置自动缩放组中的 Ec2 实例主机名的最佳实践是什么。

我正在寻找一种方法

  • 在 sysadmin/devops 领域中通常是可以接受的。
  • 当新的行动接管它时,不会带来惊讶的面孔。
  • 允许我设置一个唯一的主机名/机器名,以便在监控时,我有一个唯一的资产要监控

我目前采用的方法是 - 将所需的主机名作为 AWS 中 cloud init 格式的用户数据的一部分传递 - 使用 cloud init 通过启动命令为主机名添加当前实例 ID 后缀

bootcmd:
    - "HOSTNAME_PREFIX='{{ app_id }}'"
    - "REGION_NAME=`/usr/bin/curl -s http://169.254.169.254/latest/meta-data/instance-id`"
    - "INSTANCE_ID=`/usr/bin/curl -s http://169.254.169.254/latest/meta-data/instance-id`"
    - "echo $HOSTNAME_PREFIX'-'$INSTANCE_ID > /etc/hostname; hostname -F /etc/hostname"

在自动缩放组中,当可以动态创建实例时,这一点尤其重要。尽管我们应该将服务器视为牲畜,但我认为唯一的主机名至少有助于更好地识别服务器。有没有更好的方法?

答案1

这或多或少是我采用的方法。将实例 ID 包含在主机名中非常有意义,因为这使得在 Web 控制台或其他 API 命令中识别和关联正在运行的服务器与实例变得非常容易。

有没有更好的方法呢?

你对“更好”的定义是什么?

如果它对你有用,那就用它吧。实例 ID 保证在帐户内是唯一的,并且你已经有了使用这些 ID 的解决方案,所以听起来你已经准备好了。

相关内容