发出请求时自动启动 EC2 实例



>我有一个很少访问的网站(有时一天2/3次,有时没有)

我想在没有流量发生时立即自动关闭实例(这在设置 cloudwatch 警报时是可能的)。

当前的问题是,一旦网站上有请求,我想再次启动实例(我完全不介意等待实例重新上线)。

有什么办法可以做到这一点吗?如果是,技术上将如何工作?

免责声明:只有一些理论思想

主要思想:使用 S3(静态网站)的登录页面,访问此页面将触发 Lambda 脚本。此 Lambda 脚本将启动实例。

更多详情:

  1. 一个带有登录页面 + JavaScript 的 Amazon S3 静态网站,用于:

    • 调用亚马逊 API 网关
    • 测试实例是否已准备就绪
    • 一切准备就绪后重定向到正确的页面
    • 也许一些URL/JavaScript技巧可以避免爬虫和机器人,扫描仪等启动实例
  2. Amazon API 网关:仅用于触发 Amazon Lambda 的事件

  3. 用于启动实例的 Amazon lambda 脚本(如果未运行)。

根据您的需求,您可以尝试无服务器,如下所示:https://gofore.com/en/going-serverless-with-amazon-s3-and-lambda/

您可以使用

自动缩放组。根据需要设置扩展规则,仅此而已。

添加实例(纵向扩展)时,可以使用"添加"1 个实例

,删除实例(纵向扩展)时,可以使用"设置为"0 个实例。

但请记住,当实例为 0 且请求传入时,将不会为该请求提供服务,但它可以触发纵向扩展,以便在实例预热后可以处理后续请求。

最新更新