在AWS EC2上部署Pyramid应用程序

时间:2014-04-25 16:35:37

标签: python amazon-web-services amazon-ec2 pyramid

我已经完成了一项任务:将我已存在的Pyramid应用程序部署到我们的EC2 Linux服务器上。我想以最小的压力和错误来做这件事,特别是考虑到我对AWS完全不熟悉。

到目前为止我做了什么:

  • 设置我可以SSH进入的EC2实例。
  • 在本地开发我的Pyramid应用程序
  • 并且,我们使用GitHub对应用程序进行版本控制。

我们正在使用:Pyramid(最新),以及Python 2.7.5和Postgresql(通过SQLAlchemy和Alembic。)

确保正确部署我的应用程序的基本高级别步骤列表是什么?

如果有的话,Elastic Beanstalk会发挥作用吗?

并且,考虑到我的项目目前是在Git回购中,必须采取哪些步骤或考虑因素才能适应这种情况?

我不是在寻找有关如何调整我的设置或类似内容的意见。我正在寻找一个无可辩驳的,易于理解的步骤或考虑因素,以最基本的形式部署我的应用程序。此服务器仅用于开发目的,因此我不是在寻找一个完整的解决方案。

我已经为Django项目研究了这个主题,坦率地说,我对不同可能的选项有点不知所措。我试图把这种情况归结为最小的组件。

我感谢时间和帮助。

3 个答案:

答案 0 :(得分:2)

部署到EC2服务器就像部署到任何其他Linux服务器一样。

如果您想将其置于负载均衡器之后,您可以完全记录下来。

您还可以部署到Elastic Beanstalk。在EC2是普通Linux服务器的情况下,Beanstalk更像是部署到环境,只需将所有git更改推送到S3 repo,然后构建并部署到beanstalk上。

意思是没有服务器设置,没有配置(除了非常基础)以及您推送到S3的所有新更改,构建并更新可能已在beanstalk上启动的应用程序的每个版本。

您不想在EC2上托管您的数据库服务器,使用Amazons RDS数据库服务器,这很简单,大约需要两分钟来设置和配置。

就文件存储而言,将所有内容移至S3。

EC2和beanstalk不应用于任何形式的存储。

答案 1 :(得分:1)

我建议运行两个实例并使用Elastic Load Balancer。

永远不要在单个EC2实例上运行任何重要的东西,EC2实例不耐用,它们可能会突然消失,并且会记录您存储的任何数据。

其他所有内容都应该像Pyramid Cookbook描述一样。

答案 2 :(得分:0)

虽然在Pyramid Cookbook中没有将金字塔应用程序部署到AWS的具体方法,但还有其他一些方法可以提供部分解决方案。