Автоинкремент EC2 Экземпляр Имя - PullRequest
0 голосов
/ 13 июня 2019

Я видел много вопросов о Stackoverflow, спрашивающих, существует ли способ автоматического увеличения имен экземпляров.Например:

foo1
foo2
fooN

Я пытаюсь выяснить, есть ли способ сделать это в Powershell.Я использую AutoLaunchConfiguration / ASG, чтобы раскрутить экземпляры.Есть ли программный способ автоматического увеличения экземпляров?Каждый ресурс, который я видел до сих пор, говорит, что это возможно, но ни один из них не предоставляет средства для этого.Вот некоторые ресурсы, на которые я смотрю:

У кого-нибудь есть рабочий пример, позволяющий сделать это с помощью AutoLaunchConfiguration и ASG?Если да, не могли бы вы предоставить ссылку / статью, которая может предоставить мне эту информацию?

1 Ответ

1 голос
/ 14 июня 2019

Первым делом необходимо решить что означает "автоинкремент" .

Например, если эти экземпляры уже существуют:

  • foo1
  • foo2

тогда, очевидно, следующий экземпляр будет foo3.

Но допустим, что экземпляр ранее был прерван из-за уменьшения нагрузки, и в настоящий момент запущены следующие экземпляры:

  • foo1
  • foo3

Тогда возникает вопрос, должен ли следующий экземпляр быть foo2 или foo4.

Если ответ foo4, то подумайте о ситуации, когда foo4 позднее завершается и запускается другой экземпляр. Должно ли это быть foo4 или foo5 (поскольку ранее было foo4).

Это действительно сводится к , определяющему , почему вам нужно автоинкрементное имя .

Причины, как правило:

  • Потребность в уникальном имени
  • Потребность в понятном человеку имени
  • Необходимость подсказки относительно порядка , в котором запускаются экземпляры

Если вам нужно уникальное имя , то ID экземпляра может удовлетворить эту потребность без необходимости в дополнительном имени.

Предположим, вы хотите использовать удобное для человека имя, и вы можете повторно использовать ранее использованные имена (например, если существуют foo1 и foo3, тогда используйте foo2 далее). В таком случае вам потребуется что-то, что логически проверяет существующие экземпляры и находит первое неиспользуемое число .

Если, с другой стороны, вы никогда не хотели повторно использовать имена, вам понадобится какое-то место для хранения «текущего» числа , чтобы его можно было увеличивать для следующего экземпляра.

Затем, наконец, встает вопрос , как назначить автоинкрементное имя (это ваш первоначальный вопрос, но сначала важно понять и вышесказанное). Моя рекомендация будет:

  • Добавьте некоторый код к каждому экземпляру, который запускается через Пользовательские данные , чтобы он запускался при запуске экземпляра (например, PowerShell)
  • Код проверяет существующие экземпляры с помощью describe-instances или места, где ведется счет , затем присваивает себе следующий номер
  • Затем код может вызвать create-tags для себя, добавив тег Name с соответствующим именем
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...