8

关于在 EC2/S3 上部署数据处理应用程序的文章很多,但我想知道,开发此类应用程序的典型工作流程是什么?

假设我有一个 1 TB 的时间序列数据,我已经设法将它存储在 S3 上。我将如何编写应用程序并进行交互式数据分析以构建机器学习模型,然后编写大型程序来测试它们?换句话说,在这种情况下如何设置开发环境?我是否要启动 EC2 实例,在其上开发软件并保存我的更改,然后每次我想做一些工作时关闭?

通常,我启动 R 或 Pylab,从本地驱动器读取数据并进行分析。然后,我根据该分析创建应用程序,并让它在该数据上松散。

在 EC2 上,我不确定我是否可以这样做。人们是否将数据保存在本地进行分析,并且仅在需要运行大型模拟作业时才使用 EC2?

我很想知道其他人在做什么,尤其是那些拥有基于 EC2/S3 的整个基础架构的初创公司。

4

2 回答 2

2

我们创建一个基线自定义 AMI,其中包含我们知道在 AMI 上一直需要的所有程序。

我们开发(并不断更新)的软件存储在外部存储中(我们使用 Maven 存储库,但您可以使用任何适合您的环境的东西。

然后,我们用我们需要的一切启动我们的自定义 AMI,从 Maven 部署我们软件的最新版本,然后我们就可以开始了。

所以工作流程是:

设置

使用我们始终需要的东西创建自定义 AMI

进行中

在本地开发软件 将二进制文件部署到外部存储(在我们的例子中是 Maven 存储库) 根据需要启动自定义 AMI 的多个实例 将二进制文件从外部存储复制到每个实例 在每个实例上运行

于 2010-02-19T17:25:49.380 回答
0

I-slash-我们有一些经验来做你想做的事情。Eric J. 所说的基本上总结了这一点。但请允许我重申,

  1. 在始终运行的服务器上设置代码存储库。我们使用颠覆。该服务器不必是 ec2 机器,或者也可以是 ec2。你的选择。

  2. 通过以下方式构建自定义 AMI;(a) 在 EC2 机器上检查您的代码库。(b) 在这台机器上安装所有代码依赖项。(c) 将图像保存在 s3 上。

  3. 下次启动时使用保存在 1 中的 AMI。做你的实验,根据需要更改代码,检查 subversion 中的更改,以便当你回来时你将它保存在那里。

  4. 另一种方法是使用 EBS 卷。每次启动 EC2 实例时,将您的 EBS 卷附加到它。该卷可以保存您的代码以及您需要在云上持久保存的任何其他内容!

于 2010-02-28T01:43:41.347 回答