当第一个实例达到内存或CPU的85%时启动第二个实例AWS,

时间:2018-07-09 22:08:31

标签: amazon-web-services powershell amazon-ec2 amazon-cloudwatch

我有以下情况:

我在AWS上有两个Windows服务器,它们通过IIS运行应用程序。对于应用程序的特殊性,它们可以在II上使用HTTP负载平衡。

为降低成本,我被问到,第二个实例仅在第一个实例达到90%的CPU使用率或85%的内存使用时才启动。

在我的区域(sa-east-1)中,仍然没有Auto Scaling组。

最初,我创建了一个cloudwatch事件来启动第二个实例,当它首先检测到CPU使用率很高时。问题在于,Cloudwatch本身仍不监视内存,到目前为止,我在自定义此类监视方面遇到困难。

基于上述条件,我是否还有其他方法可以启动第二个实例?

由于第一个实例始终处于运行状态,因此它可能是Windows级别的某种Powershell,可以检测到较高的内存使用量并启动第二个实例?通过我已经拥有的powershell启动实例的脚本,我只需要有关如何检测高内存使用事件以从中启动第二个实例的帮助。

或某些这样做的第三方应用程序...

谢谢!

1 个答案:

答案 0 :(得分:1)

Auto Scaling组sa-east-1中可用,因此请使用它们

选择要缩放的 one 指标(内存 OR CPU),请不要同时选择两者,否则在进行缩放时会产生混乱一个指标高而另一个指标低。

如果您希望监视CloudWatch中的Windows内存,请参阅:Sending Logs, Events, and Performance Counters to Amazon CloudWatch - Amazon Elastic Compute Cloud

此外,请谨慎使用诸如“内存使用量”之类的指标来衡量启动更多实例的需求。某些系统使用垃圾回收来释放内存,但仅在可用内存不足(而不是连续)时释放。

此外,请确保您的应用程序能够跨多个实例运行,例如将其置于负载均衡器之后(取决于应用程序的实际功能)。