根据数据库事件配置 Amazon EC2 自动扩展

根据数据库事件配置 Amazon EC2 自动扩展

如何配置 Amazon EC2 自动扩展以根据数据库事件以编程方式创建实例?

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

我想通过配置 EC2 自动缩放组来自动执行此操作,以便在创建新数据库记录时启动新实例,表示新文件已准备好进行处理。该实例将植入代码,该代码将自动连接到数据库,找到新文件,将其标记为“进行中”,然后开始处理它。

我控制何时将文件添加到系统,因此我不必担心某些用户添加 1000 个文件并超出我的 EC2 配额。但是,我没有看到任何明显的方式来配置自动缩放以像这样工作。它似乎仅根据 CPU 或 ELB 使用情况触发实例创建。

答案1

您的观察是正确的 - 对于此类事件,您将无法使用 Amazon 自己的 AutoScaling 控件。但是,您可以通过 Amazon 的 CLI 工具编写脚本。

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

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

我不知道你的实施细节,所以这里的 YMMV 很大。

相关内容