Самоограниченных АРМ экземпляр EC2?


есть ли способ, что веб-служб Amazon EC2 случаях может быть самостоятельной прекращения? Есть ли у Amazon что-нибудь, что позволяет экземпляру завершать себя ("Hara-Kiri") после запуска более часа? Я мог бы изменить сценарии на запущенном экземпляре, чтобы сделать это сам, но это может не сработать, и я не хочу редактировать изображение, поэтому я хотел бы, чтобы Amazon убил экземпляр.

4 60

4 ответа:

чтобы экземпляр завершал себя, выполните оба этих шага:

  1. запустите экземпляр с помощью --instance-initiated-shutdown-behavior terminate или эквивалент на консоли AWS или вызове API.
  2. выполнить shutdown -h now как root. На Ubuntu вы можете настроить это так, чтобы это произошло за 55 минут с помощью:

    echo "sudo halt" | at now + 55 minutes
    

Я написал статью некоторое время назад о других вариантах для достижения этой же цели" завершить через час":

автоматическое прекращение Временные экземпляры на Amazon EC2
http://alestic.com/2010/09/ec2-instance-termination

статья была первоначально написана перед instance-initiated-shutdown-behavior был доступен, но вы найдете обновления и другие драгоценные камни в комментариях.

вы можете сделать это

ec2-terminate-instances $(curl -s http://169.254.169.254/latest/meta-data/instance-id)

ec2 получит свой текущий идентификатор экземпляра и завершит работу.

надеюсь, это будет работать

instanceId = $(curl http://169.254.169.254/latest/meta-data/instance-id/)

/usr/bin/aws ec2 terminate-instances --instance-ids $instanceId --region us-east-1

надеюсь, что это поможет вам !!!

вот мой скрипт Самоограниченных

$ EC2_INSTANCE_ID="`wget -q -O - http://instance-data/latest/meta-data/instance-id || die \"wget instance-id has failed: $?\"`"
$ echo "ec2-terminate-instances $EC2_INSTANCE_ID" | at now + 55 min || die 'cannot obtain instance-id'

если вы хотите назначить его как Самотормозящей on Самоограниченных, вы можете сделать это только один раз.

в своем консоль EC2 на Настройки Экземпляра изменить Проблемы до остановка.
Настроить / etc / cloud / cloud.cfg, вы можете см.как запустить скрипт загрузки с помощью cloud-init.
Следуйте ответу от Эрик Хаммонд, поместите команду в файл и найдите ее в scripts-per-boot путь:

$ echo '#!/bin/sh' > per-boot.sh
$ echo 'echo "halt" | at now + 55 min' >> per-boot.sh
$ echo 'echo per-boot: `date` >> /tmp/per-boot.txt' >> per-boot.sh
$ chmod +x per-boot.sh
$ sudo chown -R root per-boot.sh
$ sudo mv -viu per-boot.sh /var/lib/cloud/scripts/per-boot

перезагрузка ваш экземпляр, проверьте, выполняется ли скрипт:

$ cat /tmp/per-boot.txt 
per-boot: Mon Jul 4 15:35:42 UTC 2016

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

Broadcast message from root@ip-10-0-0-32
        (unknown) at 16:30 ...

The system is going down for halt NOW!

PS: Для всех хотят использовать Самотормозящей, одна вещь, которую вы должны отметить, что не все типы EC2 являются самостоятельным восстановлением при перезапуске. Я рекомендую использовать EC2-VPC / EBS С Вкл/Выкл Расписание.