A partire da gennaio 2013 Amazon CloudWatch offre un'opzione per utilizzare Amazon CloudWatch per rilevare e arrestare le istanze Amazon EC2 inutilizzate. Consulta il post introduttivo sul blog Amazon CloudWatch - Azioni di allarme per i dettagli su questa funzionalità:
Oggi ti diamo la possibilità di fermarti o termina le tue istanze EC2 quando viene attivato un allarme CloudWatch . È possibile utilizzarlo come failsafe (rilevare una condizione anomala e quindi agire) o come parte della logica di elaborazione dell'applicazione (attendere una condizione prevista e quindi agire). [corsivo mio]
Il tuo caso d'uso è elencato nella sezione Failsafe Ideas in particolare:
Se tu (o i tuoi sviluppatori) siete smemorati, potete rilevare le istanze EC2 inutilizzate e chiuderle. Puoi farlo rilevando una media di carico molto bassa per un periodo di tempo prolungato. Questo tipo di failsafe potrebbe essere utilizzato per ridurre la fattura AWS assicurandoti di non pagare per risorse che non stai effettivamente utilizzando.
Come indicato, ciò dipende dalla capacità di rilevare euristicamente la condizione appropriata che attiva l'allarme e arresta l'istanza:potresti passare al livello successivo pubblicando parametri personalizzati su CloudWatch in base al numero di utenti SSH che hanno effettuato l'accesso, al tempo di inattività o altrimenti e ottenere a sua volta maggiore controllo/precisione per il processo di rilevamento e spegnimento desiderato.
Potresti creare uno script di lavoro cron direttamente sull'istanza stessa che utilizza un comando come
netstat | grep ssh | grep ESTABLISHED
e se non viene restituito alcun risultato, scrivilo nel file, quindi il cron riprova e se non restituisce nuovamente alcun risultato lo script lo esegue.
/sbin/shutdown -h now
Se tutto ciò che stai cercando è mantenere il server in esecuzione mentre sei loggato e la tua sessione inattiva per meno di n
unità di tempo, puoi farlo tramite uno script cron che hai citato, monitorando l'output di w(1)
che riporta IDLE
tempo per l'utente connesso, che puoi utilizzare.