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

Mec*_*orm 7 cloud amazon-web-services

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

我正在寻找一种方法

  • 在 sysadmin/devops 世界中通常可以接受。
  • 当新的操作员接管它时,不会带来惊喜。
  • 允许我设置唯一的主机名/机器名,以便在监控中,我有一个唯一的资产要监控

我目前采用的方法是 - 在 AWS 中以 cloud init 格式将所需的主机名作为用户数据的一部分传递 - 使用 cloud init 通过引导 cmd 为主机名添加当前实例 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"
Run Code Online (Sandbox Code Playgroud)

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

EEA*_*EAA 3

这或多或少是我采取的方法。在主机名中包含实例 ID 非常有意义,因为这样可以非常轻松地识别正在运行的服务器并将其与 Web 控制台或其他 API 命令中的实例关联起来。

有更好的方法吗?

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

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