Метаданные AWS: проверьте, является ли экземпляр EC2 спотовым?

Метаданные AWS: проверьте, является ли экземпляр EC2 спотовым?

ЕстьМетаданные AWSслужба, которая предоставляет некоторую информацию об экземпляре EC2, который отправляет запрос на http://169.254.169.254/. Мне интересно, есть ли способ узнать из этих метаданных, является ли экземпляр «Spot» или «On Demand»?

решение1

Информация недоступна внутри метаданных.

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

решение2

Я не думаю, что в метаданных есть такая информация.

Вы можете назначить другой профиль для экземпляров, которые вы запускаете как точечные экземпляры, и использовать имя профиля, чтобы определить, какой это тип экземпляра. Если это не кажется вам чистым или жизнеспособным решением, вы всегда можете получить идентификатор экземпляра из метаданных, а затем выполнить команду, ec2-describe-spot-instance-requests --filter instance-id=<instanceid>если команда возвращает пустое значение, то экземпляр не является точечным экземпляром, если команда возвращает данные, то это точечный экземпляр.

решение3

Я знаю, что это очень старо, но если кто-то хочет узнать вкратце:

aws ec2 describe-spot-instance-requests \
  --filters Name=instance-id,Values="$(wget -q -O - http://169.254.169.254/latest/meta-data/instance-id)" \
  --region us-east-1 | \
  jq -r '.SpotInstanceRequests | if length > 0 then "spot" else "normal" end'

Отрегулируйте --regionсоответственно

https://gist.github.com/urjitbhatia/c5af8a3d53661cb3d4e896feae23fc1d

решение4

Похоже, с годами все изменилось, так что теперь это работает.

# a spot instance
$ curl -s --fail http://169.254.169.254/latest/meta-data/instance-life-cycle
spot
# a normal instance
$ curl -s --fail http://169.254.169.254/latest/meta-data/instance-life-cycle
on-demand

Связанный контент