23

我开始将一些应用程序迁移到 Amazon Web Services。我的应用程序是 Python/Django 应用程序,在 MySQL 上运行。

我计划使用 EC2 和 EBS 作为初学者。

我正在寻找一些东西:

  1. 一个很好的分步教程,解释了如何在 AWS 上部署 Django。我环顾四周,但大多数教程都是 2 年前的,所以我担心它们已经过时了。

  2. 我试图了解,我应该从哪个 AMI 开始?我知道有一个预配置了 Django 优点的 BitNami AMI,但我看到很多其他消息来源说你应该从一个基本的(干净的)linux 盒子开始,然后自己安装所有东西。为什么?

  3. 还有其他重要的事情我应该考虑吗?我的系统管理经验很少(这些应用程序目前在 WebFaction 上),所以我不确定我应该考虑什么。

一些额外的点:

  • 我计划在同一个 EC2 实例上运行多个应用程序,我认为这可能吗?
  • 我现在正在使用 virtualenv 来分隔各种应用程序,我假设我可以继续在 EC2 实例上做同样的事情吗?

谢谢!

4

3 回答 3

9

EC2 在这里并没有什么“特别”之处。它只提供裸(或通常从自定义 AMI 预配置)系统实例 - 您可以访问整个虚拟化系统,因此您可以安全地自行破坏。将其视为特定的 VPS。

您必须自己准备部署,这并不难 - 只需按照文档进行即可。我建议使用基本的 linux 发行版运行并添加所需的东西,而不是依赖一些预配置的图像。至于你的问题:

  1. 您需要做两件事:设置您的实例(帐户、所需软件、其他自定义设置,因此一些 linux 管理指南应该很方便)和准备 django 应用程序部署(部署 python 代码,连接到 Web 服务器)。对于后者,可以在此处应用 django 的一般部署说明(http://docs.djangoproject.com/en/dev/howto/deployment/)。

  2. 从 AMI 开始,使用您最喜欢的 linux 发行版,然后从其存储库中添加必要的软件。

  3. 尽快为您的所有数据挂载和使用 EBS。重新启动后,EC2 实例将清除其所有数据,因此请为此做好准备。对 AMI 进行系统快照,以便在发生故障时快速恢复。

是的,您可以在一个实例上部署多个应用程序,但请注意 EC2 实例是虚拟化的(具有相当高的“虚拟化税”imo,尤其是对于较小的实例),因此您可能会遇到一般性能问题。假设您需要在一段时间后迁移到更大的实例/多个实例。

Virtualenv 应该是您的默认部署工具。是的,你也可以在这里使用它。

于 2010-12-20T12:08:08.570 回答
1

您可以按照官方文档设置 Amazon ec2 实例:http ://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance_linux.html

您应该从熟悉的 AMI 开始。例如,如果您使用 Ubuntu,您可以只使用推荐页面中的 Ubuntu AMI 之一。我没有使用 BitNami 服务器,我的 Django 站点部署顺利。

如果您使用的是 Apache 服务器,请按照官方 Django 文档中的说明进行操作: https ://docs.djangoproject.com/en/1.5/howto/deployment/wsgi/modwsgi/

我尝试了很多博客,但正如你所说,它们已经过时了。只需使用官方文档,它将为您节省大量时间。

于 2013-10-30T19:04:08.483 回答
0

这个 repo 旨在准确解决这个问题 - 为可以部署到 AWS ElasticBeanstalk 上的基本 django 项目提供参考实现。

https://github.com/pushkarparanjpe/django-awsome

它有:

  • 静态资产
  • 数据库后端
  • django 贡献管理员

只需配置您的 EBS 环境,克隆存储库并部署!

于 2016-03-04T08:35:32.460 回答