如何使用 AWS 开发工具包以编程方式扩展 ECS 集群
How to programmatically scale up an ECS cluster with the AWS SDK
我正在尝试使用 node.js
通过 aws-sdk
程序包以编程方式扩展我的 ECS 集群
我已经通读了 API 文档 (https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/ECS.html) 的 ECS 部分几次,但找不到 API 更新 ECS 集群配置的方法。
如果您进入 ECS > clusters > your cluster > ECS Instances > Scale ECS Instances
,您可以在 UI 上执行此操作:
有没有一种方法可以通过现有方法以编程方式执行此操作?是否存在 ECS.updateCluster
方法?
看来,您的集群是使用控制台优先创建的 -运行 体验,这就是您能够看到扩展 ECS 实例选项的原因。
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scale_cluster.html
如果您的集群是在 2015 年 11 月 24 日之后使用控制台先运行 体验创建的,则可以扩展与为您的集群创建的 AWS CloudFormation 堆栈关联的 Auto Scaling 组向上或向下以添加或删除容器实例。您可以从 Amazon ECS 控制台中执行此扩展操作。
如果您的集群不是在 2015 年 11 月 24 日之后使用控制台优先创建的 -运行 体验,则您无法从 Amazon ECS 控制台扩展集群。但是,您仍然可以在 Auto Scaling 控制台中修改与您的集群关联的现有 Auto Scaling 组。如果您没有与集群关联的 Auto Scaling 组,您可以从现有容器实例创建一个。
我不建议在生产环境中使用控制台创建集群。理想情况下,您应该使用 CF 模板创建可以放置 AutoScaling Group 的集群。
您可以使用以下方法修改 AutoScaling Group 所需的计数 API。
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/AutoScaling.html#setDesiredCapacity-property
var params = {
AutoScalingGroupName: "my-auto-scaling-group",
DesiredCapacity: 2,
HonorCooldown: true
};
autoscaling.setDesiredCapacity(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
没有办法直接通过SDK来完成。您必须使用底层 ASG 来设置所需的计数。与后端一样,ECS 集群设置由 cloudformation 模板完成,该模板为该 EC2 池创建一个 Auto-Scaling 组。
您将能够在 EC2 的 ASG 部分找到与集群关联的自动缩放组。您可以使用 SDK 更新该自动缩放组的所需数量,这将影响 ECS 中的所需数量。
如果您想使用自动缩放功能,那么您可以使用 cloudwatch 警报根据不同的指标(例如 CPU Reservation/Utilization 或 MEMORY Reservation/Utilization.
参考:https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch_alarm_autoscaling.html
我正在尝试使用 node.js
通过aws-sdk
程序包以编程方式扩展我的 ECS 集群
我已经通读了 API 文档 (https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/ECS.html) 的 ECS 部分几次,但找不到 API 更新 ECS 集群配置的方法。
如果您进入 ECS > clusters > your cluster > ECS Instances > Scale ECS Instances
,您可以在 UI 上执行此操作:
有没有一种方法可以通过现有方法以编程方式执行此操作?是否存在 ECS.updateCluster
方法?
看来,您的集群是使用控制台优先创建的 -运行 体验,这就是您能够看到扩展 ECS 实例选项的原因。
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/scale_cluster.html
如果您的集群是在 2015 年 11 月 24 日之后使用控制台先运行 体验创建的,则可以扩展与为您的集群创建的 AWS CloudFormation 堆栈关联的 Auto Scaling 组向上或向下以添加或删除容器实例。您可以从 Amazon ECS 控制台中执行此扩展操作。
如果您的集群不是在 2015 年 11 月 24 日之后使用控制台优先创建的 -运行 体验,则您无法从 Amazon ECS 控制台扩展集群。但是,您仍然可以在 Auto Scaling 控制台中修改与您的集群关联的现有 Auto Scaling 组。如果您没有与集群关联的 Auto Scaling 组,您可以从现有容器实例创建一个。
我不建议在生产环境中使用控制台创建集群。理想情况下,您应该使用 CF 模板创建可以放置 AutoScaling Group 的集群。
您可以使用以下方法修改 AutoScaling Group 所需的计数 API。
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/AutoScaling.html#setDesiredCapacity-property
var params = {
AutoScalingGroupName: "my-auto-scaling-group",
DesiredCapacity: 2,
HonorCooldown: true
};
autoscaling.setDesiredCapacity(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
没有办法直接通过SDK来完成。您必须使用底层 ASG 来设置所需的计数。与后端一样,ECS 集群设置由 cloudformation 模板完成,该模板为该 EC2 池创建一个 Auto-Scaling 组。
您将能够在 EC2 的 ASG 部分找到与集群关联的自动缩放组。您可以使用 SDK 更新该自动缩放组的所需数量,这将影响 ECS 中的所需数量。
如果您想使用自动缩放功能,那么您可以使用 cloudwatch 警报根据不同的指标(例如 CPU Reservation/Utilization 或 MEMORY Reservation/Utilization.
参考:https://docs.aws.amazon.com/AmazonECS/latest/developerguide/cloudwatch_alarm_autoscaling.html