Wpadłem na ten sam problem z instancjami EC2, ale zaadresowałem to w inny sposób - zamiast monitorować instancje, kazałem je automatycznie zabijać po określonym czasie. Z Twojego opisu wynika, że może to nie być praktyczne w twoim środowisku, ale pomyślałem, że podzielę się nim na wszelki wypadek. Moja AMI było oparte na Fedora, więc stworzył poniższy skrypt bash, zarejestrował go jako usługa, i miał go uruchomić przy starcie:
#!/bin/bash
# chkconfig: 2345 68 20
# description: 50 Minute Kill
# Source Functions
. /etc/rc.d/init.d/functions
start()
{
# Shut down 50 minutes after starting up
at now + 50 minutes < /root/atshutdown
}
stop()
{
# Remove all jobs from the at queue because I'm not using at for anything else
for job in $(atq | awk '{print $1}')
do
atrm $job
done
}
case "$1" in
start)
start && success || failure
echo
;;
stop)
stop && success || failure
echo
;;
restart)
stop && start && success || failure
echo
;;
status)
echo $"`atq`"
;;
*)
echo $"Usage: $0 {start | stop | restart}"
RETVAL=1
esac
exit $RETVAL
Można rozważyć robi coś podobnego do własnych potrzeb. Jeśli to zrobisz, zachowaj szczególną ostrożność, aby zatrzymać usługę przed modyfikacją obrazu, aby instancja nie została zamknięta przed uzyskaniem szansy na ponowne połączenie.
Jeśli chcesz, możesz mieć zamknięcie przypadkach co określony czas (gdy wszyscy pozostawia pracę?), Czy można przekazać w podtrzymania czasu długość/wyłączanie poprzez parametry -d
lub -f
do ec2-run-instances
i analizowania do skryptu.
Dobre pytanie - uwielbiam EC2, ale zawsze uważałem za irytująco trudny do wymyślenia nawet najdrobniejszych kosztów użytkowania. –
Możesz mieć więcej szczęścia zadając to pytanie na forum wsparcia EC2; proszę zamieścić odpowiedź tutaj, jeśli ją otrzymasz. –
Dzięki Gareth - Wysłałem tu pytanie http://developer.amazonwebservices.com/connect/thread.jspa?threadID=45165 – frabcus