Есть ли способ, чтобы автоматически назначить загрузки с LightSail, работающего инстанса каждые 3 месяца?


Я хочу автоматически обновить SSL-сертификаты для веб-сайта, который я размещаю на страницах GitLab, используя certbot auto. У меня уже есть эта работа, но я должен постоянно поддерживать свой экземпляр Lightsail.

Я просто ищу автоматический способ загрузки моего экземпляра Lightsail каждые 3 месяца, и после загрузки запустите небольшой скрипт, а затем снова выключите питание. На данный момент он стоит мне 5 долларов в месяц, и я использую его только в течение нескольких минут каждый раз.

Есть ли способ для автоматического планирования загрузки из LightSail, работающего инстанса каждые 3 месяца?

2 2

2 ответа:

Предлагаемый подход: запланированная лямбда-функция, запускаемая каждые 3 месяца и выполняющая 4 шага.

  1. Запустите свой экземпляр
  2. используйте API EC2 RunCommand для удаленного выполнения команды на вашем экземпляре lightsail
  3. контролируйте выполнение команды до завершения
  4. выключите экземпляр

Некоторые предварительные условия:

  • создайте лямбда-функцию и предоставьте ей права доступа с ролью 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 для запуска вашего приложения. экземпляр и попросите ваш экземпляр отправить команду остановить экземпляр, как только он закончит свою работу. Стоимость: ничего (вероятно, в пределах свободных пределов)

Aws lightsail start-instance

Запускает конкретный экземпляр Amazon Lightsail из остановленного состояния. К перезагрузите экземпляр, используйте операцию перезагрузки экземпляра.

На мой взгляд, установка агента на вашем экземпляре-это перебор, просто чтобы отправить команду.