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

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

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

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

那可能吗?

最佳答案

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

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

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

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

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

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

关于amazon-ec2 - 您可以创建自己的 EC2 自动扩展触发器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10920214/

相关文章:

amazon-web-services - AWS - 错误 504 - 网关超时 - Flask 应用程序

audio - AWS EC2实例上的Pyaudio “Invalid input device (no default output device)”

amazon-web-services - 在 Kubernetes 中使用 Terraform 输出

node.js - 为什么 Node.js 具有可扩展性?

amazon-ec2 - 我可以在 terraform 创建的 ec2 实例中执行 ssh 吗?

macos - SSH 错误 : Permission denied (publickey, gssapi-with-mic)

ruby-on-rails - 是否可以只有一个领事服务器来为 Rails 应用程序提供 key 对?

asp.net - AWS - 已被 CORS 策略阻止 : No 'Access-Control-Allow-Origin' header is present on the requested resource

Java 堆栈 - ORM 与数据库可伸缩性

web-services - 有哪些好的资源可用于设计可良好扩展的基于 Web 服务的架构?