您可以创建自己的 EC2 自动扩展触发器吗?



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

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

这可能吗?

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

EC2 允许您根据计划或需求手动设置/更改 Auto Scaling 组的容量,如文档中所述。

但是,术语手动扩展可能有些误导,因为与 AWS 的几乎所有方面一样,您可以手动执行的所有操作都可以通过 CLI 或开发工具包编写脚本。

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

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

在 ruby 中,这可以按如下方式完成(示例取自 AWS API 文档):

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,
)

我发现答案是肯定的,相关文档在这里:http://docs.amazonwebservices.com/AutoScaling/latest/DeveloperGuide/scaling_typesof.html

最新更新