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

时间:2017-01-05 21:21:58

标签: amazon-web-services amazon-ec2

我的网站很少访问(有时每天2/3次,有时甚至没有)

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

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

有没有办法做到这一点?如果是,那么技术上如何运作?

2 个答案:

答案 0 :(得分:2)

免责声明:只有一些理论上的想法

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

更多详情:

  1. 包含着陆页+ javascript to:

    的Amazon S3静态网站
    • 拨打亚马逊API网关
    • 测试实例是否准备就绪
    • 当一切准备就绪时重定向到正确的页面
    • 可能是一些url / javascript技巧,以避免爬虫和机器人,扫描仪等启动实例
  2. Amazon API网关:仅用于触发Amazon Lambda的事件

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

  4. 根据您的需要,您可以尝试像这里一样无服务器:https://gofore.com/en/going-serverless-with-amazon-s3-and-lambda/

答案 1 :(得分:0)

您可以使用AutoScaling组。根据您的需要设置缩放规则。

添加实例(向上扩展)时,您可以使用“添加”按钮。 1个实例,在删除实例(缩小)时,您可以使用'设置为' 0实例。

但请记住,当实例为0且请求进入时,该请求将不会被提供,但它只能触发向上扩展,以便在实例预热后可以提供后续请求。