Я хотел узнать, как лучше всего установить имя хоста для экземпляра Ec2, который находится в группе автомасштабирования.
Я ищу метод, который
Текущий подход, который я собирался использовать, состоял в том, чтобы - передать желаемое имя хоста как часть пользовательских данных в формате облачной инициализации в AWS - использовать облачный init для добавления суффикса имени хоста с текущим идентификатором экземпляра через загрузочную cmd.
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"
Это особенно важно в группах с автоматическим масштабированием, когда экземпляры можно создавать на лету. Несмотря на то, что мы должны относиться к серверам как к скоту, я думаю, что уникальное имя хоста, по крайней мере, помогает лучше идентифицировать серверы. Есть ли лучший подход к этому?
Я придерживаюсь более или менее такого подхода. Имеет большой смысл включить идентификатор экземпляра в имя хоста, поскольку это позволяет очень легко идентифицировать и связывать запущенные серверы с экземплярами в веб-консоли или других командах API.
Есть ли лучший подход к этому?
Как вы определяете «лучше»?
Если это работает для вас, просто продолжайте. Идентификаторы экземпляров гарантированно будут уникальными в пределах учетной записи, и у вас уже есть решение, использующее эти идентификаторы, так что похоже, что все готово.