Zamknij EC2 Instance, jeśli jest bezczynny tuż przed kolejną płatną godziną
W nieprzewidywalnych czasach (żądanie użytkownika) muszę uruchomić zadanie wymagające dużej ilości pamięci. W tym celu otrzymuję spot lub żądanie na żądanie i oznaczam go tagiem jakonon_idle
. Gdy zadanie zostanie wykonane (co może zająć godziny), daję mu etykietęidle
. Ze względu na model rozliczania godzinowego AWS, chcę zachować tę instancję przy życiu, dopóki nie zostanie poniesiona kolejna godzina rozliczeniowa w przypadku, gdy przychodzi kolejne zadanie. Jeśli zadanie przychodzi, instancja powinna zostać ponownie użyta i oznaczona jakonon_idle
. Jeśli w tym czasie nie pojawi się żadne zadanie, instancja powinna się zakończyć.
Czy AWS oferuje gotowe rozwiązanie? O ile wiem, CloudWatch nie może ustawiać alarmów, które powinny działać w określonym czasie, nieważne przy użyciu CPUUtilization lub znaczników instancji. W przeciwnym razie może mógłbym po prostu skonfigurować dla każdej utworzonej instancji timer java lub aktor scala, który działa co godzinę po utworzeniu instancji i sprawdzać tagidle
.