我有一个Python科学模型,它调用一些C代码并使用numpy,scipy和许多地理分析模块。我想在EC2上部署它,但我对EC2还不太了解。
我已经检查过,在设置了从StarCluster AMI派生的AMI后,我可以使用StarCluster包来部署我的堆栈。这些已经有numpy和scipy以及ipython,所以我所要做的就是添加地理模块。
我的计划是编写一个独立的GUI,在客户的机器上运行,并确保他们的输入对我的模型有效。然后,独立GUI将最多约10 GB的压缩档案发送到FTP位置。然后他们登录我在EC2上运行的网页,在那里他们配置运行属性(实例数,模型运行数)。该网页启动一个脚本,该脚本在客户指定的大小集群上完成客户的工作。后处理器处理模型输出并写入结果网页和图形,这些网页和图形最初受密码保护,仅供客户查看。我的模型运行包括可能需要5分钟到3个小时的单独迭代。
任何人都可以提供有关此型号理想设置的建议吗?我想我可以弄清楚它的科学部分,但我不知道运行网络界面的起点是什么......
谢谢
答案 0 :(得分:2)
有趣的项目!
将模块添加到您在AWS EC2上部署的AMI可以通过pip完成。首先,您需要SSH访问您的实例。关于这方面的文档在这里: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html 然后,如果你还没有安装它,你可以安装pip&你的附加包&模块如下:
sudo apt-get install -y python-pip
sudo pip install numpy (already installed so no need for this)
sudo pip install scipy (same as above)
Ubuntu& Debian的 sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
Ubuntu 12.10和Debian 7.0中的版本符合当前的Scipy堆栈规范。用户可能还想为额外的Scipy包添加NeuroDebian存储库。 Fedora的 sudo yum install numpy scipy python-matplotlib ipython python-pandas sympy python-nose
Fedora 17及更早版本的用户应该使用pip升级IPython: sudo pip install --upgrade ipython (上面的信息通过scipy文档找到:http://www.scipy.org/install.html)
至于你对GUI& amp;的计划大文件上传,请查看AWS S3(虽然这有一些限制),用于文件存储和根据您希望推动解决方案的程度,您可以使用分块文件上传或流式传输类似于这些解决方案的多部分请求进行文件传输:
https://github.com/blueimp/jQuery-File-Upload/wiki/Chunked-file-uploads
https://devcenter.heroku.com/articles/paperclip-s3
https://github.com/heiflo/play21-file-upload-streaming
https://github.com/netty/netty/issues/845
https://github.com/playframework/playframework/pull/884
https://github.com/floatingfrisbee/amazonfileupload
http://blog.assimov.net/blog/2011/04/03/multi-file-upload-with-uploadify-and--carrierwave-on-rails-3/
(快速搜索“chunked file uploads github”或“chunked file uploads google code”应该会在可用代码和详细信息方面提供很多选项。)
但是,文件上传/传输的更简单方向可能是查看以下解决方案:
http://www.bucketexplorer.com/be-download.html
https://forums.aws.amazon.com/thread.jspa?messageID=258228&tstart=0
https://forums.aws.amazon.com/thread.jspa?messageID=257781&tstart=0
http://www.jfileupload.com/products/js3upload/index.html
http://codeonaboat.wordpress.com/2011/04/22/uploading-a-file-to-amazon-s3-using-an-asp-net-mvc-application-directly-from-the-users-browser/
无论如何,您需要确保EC2实例和/或S3存储桶上的环境配置为允许大文件上传和处理。例如,您的AMI php版本需要编译和放大通过php.ini设置上传超过特定大小的文件 - 您还需要注意超时 - 而且您可能需要一个64位AMI以及一个大型EBS来为所有这些提供支持。
对于GUI的不太复杂的前端组件,jQuery或node.js是很好的起点。还有大量的代码包和有关Github或AWS EC2 / S3论坛的文档,如下所示:
https://github.com/josegonzalez/upload
不知道您的具体要求,计划和时间/预算限制,这是我能给出的最多建议。但是,请随时回复此主题或直接ping我与任何其他问题。