我已经阅读了几乎整个文档,甚至超越了AWS AS API,以了解所有AS的东西。
但是我仍然想知道(如果我想先从某人那里找到这个,那么我实际上没有使用过API)如果我的情景对AS有效。
假设我在AS组中设置了一堆工作服务器,所有工作服务器都在每个工作上工作,突然之间(我不知道,AVG CPU大于或者在另一种情况下小于80%)可以扩展或者下来。
我主要担心的是失去了当前正在进行的工作。也许用一个例子可以更好地解释这个:
考虑到这一点,我最好只使用Amazon Spot Instance / EC2 API并管理我自己的扩展,还是我缺少关于Amazon API如何判断服务器端接的内容?
老实说,我宁愿扩展到SQS等待数量,而不是服务器上的某些健康数据:
但这对AS来说似乎也不太可行。
AWS AS API也不是正确的解决方案,或者我错过了一些关于它如何工作的重要信息?
谢谢,
答案 0 :(得分:8)
经过一番搜索后,我发现有两种方法可以管理AS API或AS(一般来说是作业):
一种方法是直接从工作者本身操纵服务器的运行状况。这是很多网站所做的并且它是有效的,当您的工作人员在系统中检测到不再有作业或冗余时,它会将服务器标记为不健康。通过这种方式,AS API出现并在一段时间后自动将其关闭。
因此,使用此方法,您将在一段时间内根据您的SQS队列大小制定扩展策略(例如,每隔5分钟SQS消息超过100个添加2个服务器;每10分钟SQS消息超过500个双网容量增加50%)。缩小将由代码而不是活动策略处理。
此方法也适用于零群集,因此当您的群集未被使用时,您可以将群集一直向下移动到没有服务器,从而使其非常经济有效。
优点:
缺点:
考虑到这一点,还有第二个选择,DIY。您可以使用EC2竞价型实例和随需应变实例API根据自定义规则创建自己的AS API。这很容易解释:
优点:
缺点:
因此,对于最终用户来说,这似乎是一场更为舒适的战斗。我个人正在考虑这两个,并且已经创建了一个可以为我工作的小型自托管服务器池,但同时我很想尝试让它在AWS自己的API上工作。
希望这有助于人们,
编辑:请注意,使用这两种方法之一,您仍然需要一个功能来预测您应该如何出价,因此您需要在您的专色类型(EC2类型)上调用出价历史记录API并计算如何出价。
另一个编辑:自动检测系统冗余的另一种方法是检查SQS队列的空响应度量标准。这是您的工作人员ping了队列并且没有收到任何响应的次数。如果您在应用程序中使用工作期间的独占锁定,这非常有效。
答案 1 :(得分:1)
我遇到了同样的问题,我和一位与我谈过终止保护的亚马逊人谈过。 实际上,如果某个实例已激活终止保护,则无法终止。触发缩小比例时,应用程序将从自动缩放组中删除,但不会终止。 要终止它,您必须禁用终止保护,然后终止它(例如,您可以在作业结束时执行此操作)。
总之,你要做的是:您可以使用AWS API完成所有这些工作。