2010-02-19 21 views
8

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

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

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

关于EC2,我不知道我是否可以做到这一点。人们是否将数据保存在本地进行分析,并且只有在大型仿真作业运行时才使用EC2?

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

回答

2

我们创建了一个基线,custom AMI与我们知道我们将始终需要在AMI上的所有程序。

存储在外部存储(我们使用Maven仓库,但你可以使用任何与您的环境中工作以及我们开发(不断更新)软件。

然后,我们火了我们的自定义AMI的一切我们需要它,部署最新版的Maven,从软件的,我们是好去

所以工作流程是:

设置

有东西创建自定义AMI我们总是需要

持续

软件开发本地 部署二进制文件到外部存储设备(在我们的例子Maven仓库)的定制AMI的 火起来了多个实例需要 将外部存储中的二进制文件复制到每个实例中 在每个实例上运行

+0

感谢分享。所以基本上,你会保留一个本地(非亚马逊)的数据副本,也可以在本地开发(非亚马逊),但在亚马逊上运行实验? – signalseeker 2010-02-19 17:39:55

+0

我们的业务不是实验,但基本上就是我们所做的。部分应用程序包括非常大的税表和规则。我们在自己的网络中维护它们,并在费率或规则发生变化时(通常每个月底午夜)将更新推送到亚马逊。 – 2010-02-19 19:44:57

0

I-slash-我们有一些经验来处理您尝试执行的操作。埃里克j说的基本上总结了它。但请允许我重申,

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

  2. 建立一个自定义的AMI; (a)在EC2机器上签出您的代码库。 (b)安装该机器上的所有代码依赖关系。 (c)将图像保存在s3上。

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

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

+0

谢谢。因此,重要的一点是,所有的开发/分析都是在亚马逊网站上进行的,一旦您准备好运行实验,就可以在自定义ec2集群上进行设置。 – signalseeker 2010-03-01 17:33:32