所以,我一直在玩我的自动缩放configuration和我的Cloudwatch警报,试图保持所有的实例呜呜,但不咆哮。
我似乎无法摆脱一个恒定的溜溜球。 CPU使用率上升,引入一个实例,CPU使用率下降,杀死一个实例。 冲洗并重复。

目前,我正在以平均CPU> = 40%的3 x 1分钟间隔进行报警。 也许我可以基于其他东西? CPU是一个棘手的一个,因为当这个图表尖峰(高),我可以看到一些实例与空闲的CPU,所以平均正在提出一个单一的实例。
我发现有些人在得到200的时候会得到502。 显然,我希望这是一致的,并停止这一次的尖峰。
提前致谢。
编辑1:我已经调整了Cloudwatch指标为20%的CPU超过2分钟,还发现一个nginx错误,也可能归因于一些额外的负载。 当前graphics如下所示。

编辑2:负载监控是好多了。 请参阅下面的负载警报。 我收到警报的频率很低,一切都运行得更好。
这就是我每分钟都在运行的东西。
/usr/local/bin/aws cloudwatch put-metric-data --namespace="NS" --metric-name="GroupLoad" --value `cat /proc/loadavg | awk '{print $1}'` --dimensions AutoScalingWebGroup=NS-WebGroup

基于CPU的AutoScaling而不是尝试服务器负载 。
AWS AutoScaling可以在任何CloudWatch指标上运行,您可以编写自己的自定义CloudWatch指标。
有关AutoScaling如何工作的更多信息: http : //docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/as-scale-based-on-demand.html
http://aws.amazon.com/blogs/aws/amazon-cloudwatch-user-defined-metrics/
CloudWatch指标在名称空间范围内,最多可以进一步限定10个维度。 例如,可以跟踪一对应用程序(“App1”和“App2”)的延迟,同时保持相互隔离的值:
$ mon-put-data -namespace App1 -metric-name Latency -value 104 $ mon-put-data -namespace App2 -metric-name Latency -value 120