Здесь есть два требования:
- Запускать экземпляр каждый день в определенное время (это предположение, которое я сделал на основании вашего желания выключать экземпляр каждый день, поэтому что-то должно его включить)
- Запустите скрипт и затем shutdown
Вариант 1: запуск и остановка
Amazon CloudWatch Events может выполнять задачу по заданному расписанию, например один раз в день. Хотя он имеет много встроенных возможностей, он не может изначально запустить экземпляр. Поэтому настройте его на для запуска функции AWS Lambda . Функция Lambda может запустить экземпляр с помощью одного вызова API.
Когда экземпляр запускается , используйте обычные возможности ОС Windows, чтобы запустили нужную программу , например: Автоматический запуск программы при запуске Windows Server
Когда программа завершит работу, она должна подать команду ОС Windows на shutdown Windows. Преимущество такого способа (вместо попытки запланировать завершение работы) состоит в том, что программа будет работать до завершения, прежде чем будет активировано любое завершение работы. Обязательно настройте экземпляр EC2 на Stop on Shutdown (это поведение по умолчанию).
Вариант 2: запуск и завершение
Вместо запуска и остановки экземпляра вы можете вместо этого запустить новый экземпляр с помощью расписания событий Amazon CloudWatch.
Передайте требуемый сценарий PowerShell для запуска в экземпляре Данные пользователя . Этот скрипт может устанавливать и запускать программное обеспечение.
Когда сценарий завершится, он должен вызвать команду ОС Windows для завершения работы Windows. Однако на этот раз настройте Завершить при завершении работы , чтобы экземпляр был остановлен (удален). Это хорошо, потому что вышеприведенное расписание запустит новый экземпляр в следующий раз.
Преимущество этого метода заключается в том, что конфигурация программного обеспечения и то, что должно выполняться каждый раз, могут быть полностью настроены с помощью сценария пользовательских данных, вместо того, чтобы запускать экземпляр, входить в систему, изменять сценарии, а затем завершать работу. Нет необходимости держать экземпляр рядом, чтобы его просто останавливали большую часть дня.
Вариант 3: Переосмыслите свой план и перейдите без сервера!
Вместо использования экземпляра Amazon EC2 для запуска сценария, изучите возможность запуска функции AWS Lambda. Функция Lambda может выполнять всю необходимую обработку без необходимости запускать / запускать / останавливать / завершать экземпляры. Это также дешевле!
Некоторые ограничения могут помешать этой опции (например, максимальная продолжительность выполнения 5 минут, ограничение дискового пространства 500 МБ), но это должен быть первый вариант , который вы исследуете, а не запускаете / останавливаете экземпляр Amazon EC2.