有没有办法每3个月自动安排一次Lightsail实例的启动?

问题描述 投票:2回答:2

我希望使用certbot auto自动续订我在GitLab页面上托管的网站的SSL证书。我已经有了这个工作,但我必须让我的Lightsail实例持续运行。

我只是在寻找一种每3个月启动一次Lightsail实例的自动方式,一旦启动就运行一个小脚本,然后再次关机。目前它花了我5个月的时间,我每次只使用它几分钟。

有没有办法每3个月自动安排一次Lightsail实例的启动?

amazon-web-services cron aws-cli certbot amazon-lightsail
2个回答
2
投票

建议的方法:计划的Lambda函数,每3个月触发一次并执行4个步骤。

  1. 启动您的实例
  2. 使用EC2 RunCommand API远程执行lightail实例上的命令
  3. 监视命令直到完成
  4. 关闭实例

一些先决条件:

  • 创建一个Lambda函数并使用IAM角色授予它权限以使用ssm:*ec2:startinstancesec2:stopinstances(这将允许您的lambda函数与您的lightsail实例进行通信,并监视和发送命令。
  • 使lambda函数成为预定函数,因此您可以每3个月自动触发一次
  • 在您的实例上安装SSMAgent,如this
  • 通过实例策略为您的实例提供适当的SSM通信IAM权限(这将允许实例与AWS SSM通信) "ec2messages:*","ssm:updateinstanceinformation","ssm:listassociations"

现在使用AWS SDK编写lambda函数,它就像魅力一样。如果您担心成本,除非您运行一个脚本的母亲,否则您应该属于免费套餐,因为您每月获得400 GB秒的计算时间。

这意味着您可以免费运行具有1GB内存的lambda函数,每月400秒。

PS:我提到EC2很多,我知道你正在使用lightail,但因为它只是EC2的包装,我想可以使用相同的功能,如果我错了,请纠正我。


4
投票

我能想到两种选择。可能会有更多。

AWS Data Pipeline:每3个月安排一次shell活动并选择一个微实例。指定AWS CLI命令以启动实例,并在完成其工作后让实例发送stop instance命令。成本:1小时微实例。

AWS Lambda(首选):安排Lambda事件以每3个月启动一次实例。指定AWS CLI命令以启动实例,并在完成其工作后让实例发送stop instance命令。成本:没有(可能在免费限制范围内)

aws lightsail start-instance

从已停止状态启动特定的Amazon Lightsail实例。要重新启动实例,请使用reboot instance操作。

在我看来,在你的实例上安装代理只是为了发送命令是一种过度杀伤。

© www.soinside.com 2019 - 2024. All rights reserved.