Я много чего пробовал, но не смог сохранить файлы.
У меня есть учетная запись в aws, и я создал группу автомасштабирования. Я хочу скопировать файлы журнала в s3, но когда какой-либо сервер удален с помощью автомасштабирования, потеря файлов журнала за 30 минут, поэтому мне нужно запустить сценарий, который запускается во время когда текущий сервер будет завершен из-за автоматического вызова, но я не могу понять, как я знаю или как узнать, какой сервер будет удален с помощью автоматического вызова?
Есть ли способ узнать, какой сервер будет удален с помощью автозапуска?
Я думаю, ваш лучший шанс - написать сценарий инициализации, имитирующий "службу", которая выполняет задачи загрузки по команде остановки. Затем просто правильно сконфигурируйте ваш rc, чтобы ваш скрипт вызывался при завершении работы.
В любом случае отключения не могут длиться вечно. В большинстве дистрибутивов Linux есть «льготный период» в 5-10 минут для ожидания корректной остановки служб перед тем, как начать завершать процессы. Если вы накапливаете слишком много файлов, этого подхода может быть недостаточно, но если вы также выполняете выгрузку в событиях ротации журналов, это не должно быть проблемой.
Теперь, чтобы узнать, какой из ваших экземпляров будет остановлен следующим, вы можете выяснить это с помощью API-интерфейсов EC2 и Autoscaling (хотя это может не соответствовать вашему варианту использования). Все, что вам нужно, - это настроить группу автомасштабирования так, чтобы в первую очередь завершать работу самых старых или новейших экземпляров, чтобы вы могли описать свои экземпляры ec2 и получить все время их запуска и отсортировать выходные данные надлежащим образом, чтобы получить свою «очередь смерти».
Если я хорошо понимаю, вы хотите знать, как AWS определяет, какой экземпляр в следующий раз будет остановлен группой автомасштабирования? Внутри группы автомасштабирования есть политика прекращения, таким образом AWS знает, какой экземпляр нужно завершить, когда дело доходит до удаления виртуальных машин (вы можете выбрать, какую политику применить)