【问题标题】:Getting started with Django on Amazon Web Services [closed]在 Amazon Web Services 上开始使用 Django [关闭]
【发布时间】:2011-05-28 04:34:12
【问题描述】:

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

我计划在初学者中使用 EC2 和 EBS。

我正在寻找一些东西:

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

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

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

补充几点:

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

谢谢!

【问题讨论】:

  • 一个 AMI 只是一个 ox Xen 虚拟机,你可以在那里获得一个完整的 linux 操作系统,并且在上面设置任何东西都类似于在任何 linux 服务器上设置它。从您自己开始是明智的,因为 1)您知道它是如何设置的,2)您知道预配置的 AMI 作者没有放入任何后门或 rootkit。
  • 另外,需要注意的是,管理方面的进展往往比其他计算领域慢得多,2 年在 Web 管理方面确实是很短的时间(在 API 稳定性和编程方面没有那么多)。
  • 最后这在 serverfault 上可能比 stackoverflow 更好。
  • @ewanm89:谢谢。我想知道我是否应该问 SF 而不是 SO,不确定。无论如何,为什么不发布您的 cmets 作为答案?
  • 如果是服务器故障,我可能会...

标签: python django amazon-ec2 amazon-web-services amazon-ebs


【解决方案1】:

这里的 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 应该是您的默认部署工具。是的,你也可以在这里使用它。

【讨论】:

  • 值得注意的是,最高实例是机器上运行的唯一 VM(除了 Xen 的 dom0、hypervisor),因此根本没有太多的虚拟化税。
【解决方案2】:

您可以按照官方文档设置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/

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

【讨论】:

    【解决方案3】:

    此存储库旨在准确解决此问题 - 为可部署到 AWS ElasticBeanstalk 上的基本 django 项目提供参考实现。

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

    它有:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-28
      • 2014-05-26
      • 1970-01-01
      • 2020-11-26
      • 2011-11-25
      • 1970-01-01
      • 2015-11-13
      相关资源
      最近更新 更多