ubuntu – 根据内存利用率自动扩展AWS EC2实例

前端之家收集整理的这篇文章主要介绍了ubuntu – 根据内存利用率自动扩展AWS EC2实例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在根据特定实例消耗的内存设置自动缩放.我浏览了 awsforums发布的链接.我能够设置我的指标并使用给定的bash脚本和相同的变量.

在弄清楚如何根据这些指标设置自动缩放时,我在google project hosting site了解了一堆bash脚本.我无法设置指标.

我怎么能进一步移动?

将内存指标记录到Cloudwatch后,您只需像对任何现有指标一样设置自动扩展.

首先,与所有AWS命令行工具一样,您需要设置(导出):

> AWS_CREDENTIAL_FILE或
> both:EC2_PRIVATE_KEY和EC2_CERT

接下来,运行以下三个命令,根据需要修改它们(这些命令只是从命令行运行 – 一次 – 而不是从cron运行).

创建启动配置:
您至少需要传递图像和实例类型,其他参数是可选的,但可能是个好主意.

as-create-launch-config
        LaunchConfigurationName  --image-id  value  --instance-type  value
       [--block-device-mapping  "key1=value1,key2=value2..." ] [--kernel  value]
       [--key  value ] [--ramdisk  value ] [--group  value[,value...] ]
       [--user-data  value ] [--user-data-file  value ]  [General Options]

例如:

as-create-launch-config config-name --image-id AMI-xxxxxxxx --instance-type m1.small --key keypair-name --group security-group-name

创建自动缩放组:
在这里,我们定义用于扩展的参数 – 实例将被启动的位置,实例数量的限制,以及将组与我们创建的配置相关联.

as-create-auto-scaling-group
        AutoScalingGroupName  --availability-zones  value[,value...]
        --launch-configuration  value  --max-size  value  --min-size  value
       [--cooldown  value ] [--load-balancers  value[,value...] ]
        [General Options]

例如:

as-create-auto-scaling-group as-group-name --availability-zones us-east-1a --launch-configuration config-name --min-size 1 --max-size 5 --cooldown 300

(您还可以指定–desired-capacity,即开始的实例数,如果它与min-size不同)

创建可扩展的策略:
在这里,我们定义触发警报时将执行的操作,并将策略与特定的自动缩放组关联.创建一个用于扩展的策略,一个用于按比例缩小.

as-put-scaling-policy
        PolicyName  --type  value  --auto-scaling-group  value  --adjustment
       value [--cooldown  value ]  [General Options]

此命令输出将策略与云监视器警报关联所需的ARN – 记下ARN.每个命令将返回一个不同的ARN – 即你将有2个ARN – 记住哪个是哪个策略.

例如:

放大:

as-put-scaling-policy HighMemPolicy --auto-scaling-group as-group-name  --adjustment=1 --type ChangeInCapacity  --cooldown 300

缩小:

as-put-scaling-policy LowMemPolicy --auto-scaling-group as-group-name  --adjustment=-1 --type ChangeInCapacity  --cooldown 300

示例返回:

POLICY-ARN arn:aws:autoscaling:us-east-1:0123456789:scalingPolicy/abc-1234-def-567

为每个案例创建Cloudwatch警报:
我们需要使用收集的数据在特定情况下触发警报,然后让警报执行适当的扩展策略.您将需要2个警报 – 一个用于上限阈值,另一个用于下限阈值.

mon-put-metric-alarm
        AlarmName  --comparison-operator  value  --evaluation-periods  value
        --metric-name  value  --namespace  value  --period  value  --statistic
       value  --threshold  value [--actions-enabled  value ] [--alarm-actions
       value[,value...] ] [--alarm-description  value ] [--dimensions
       "key1=value1,key2=value2..." ] [--insufficient-data-actions
       value[,value...] ] [--ok-actions  value[,value...] ] [--unit  value ]
        [General Options]

例如:

上限:

mon-put-metric-alarm HighMemAlarm  --comparison-operator  GreaterThanThreshold  --evaluation-periods  4 --metric-name  UsedMemoryPercent  --namespace  "AWS/EC2"  --period  60  --statistic Average --threshold  85 --alarm-actions arn:aws:autoscaling:us-east-1:0123456789:scalingPolicy/abc-1234-def-567 --dimensions "AutoScalingGroupName=as-group-name"

门槛较低:

mon-put-metric-alarm LowMemAlarm  --comparison-operator  LessThanThreshold --evaluation-periods  4 --metric-name  UsedMemoryPercent --namespace  "AWS/EC2"  --period  60  --statistic Average --threshold  60  --alarm-actions arn:aws:autoscaling:us-east-1:0123456789:scalingPolicy/bcd-2345-efg-678 --dimensions "AutoScalingGroupName=as-group-name"

在上面的示例中,我们使用度量“UsedMemoryPercent”(来自论坛脚本)并查看“平均超过60秒”.对于第一个警报,如果连续4个样本(即4分钟)的平均值超过85%,我们将触发警报(并执行操作),对于第二个警报,我们寻找“低于60%”.

好的参考包括

> http://docs.amazonwebservices.com/AutoScaling/latest/DeveloperGuide/US_SetUpASLBApp.html
> http://awsdocs.s3.amazonaws.com/AutoScaling/latest/as-qrc.pdf

使用–help运行命令以查看参数的详细信息.

猜你在找的Ubuntu相关文章