关于在EC2 / S3上部署数据处理应用程序的文章很多,但我想知道,开发此类应用程序的典型工作流程是什么?
假设我有一个1 TB的时间序列数据,我已经设法将其存储在S3上。我如何编写应用程序并进行交互式数据分析以构建机器学习模型,然后编写大型程序来测试它们?换句话说,如何在这种情况下建立开发环境?我是否启动EC2实例,在其上开发软件并保存我的更改,并在每次我想做一些工作时关闭?
通常,我启动R或Pylab,从本地驱动器读取数据并进行分析。然后,我根据该分析创建应用程序,并将其放在该数据上。
在EC2上,我不确定我是否可以这样做。人们是否将数据保存在本地以供分析,并且只有在运行大型模拟作业时才使用EC2?
我很想知道其他人在做什么,特别是那些拥有基于EC2 / S3的整个基础架构的初创公司。
答案 0 :(得分:2)
我们创建了一个基线custom AMI,其中包含我们在AMI上已经需要的所有程序。
我们开发的软件(并且不断更新)存储在外部存储上(我们使用Maven存储库,但您可以使用任何适合您环境的软件。
然后我们用我们需要的东西启动我们的定制AMI,从Maven部署最新版本的软件,我们很高兴。所以工作流程是:
<强>设置强>
使用我们始终需要的东西
创建自定义AMI<强>持续强>
在本地开发软件 将二进制文件部署到外部存储(在我们的示例中为Maven存储库) 根据需要启动多个自定义AMI实例 将二进制文件从外部存储复制到每个实例 在每个实例上运行
答案 1 :(得分:0)
I-slash-我们有一些经验在做你想要做的事情。 Eric J.所说的基本上总结了一下。但请允许我重申一下,
在始终处于启动状态的服务器上设置代码存储库。我们使用颠覆。这个服务器不一定是ec2机器,或者也可以是ec2。你的选择。
通过以下方式构建自定义AMI; (a)在EC2机器上检查您的代码库。 (b)在此计算机上安装所有代码依赖项。 (c)在s3上保存图像。
下次使用AMI启动保存在1.执行实验,根据需要更改代码,在subversion中检查更改,以便在您返回时将其保存在那里。
另一种方法是使用EBS卷。每次启动EC2实例时,都要将EBS卷附加到该实例。此卷可以保存您的代码以及在云上保留所需的任何其他内容!