簡體   English   中英

基於 SQS 隊列大小的自動縮放

[英]Autoscale based on SQS queue size

我已經將這些命令放在一起,以根據 SQS 隊列大小自動擴展 EC2 實例。 我已經運行了所有命令,我的隊列有 10 條消息,並且沒有啟動一個實例。

我想弄清楚,我的 cloudwatch 警報正在收聽什么 SQS 隊列? 也感謝任何幫助識別問題的幫助!

### Create Autoscaling Policy ###

aws autoscaling create-launch-configuration --launch-configuration-name my-lc --image-id ami-551c6d30 --instance-type m1.small

aws autoscaling create-auto-scaling-group --auto-scaling-group-name my-asg --launch-configuration-name my-lc --availability-zones "us-east-1a" "us-east-1c" --max-size 10 --min-size 0 --desired-capacity 0

# Scale up policy
aws autoscaling put-scaling-policy --policy-name my-sqs-scaleout-policy --auto-scaling-group-name my-asg --scaling-adjustment 1 --adjustment-type ChangeInCapacity

# Scale down policy
aws autoscaling put-scaling-policy --policy-name my-sqs-scalein-policy --auto-scaling-group-name my-asg --scaling-adjustment -1 --adjustment-type ChangeInCapacity

# Alarm to scale up
aws cloudwatch put-metric-alarm --alarm-name AddCapacityToProcessQueue --metric-name ApproximateNumberOfMessagesVisible --namespace "AWS/SQS" --statistic Average --period 120 --threshold 3 --comparison-operator GreaterThanOrEqualToThreshold --dimensions Name=QueueName,Value=my-queue --evaluation-periods 2 --alarm-actions arn:aws:autoscaling:us-east-1:850082592395:scalingPolicy:6408b62d-9363-4252-a88c-5ffab08a8cb5:autoScalingGroupName/my-asg:policyName/my-sqs-scaleout-policy

# Alarm to scale down
aws cloudwatch put-metric-alarm --alarm-name RemoveCapacityFromProcessQueue --metric-name ApproximateNumberOfMessagesVisible --namespace "AWS/SQS" --statistic Average --period 300 --threshold 1 --comparison-operator LessThanOrEqualToThreshold --dimensions Name=QueueName,Value=my-queue --evaluation-periods 2 --alarm-actions arn:aws:autoscaling:us-east-1:850082592395:scalingPolicy:4771ea64-2ebf-45ef-9328-50e058dc68b7:autoScalingGroupName/my-asg:policyName/my-sqs-scalein-policy

# Verify cloudwatch alarms
aws cloudwatch describe-alarms --alarm-names AddCapacityToProcessQueue RemoveCapacityFromProcessQueue

# Verify scaling policy
aws autoscaling describe-policies --auto-scaling-group-name my-asg

# Verify instances autoscaled
aws autoscaling describe-auto-scaling-groups --auto-scaling-group-name my-asg

AWS 文檔指出:

Amazon Simple Queue Service 每 5 分鍾向 CloudWatch 發送一次數據。

此外,您還指定了多個時間段內的平均指標。 因此,將 Amazon SQS 指標發送到 Amazon CloudWatch 需要幾個 5 分鍾的時間段。

度量周期(120 秒)可能太短而無法從 SQS 接收多個更新,從而導致INSUFFICIENT_DATA錯誤。

首先嘗試使用Maximum設置觸發警報並使用時間段進行播放。 一旦警報成功觸發,請使用閾值以獲得所需的行為。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM