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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有没有办法每3个月自动安排一次Lightsail实例的启动?相关的知识,希望对你有一定的参考价值。

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

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

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

答案

建议的方法:计划的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的包装,我想可以使用相同的功能,如果我错了,请纠正我。

另一答案

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

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操作。

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

以上是关于有没有办法每3个月自动安排一次Lightsail实例的启动?的主要内容,如果未能解决你的问题,请参考以下文章

使用 PHP 自动安排作业的正确方法是啥 [关闭]

有没有办法将多个静态 IP 分配给 Amazon Lightsail 实例?

如何从 EC2 快照创建 AWS Lightsail 实例?

关于场景漫游系统的记录

每 n 天安排一次本地通知(时区安全)

有没有办法在 Symfony 上自动清除缓存?