Есть ли способ, чтобы автоматически назначить загрузки с LightSail, работающего инстанса каждые 3 месяца?
Я хочу автоматически обновить SSL-сертификаты для веб-сайта, который я размещаю на страницах GitLab, используя certbot auto. У меня уже есть эта работа, но я должен постоянно поддерживать свой экземпляр Lightsail.
Я просто ищу автоматический способ загрузки моего экземпляра Lightsail каждые 3 месяца, и после загрузки запустите небольшой скрипт, а затем снова выключите питание. На данный момент он стоит мне 5 долларов в месяц, и я использую его только в течение нескольких минут каждый раз.
Есть ли способ для автоматического планирования загрузки из LightSail, работающего инстанса каждые 3 месяца?
2 ответа:
Предлагаемый подход: запланированная лямбда-функция, запускаемая каждые 3 месяца и выполняющая 4 шага.
- Запустите свой экземпляр
- используйте API EC2 RunCommand для удаленного выполнения команды на вашем экземпляре lightsail
- контролируйте выполнение команды до завершения
- выключите экземпляр
Некоторые предварительные условия:
- создайте лямбда-функцию и предоставьте ей права доступа с ролью IAM для использования
ssm:*
,ec2:startinstances
иec2:stopinstances
(это позволит вашей лямбде функция для связи с вашим экземпляром lightsail, а также мониторинга и отправки команд.- Сделайте лямбда-функцию запланированной функцией, чтобы вы могли запускать ее каждые 3 месяца автоматически
- есть SSMAgent, установленный на вашем экземпляре, как this
Предоставьте экземпляру соответствующие разрешения IAM для обмена данными SSM с помощью политики экземпляра (это позволит экземпляру взаимодействовать с AWS SSM)
"ec2messages:*","ssm:updateinstanceinformation","ssm:listassociations"
Теперь пишите ваша функция lambda использует AWS SDK, и она будет работать как шарм. Если вы беспокоитесь о затратах, если вы не запускаете один материнский сценарий, вы должны попасть в свободный уровень, поскольку вы получаете 400 ГБ-секунд вычислительного времени в месяц.
Это означает, что вы можете запускать лямбда-функцию с 1 ГБ памяти в течение 400 секунд каждый месяц бесплатно.PS: я упоминал EC2 много, я знаю, что вы используете lightsail, но поскольку это просто оболочка для EC2, я полагаю, что та же функциональность доступна, правильно я, если ошибаюсь.
Есть два варианта, которые я могу придумать. Может быть, и больше.
AWS Data Pipeline : планируйте действия оболочки каждые 3 месяца и выберите микро-экземпляр. Укажите команды AWS CLI для запуска вашего экземпляра и попросите ваш экземпляр отправить команду stop instance, как только он завершит свою работу. Стоимость: 1 час микро-экземпляра.
AWS Lambda (предпочтительно): запланируйте событие Lambda для запуска вашего экземпляра каждые 3 месяца. Укажите команды AWS CLI для запуска вашего приложения. экземпляр и попросите ваш экземпляр отправить команду остановить экземпляр, как только он закончит свою работу. Стоимость: ничего (вероятно, в пределах свободных пределов)
Запускает конкретный экземпляр Amazon Lightsail из остановленного состояния. К перезагрузите экземпляр, используйте операцию перезагрузки экземпляра.
На мой взгляд, установка агента на вашем экземпляре-это перебор, просто чтобы отправить команду.