aws::applicationautoscaling的cdk构造库

aws-cdk.aws-applicationautoscaling的Python项目详细描述


AWS自动缩放构造库


Stability: Stable


application autoscaling用于为所有 扩展EC2实例以外的服务。例如,您将使用这个 扩展ecs任务、dynamodb容量、现货车队规模等。

作为cdk用户,您可能不必与这个库交互 直接;相反,其他构造库将使用它来 为自己的结构提供自动缩放功能。

本文档将描述一般的自动缩放功能和概念; 您的特定服务可能只提供其中的一部分。

自动缩放基础

资源可以提供一个或多个属性来自动缩放,通常 表示基础服务的某个容量维度。例如, dynamodb表提供了 表本身及其全局二级索引,ECS服务提供 rds aurora集群自动调整其任务计数,提供对其 副本计数,等等。

为属性启用自动缩放时,可以指定最小值和 容量的最大值。自动调整响应度量的策略 永远不会高于或低于指示的容量(但已计划 缩放操作可能,请参见下文)。

有三种方法可以扩展您的容量:

  • 响应度量(也称为步骤缩放);例如,您 如果集群中的CPU使用率开始上升,可能需要缩小规模, 当它再次下降时放大。
  • 尝试在给定值周围保留某个度量 目标跟踪缩放);您可能希望自动缩放到 保持你的CPU使用率在50%左右。
  • 按计划执行;您可能需要围绕流量组织缩放 你所期望的流量,通过在早上扩展和在 傍晚。

自动缩放的一般模式如下:

constcapacity=resource.autoScaleCapacity({minCapacity: 5,maxCapacity: 100});// Enable a type of metric scaling and/or schedule scalingcapacity.scaleOnMetric(...);capacity.scaleToTrackMetric(...);capacity.scaleOnSchedule(...);

阶跃标度

这种类型的缩放以确定的步骤进行缩放 配置,以响应度量值。例如,您的扩展策略 要根据CPU使用情况进行扩展,可能如下所示:

 Scaling        -1          (no change)          +1       +3
            │        │                       │        │        │
            ├────────┼───────────────────────┼────────┼────────┤
            │        │                       │        │        │
CPU usage   0%      10%                     50%       70%     100%

(注意,这不一定是推荐的扩展策略,但是 一个可能的。您必须确定哪些阈值适合您)。

您可以这样配置:

capacity.scaleOnMetric('ScaleToCPU',{metric: service.metricCpuUtilization(),scalingSteps:[{upper: 10,change:-1},{lower: 50,change:+1},{lower: 70,change:+3},],// Change this to AdjustmentType.PercentChangeInCapacity to interpret the// 'change' numbers before as percentages instead of capacity counts.adjustmentType: autoscaling.AdjustmentType.CHANGE_IN_CAPACITY,});

autoscaling构造库将创建所需的cloudwatch警报和 为您自动调整策略。

目标跟踪缩放

这种类型的缩放缩放是为了保持度量(通常 表示利用率)。这种缩放是 通常,服务严重依赖于您可以使用的度量,因此 不同的服务在这里有不同的方法来建立目标跟踪 缩放比例。

以下示例配置dynamodb表的读取容量 大约60%的利用率:

constreadCapacity=table.autosScaleReadCapacity({minCapacity: 10,maxCapacity: 1000});readCapacity.scaleOnUtilization({targetUtilizationPercent: 60});

计划缩放

这种缩放用于根据时间更改容量。它工作 通过改变属性的minCapacitymaxCapacity等 可用于两个目的:

  • 通过设置minCapacity高或 低的maxCapacity
  • 仍然允许常规的缩放操作完成其工作,但限制 它们可以扩展的范围(通过设置minCapacitymaxCapacity但随着时间的推移,它们的范围会改变)。

可以使用以下计划表达式:

  • at(yyyy-mm-ddThh:mm:ss)——在特定时间点缩放
  • rate(value unit)——每分钟/小时/天缩放一次
  • cron(mm hh dd mm dow)——按任意计划缩放

其中,cron表达式是最有用的,但也是最有用的 很复杂。计划表示为cron exp表达。Schedule类有一个帮助构建cron表达式的cron方法。

下面的例子在早上扩展舰队,让自然 夜间缩放接管:

constcapacity=resource.autoScaleCapacity({minCapacity: 1,maxCapacity: 50,});capacity.scaleOnSchedule('PrescaleInTheMorning',{schedule: autoscaling.Schedule.cron({hour:'8',minute:'0'}),minCapacity: 20,});capacity.scaleOnSchedule('AllowDownscalingAtNight',{schedule: autoscaling.Schedule.cron({hour:'20',minute:'0'}),minCapacity: 1});

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java GridBagLayout不填充区域   java Memozied Fibonacci未运行与常规Fibonacci解决方案   Java Web启动未启动问题   Java中异常和if-then的区别   java从命令提示符运行批处理文件获取错误   socket在Java中验证SSL证书的公共名称   如何在JAVA中检查字符串数组中的相等字   用java语言将音频文件转换成文本文件的语音识别   java为什么foo(1,2,3)没有传递给varargs方法foo(对象…)作为整数[]   java通过蓝牙将奇怪的数据从Arduino传输到Android   java ContainerRequestFilter获取空entitystream   java如何从安卓 studio中删除不兼容类型错误   基本Java错误   在Spring引导中使用REST API时发生java错误   javascript通过从SQL查询派生的URL打开页面