通过数据库事件configurationAmazon EC2自动缩放

如何将Amazon EC2自动扩展configuration为基于数据库事件以编程方式创build实例?

我有一个应用程序,每个月处理几十个大文件(每个100MB)。 目前,每个月我会手动为每个文件创build一个实例,然后运行一个shell脚本来启动每个实例的处理任务,并在所有处理完成后终止实例。

我想通过configuration一个EC2自动扩展组来启动一个新的实例,当一个新的数据库logging被创build时,这表示一个新文件已经准备好被处理。 该实例将被编码,将自动连接到数据库,find新文件,将其标记为“进行中”,并开始处理它。

我控制文件被添加到系统时,所以我不必担心一些用户添加1000个文件,超过了我的EC2配额。 但是,我没有看到任何明显的方式来configuration自动缩放像这样工作。 它似乎只触发基于CPU或ELB使用情况下的实例创build。

你的观察是正确的 – 你将无法使用亚马逊自己的AutoScaling控制这种types的事件。 但是,您可以通过Amazon的CLI工具对其进行编写。

您可以通过多种方式(例如,inotify / incron,对数据库的周期性SQL查询,甚至是文件夹中的ls )来轮询文件,并通过更改Desired来创buildAmazon API请求以增加AutoScaling组的容量事件触发时的容量。

一旦作业结束,您可以让实例自动终止自身 – 通过从元数据URL获取实例ID并将其直接提供给Amazon CLI,或通过将实例设置为在closures时终止并发出shutdown -h now一旦你的处理工作完成。

我不知道你的实现的细节,所以YMMV在这里疯狂。