AWS内部通过脚本或其他方式进行AWS扩展

似乎现在有很多人在使用AWS,而且我真的希望有人能够给我一个关于如何deviseEC2内可扩展系统的指针。

我尝试过search,但是我能想出的是CloudBuzz,CloudCookie,CloudIceCream,并且没有关于实际基础架构的良好文档。

我想要的是创build一个服务器集群,可以做一些计算的东西,并扩大/缩小。 但是,pipe理及其工作时间表取决于不能直接从CPU / RAM / HDD负载导出的非明显因素。

所以我想知道是否有可能调用CloudSuperScaleMe函数来简单地从内部或从云外以编程方式启动和终止一个实例。

从所有的stream行语看起来,最接近我能find的是CloudWatch和CloudElasticSomething,但它似乎是基于自动调整组来检查CPU /networking/等。 加载和,因为这些因素都不能在我的架构中被信任,所以我没有看到如何在不严重改变和定制AMI的情况下编写报警和扩展/缩放function。

Cloudwatch是AWS的“监控”服务 – 它将提供“CPU /networking/等等”。 加载“ – 这是自动缩放所要求的。 但是,您可以定义自己的自定义度量标准 ,也可以使用自动缩放。

根据本文 ,您可以使用CloudWatchlogging的数据types有一些限制。

这是我的理解(虽然我没有亲身经历),Nagios /仙人掌设置可能被configuration为执行监控,然后执行您的缩放脚本 – 除非别人可以提供一个很好的理由,我不能。

另一个也许更简单的方法(一个非常通用的版本)将是:在服务器之间build立一个消息传递层(corosync / heartbeat)它将“选举”一个主节点,并跟踪正在运行的服务器在“主节点”你跟踪你的因素进行缩放,并触发你的缩放脚本你的缩放脚本将通过添加/删除+号码需要能够:

  1. 获取实例列表(理想情况下使用来自消息传递层的数据,但是如果没有,则使用DescribeInstances)
  2. 如果添加,则调用RunInstances
  3. 如果删除,select哪个实例,并在其上调用TerminateInstances