在amazon ec2 / S3上开发数字运算应用程序的工作流程

时间:2010-02-19 17:11:35

标签: amazon-s3 amazon-ec2 machine-learning cloud data-analysis

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

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

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

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

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

2 个答案:

答案 0 :(得分:2)

我们创建了一个基线custom AMI,其中包含我们在AMI上已经需要的所有程序。

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

然后我们用我们需要的东西启动我们的定制AMI,从Maven部署最新版本的软件,我们很高兴。

所以工作流程是:

<强>设置

使用我们始终需要的东西

创建自定义AMI

<强>持续

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

答案 1 :(得分:0)

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

  1. 在始终处于启动状态的服务器上设置代码存储库。我们使用颠覆。这个服务器不一定是ec2机器,或者也可以是ec2。你的选择。

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

  3. 下次使用AMI启动保存在1.执行实验,根据需要更改代码,在subversion中检查更改,以便在您返回时将其保存在那里。

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