【问题标题】:Lambda function to start or stop ec2 based on application usage根据应用程序使用情况启动或停止 ec2 的 Lambda 函数
【发布时间】:2019-04-04 13:18:08
【问题描述】:
我想调查是否有可能,如果有人试图点击应用程序 url,那么实例应该被重新启用并保持活跃,只要有活跃的使用。如果资源在 10 到 20 分钟内处于非活动状态,它们应该自动禁用自己,即实例应该被禁用。
这里有部署在 ec2 实例上的多主机应用程序,并在 Route53 中配置了记录集 dns。
请建议
【问题讨论】:
标签:
amazon-web-services
amazon-ec2
routes
aws-lambda
amazon-route53
【解决方案1】:
- 创建一个
ec2 start lambda 函数,当您点击此 lambda 支持的 APIGateway 上托管的 url 时,该函数会被调用,一旦实例向上重定向到实际的 ec2 实例 url(因此 lambda 必须保持运行重定向到此 url 后检查 ec2 实例的状态)。
- 在启动
ec2 instance 时,在 state 上触发另一个 lambda 作为 running 基础上的事件模式,这会将 cloudwatch 警报附加到实例。
- cloudwatch 警报会检查 cpu 使用率,如果连续 3 次低于 10%,它将停止实例。
- lambda 应该具有具有对 EC2 实例的完全访问权限的策略角色(稍后将其更改为所需的方法权限)。
blog on stop/start ec2 instance
aws knowledge centre
aws Instance Scheduler