Samoczynnie kończąca się instancja AWS EC2?
Czy istnieje sposób, aby instancje Amazon Web Services EC2 mogły się samoczynnie zamykać? Czy Amazon ma coś, co pozwala instancji zakończyć się ("Hara-Kiri") po uruchomieniu przez ponad godzinę? Mógłbym zmienić Skrypty na uruchomionej instancji, aby zrobić to sam, ale to może się nie udać i nie chcę edytować obrazu, więc chciałbym Amazon zabić instancję.
4 answers
Aby instancja zakończyła się wykonaj oba te kroki:
- Uruchom instancję za pomocą
--instance-initiated-shutdown-behavior terminate
lub jej odpowiednika w konsoli AWS lub wywołaniu API. -
Uruchom
shutdown -h now
jako root. Na Ubuntu można to ustawić w 55 minut używając:echo "sudo halt" | at now + 55 minutes
Jakiś czas temu napisałem artykuł o innych opcjach, aby osiągnąć ten sam cel "Zakończ za godzinę": {]}
Automatyczne zakończenie tymczasowych instancji na Amazon EC2
http://alestic.com/2010/09/ec2-instance-termination
Artykuł został pierwotnie napisany przed instance-initiated-shutdown-behavior
był dostępny, ale aktualizacje i inne perełki znajdziesz w komentarzach.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-12 16:10:14
Możesz to zrobić
ec2-terminate-instances $(curl -s http://169.254.169.254/latest/meta-data/instance-id)
Ec2 otrzyma swój bieżący identyfikator instancji i zakończy się.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-07 13:18:18
Miejmy nadzieję, że to zadziała
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
Mam nadzieję, że to ci pomoże !!!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-03 11:35:22
Oto mój scenariusz do samokontrola
$ 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'
Jeśli chcesz przypisać go jako samohamowny na samokontroli , możesz to zrobić tylko raz.
W Twoim konsola EC2 przejdź do Ustawienia instancji , Zmień zachowanie zamknięcia na Stop .
Konfiguracja / etc / cloud / cloud.cfg , można odnieść się do Jak uruchomić skrypt rozruchowy przy użyciu cloud-init.
Follow odpowiedź od Erica Hammonda , umieść polecenie w pliku i zlokalizuj w scripts-per-boot ścieżka:
$ 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
Uruchom ponownie Twoją instancję, sprawdź czy skrypt jest wykonywany:
$ cat /tmp/per-boot.txt
per-boot: Mon Jul 4 15:35:42 UTC 2016
Jeśli tak, na wypadek, gdybyś zapomniał zatrzymać instancję, zapewni Ci to, że instancja sama zakończy się jako zatrzymanie, gdy będzie działać przez 55 minut lub jakikolwiek czas ustawiony w skrypcie.
Broadcast message from root@ip-10-0-0-32
(unknown) at 16:30 ...
The system is going down for halt NOW!
[[4]] PS: bo każdy chce korzystać z samoczynne zatrzymanie , należy zauważyć, że nie wszystkie typy EC2 są samoczynne odzyskiwanie po ponownym uruchomieniu. Polecam do użycia EC2-VPC / EBS z harmonogram włączania/wyłączania.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:02:44