>我有一个很少访问的网站(有时一天2/3次,有时没有)
我想在没有流量发生时立即自动关闭实例(这在设置 cloudwatch 警报时是可能的)。
我当前的问题是,一旦网站上有请求,我想再次启动实例(我完全不介意等待实例重新上线)。
有什么办法可以做到这一点吗?如果是,技术上将如何工作?
免责声明:只有一些理论思想
主要思想:使用 S3(静态网站)的登录页面,访问此页面将触发 Lambda 脚本。此 Lambda 脚本将启动实例。
更多详情:
-
一个带有登录页面 + JavaScript 的 Amazon S3 静态网站,用于:
- 调用亚马逊 API 网关
- 测试实例是否已准备就绪
- 一切准备就绪后重定向到正确的页面
- 也许一些URL/JavaScript技巧可以避免爬虫和机器人,扫描仪等启动实例
-
Amazon API 网关:仅用于触发 Amazon Lambda 的事件
-
用于启动实例的 Amazon lambda 脚本(如果未运行)。
根据您的需求,您可以尝试无服务器,如下所示:https://gofore.com/en/going-serverless-with-amazon-s3-and-lambda/
自动缩放组。根据需要设置扩展规则,仅此而已。
添加实例(纵向扩展)时,可以使用"添加"1 个实例,删除实例(纵向扩展)时,可以使用"设置为"0 个实例。
但请记住,当实例为 0 且请求传入时,将不会为该请求提供服务,但它可以触发纵向扩展,以便在实例预热后可以处理后续请求。