0

我们有一些用于从互联网收集数据的爬虫。EC2 spot 对我们的应用来说是一个非常便宜的解决方案。

在我们的例子中,我们可以通过以下步骤设置爬虫:

  1. 从 AMAZON 快速启动模板启动 ami
  2. 安装依赖库
  3. 将爬虫应用程序发送到实例
  4. 为我们的爬虫设置启动器,让它在启动完成后工作
  5. 将实例设为 ami

但是当爬虫需要更新时,我们需要重复第 3 步。它会影响其他设置,例如 Auto Scaling 或其他 Spot 实例请求脚本中的“ami-id”。

'ami' 中的应用程序管理是一个部署问题,因此我们需要建议以使其尽可能简单。现在,还有另一种管理方式。我们使用源码管理工具,部署步骤是这样的:

  • 3 来自源代码仓库的 git clone。
  • 3.1 从源代码编译应用程序
  • 3.2 移除之前的构建
  • 3.3 安装最新版本
  • 4 启动器总是在唤醒爬虫之前从最新版本重建爬虫。

新方法防止 ami-id 更改,但每次都必须检查源代码。最后,获取源代码需要更多时间(源代码每天都在增长)

您如何在 ami 上管理您的工件?我不确定总是从源代码构建是最佳选择。它只是克服了一些部署问题,但没有解决爬虫实例运行后的更新问题。

4

1 回答 1

1

好吧,如果您的爬虫没有在一天中的每个小时更新,那么我认为您应该,write some script即您将同时使用您以前和新的想法,为此编写脚本以从您的服务器检查当前版本是否是最新的然后go normal爬行如果那个更旧move to the GIT Clone stuff,那么如果你不经常修改爬虫,你可以获得高效的性能。

实际上,您将在大多数情况下减少重建,因为当您描述重建过程时,您必须无缘无故地执行这些步骤

希望这可以帮助你

于 2012-07-09T07:23:19.823 回答