Od ledna 2013 nabízí Amazon CloudWatch možnost používat službu Amazon CloudWatch k detekci a vypnutí nepoužívaných instancí Amazon EC2, podrobnosti o této funkci najdete v úvodním příspěvku blogu Amazon CloudWatch – Alarm Actions:
Dnes vám dáváme možnost přestat nebo ukončete vaše instance EC2, když se spustí alarm CloudWatch . Můžete to použít jako zabezpečení proti selhání (detekovat abnormální stav a poté jednat) nebo jako součást logiky zpracování vaší aplikace (čekat na očekávaný stav a poté jednat). [důraz můj]
Váš případ použití je uveden v části Nápady zabezpečené proti selhání konkrétně:
Pokud jste vy (nebo vaši vývojáři) zapomnětliví, můžete odhalit nepoužívané instance EC2 a vypnout je. Můžete to udělat detekcí velmi nízkého průměru zatížení po delší dobu. Tento typ zabezpečení proti selhání lze použít ke snížení vašeho účtu za AWS tím, že se ujistíte, že neplatíte za zdroje, které ve skutečnosti nevyužíváte.
Jak bylo nastíněno, závisí to na schopnosti heuristicky detekovat vhodnou podmínku spouštějící poplach a zastavení instance – můžete ji posunout na další úroveň prostřednictvím publikování vlastních metrik do CloudWatch na základě počtu přihlášených uživatelů SSH, doby nečinnosti nebo jinak a získat větší kontrolu/přesnost pro požadovaný proces detekce a vypnutí.
Můžete vytvořit skript úlohy cron přímo na instanci samotné, která používá příkaz jako
netstat | grep ssh | grep ESTABLISHED
a pokud není vrácen žádný výsledek, zapište to do souboru, pak to cron zkusí znovu a pokud znovu nevrátí žádné výsledky, skript to spustí.
/sbin/shutdown -h now
Pokud jediné, co hledáte, je udržet server spuštěný, když jste přihlášeni, a vaše relace nečinná po dobu kratší než n
jednotek času, můžete tak učinit pomocí cron skriptu, který jste zmínili, sledováním výstupu w(1)
který hlásí IDLE
čas pro přihlášeného uživatele, který můžete využít.