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

发布于 2024-08-21 20:09:12 字数 403 浏览 6 评论 0原文

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

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

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

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

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

Much has been written about deploying data crunching applications on EC2/S3, but I would like to know, what is the typical workflow for developing such applications?

Lets say I have a 1 TB of time series data to begin with and I have managed to store this on S3. How would I write applications and do interactive data analysis to build machine learning models and then write large programs to test them? In other words, how does one go about setting up a dev environment in such a situation? Do I boot up an EC2 instance, develop software on it and save my changes, and shutdown every time I want to do some work?

Typically, I fire up R or Pylab, read data from my local drives and do my analysis. Then I create applications based on that analysis and let it loose on that data.

On EC2, I am not sure if I can do that. Do people keep data locally for analysis and only use EC2 when they have large simulation jobs to run?

I am very curious to know what other people are doing, especially start ups who have their entire infrastructure based on EC2/S3.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

幽梦紫曦~ 2024-08-28 20:09:12

我们创建一个基线,自定义 AMI AMI 上已经包含我们知道始终需要的所有程序。

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

然后,我们使用我们需要的一切启动自定义 AMI,部署最新的我们已经从 Maven 获取了我们软件的版本,

所以工作流程是:

设置

使用我们始终需要的内容创建自定义 AMI

正在进行

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

We create a baseline, custom AMI with all programs that we know we'll always need already on the AMI.

The software we develop (and update constantly) is stored on external storage (we use a Maven repository, but you could use anything that works well with your environment.

We then fire up our custom AMI with everything we need on it, deploy the latest version of our software from Maven, and we're good to go.

So the workflow is:

Setup

Create a custom AMI with stuff we'll always need

Ongoing

Develop software locally
Deploy binaries to external storage (Maven repository in our case)
Fire up multiple instances of custom AMI as needed
Copy binaries from external storage to each instance
Run on each instance

最舍不得你 2024-08-28 20:09:12

我-斜杠-我们在做你想做的事情方面有一些经验。
Eric J.所说的基本上概括了这一点。但请允许我重申一下,

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

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

  3. 下次启动时,AMI 保存在 1 中。进行实验,根据需要更改代码,在 subversion 中检查更改,以便当您回来时,它已保存在那里。

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

I-slash-We have some experience doing the kind of thing you are trying to do.
What Eric J. said basically sums it up. But allow me to reiterate,

  1. Set up a code repository on a server which is always up. We use subversion. This server need not be an ec2 machine, or very well could be an ec2 as well. Your choice.

  2. Build a custom AMI by;
    (a) Checking out your code base on an EC2 machine.
    (b) Installing all code dependencies on this machine.
    (c) Save image on s3.

  3. Next time boot with AMI saved in 1. Do your experiments, change code as you wish, check changes back in subversion so that when you come back you have it saved there.

  4. An alternative is to use an EBS volume. Every time you start an EC2 instance , attach your EBS volume to it. This volume can hold your code and anything else that you need to persist on cloud!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文