你能创建自己的EC2自动缩放触发器吗?

时间:2012-06-06 18:44:20

标签: amazon-ec2 amazon-web-services scalability infrastructure

在EC2上使用自动缩放组时,文档说您可以根据Cloudwatch指标触发新服务器。是否可以自己启动新实例?

例如,应用程序具有项目的内部队列,一旦该队列达到阈值,它就会向EC2发送通知,以向该组添加更多服务器。

这可能吗?

2 个答案:

答案 0 :(得分:3)

为了将来访问此答案的用户的利益,这里有一个更详细的解释:

EC2允许您根据计划或根据需求手动设置/更改自动缩放组的容量,如the docs中所述。

然而,手动扩展一词可能有些误导,因为几乎与AWS的每个方面一样,您可以手动执行的所有操作都可以通过CLI或SDK进行编写脚本。

我是EC2自动缩放组的情况,容量是可配置的,可以在运行时动态更改 - 容量的变化将导致实例自动添加或删除。

因此,在这种情况下,解决方案是在应用程序代码中检测特定于应用程序的生命周期事件,并响应这些事件,使用相关的AWS SDK来更改自动扩展组的容量。

在ruby中,这可以按如下方式进行(示例来自AWS API documentation):

autoscaling = Aws::AutoScaling::Client.new(
  region: region_name,
  credentials: credentials
)

resp = autoscaling.set_desired_capacity(
  # required
  auto_scaling_group_name: "ResourceName",
  # required
  desired_capacity: 1,
  honor_cooldown: true,
)

答案 1 :(得分:2)