AWS EC2, что такое идентификатор резервирования и что он представляет?

13

Я сделал скрипт, который создает снимки наших томов EC2. Сценарий проверяет, какие экземпляры запущены, какие тома подключены к этим экземплярам, ​​а затем создает моментальные снимки для этих томов, игнорируя остальные.

Используя describe-instances, я получаю идентификаторы резервирования, а не идентификаторы экземпляров. Это сбивает с толку, но это так, как есть. Когда экземпляр запускается, резервирование создается для этого экземпляра.

Я все еще не понимаю концепцию бронирования.

Примечание: я знаю, что такое зарезервированные экземпляры, что отличается от того, что я здесь описываю. «Зарезервированный экземпляр» означает, что вы арендуете экземпляр на год, два или три, и вы получаете за это снижение цены. Таким образом, вы резервируете t2.medium на один год, и если вы не используете его, вы все равно платите, но если вы его используете, он дешевле, чем обычно.

Теперь вернемся к «идентификатору бронирования». В разделе часто задаваемых вопросов AWS говорится:

Каждый экземпляр, запущенный EC2, имеет идентификатор резервирования. Идентификатор резервирования имеет отношение «один к одному» с запросом запуска экземпляра, но может быть связан с несколькими экземплярами, если вы запускаете несколько экземпляров, используя один и тот же запрос запуска.

Тогда возникает этот вопрос SE: Какова цель «бронирования» в Amazon EC2?

До сих пор не ясно, что именно представляет идентификатор резервирования.

Если вы запускаете один экземпляр за раз, каждый экземпляр имеет свой уникальный идентификатор резервирования.

  • Когда или как один идентификатор резервирования может быть связан с несколькими экземплярами?
  • Может ли это быть связано с несколькими не связанными случаями? Скажем, у меня есть веб-сервер и сервер базы данных. Могу ли я запустить их под одним идентификатором бронирования?
  • Или, может ли идентификатор резервирования быть связан только с одним экземпляром, который запускается несколько раз, например, в целях балансировки нагрузки.

В нашей ситуации все экземпляры имеют уникальный идентификатор резервирования, но я хочу знать, в каких ситуациях это может измениться, для сценария, который я использую describe-instances.

SPRBRN
источник

Ответы:

15

The не ResearvationIdимеет ничего общего с зарезервированными экземплярами. Это уникальное значение, указывающее запрос на запуск экземпляров EC2. Запрос на запуск может поступать из Cli, AutoScaling или Консоли управления AWS.

Каждый запрос aws ec2 run-instancesвозвращает ноль или более резервирований экземпляров. Обычно это будет один, если это удастся, но в документах указано «ноль или более» (1), поэтому один запрос на запуск может быть разбит на несколько резервирований.

Обычно экземпляры, запускаемые одновременно, получают одно и то же ReservationId, но это не может быть жестким правилом. Но запуск 2 экземпляров в 2 разных момента времени, скорее всего, даст разные ReservationIdзначения.

Например, как часть aws ec2 run-instancesкоманды вы можете указать минимальное и максимальное количество экземпляров для одновременного запуска. Много раз это будет min = max = 1, но оно может быть больше и / или другим, если 1 <= min <= max. Вы также можете указать количество экземпляров, запускаемых при запуске новых экземпляров из Консоли управления AWS. Это можно увидеть на странице «Шаг 3. Настройка подробностей экземпляра».

При выполнении aws ec2 describe-instancesваши результаты будут сгруппированы по ReservationIdзначению в зависимости от того, как они были запущены.

Как правило, вам не нужно беспокоиться о ReservationIdзначении, если только вы не хотите знать, были ли они запущены одновременно, в какой момент AmiLaunchIndexэкземпляр будет отличаться от экземпляра к экземпляру в резервировании (0, 1, 2 и т. Д.). ).

Ссылки:

Мэтт Хаузер
источник
3

Считайте идентификатор резервирования идентификатором транзакции. Например, если вы покупаете 5 билетов одновременно. У вас есть один идентификатор транзакции, но пять идентификаторов бронирования.

Таким же образом, если вы запустите 1 экземпляр за один раз, используя экземпляры запуска aws ec2 , у вас будет один идентификатор резервирования и один идентификатор экземпляра.

Но если вы запустите 10 экземпляров одновременно, используя aws ec2 run-instance , у вас будет 1 идентификатор резервирования и 10 идентификаторов экземпляра.

Vikash
источник