Подтвердить что ты не робот

Начало работы с Django на веб-сервисах Amazon

Я начинаю переносить несколько приложений на Amazon Web Services. Мои приложения - приложения Python/Django, работающие над MySQL.

Я планирую использовать EC2 и EBS для начинающих.

Я ищу несколько вещей:

  • Хороший пошаговый учебник, объясняющий, как развернуть Django на AWS. Я осмотрелся, но большинство учебных пособий два года назад, поэтому я обеспокоен тем, что они устарели.

  • Я пытаюсь понять, с каким AMI я должен начать? Я знаю, что есть BitNami AMI, который заранее настроен с использованием Django, но я видел, как многие другие источники говорят, что вы должны начать с базовой (чистой) линейки Linux и самостоятельно установить все. Почему?

  • Есть ли еще какие-то важные вещи, о которых я должен думать? У меня очень мало опыта sysadmining (приложения в настоящее время на WebFaction), поэтому я не уверен, о чем я должен думать.

Несколько дополнительных точек:

  • Я планирую запустить несколько приложений в одном экземпляре EC2, я предполагаю, что это возможно?
  • Я использую virtualenv для разделения между различными приложениями прямо сейчас, я полагаю, что я могу продолжать делать то же самое на экземпляре EC2?

Спасибо!

4b9b3361

Ответ 1

В EC2 нет ничего особенного. Он просто предоставляет годовой (или обычно предварительно сконфигурированный из пользовательского AMI) экземпляр системы - у вас есть доступ ко всей виртуализованной системе, поэтому вы можете спокойно сломать вещи самостоятельно. Подумайте об этом как о конкретном VPS.

Вы должны сами подготовить развертывание, что не так сложно - просто следуйте документации. Я бы посоветовал работать с базовым дистрибутивом linux и добавлять необходимые вещи, чем полагаться на некоторые предварительно сконфигурированные изображения. Что касается вопросов:

  • Вам нужно сделать две вещи: настроить свой экземпляр (учетные записи, необходимое программное обеспечение, другую настраиваемую настройку, чтобы было удобно использовать руководство по администрированию Linux) и подготовить развертывание приложения django (развернуть код python, подключиться к веб-серверу). Для последнего здесь могут быть применены общие инструкции по развертыванию для django (http://docs.djangoproject.com/en/dev/howto/deployment/).

  • Начните с AMI с вашим любимым дистрибутивом linux, а затем добавьте необходимое программное обеспечение из этого репозитория.

  • Установите и используйте EBS как можно скорее для всех ваших данных. При перезагрузке экземпляр EC2 уничтожит все данные, поэтому будьте готовы к этому. Сделайте снимки системы для AMI для быстрого восстановления после сбоя.

Да, вы можете развернуть несколько приложений на одном экземпляре, но помните, что экземпляр EC2 виртуализирован (с довольно высоким "налогом виртуализации" imo, особенно для небольших экземпляров), поэтому вы можете столкнуться с общими проблемами производительности. Предположим, что через некоторое время вам понадобится выполнить миграцию в больший экземпляр/несколько экземпляров.

Virtualenv должен быть вашим инструментом развертывания по умолчанию. Да, вы также можете использовать его здесь.

Ответ 2

Вы можете ознакомиться с официальной документацией по установке экземпляра Amazon ec2: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance_linux.html

Вам следует начать с AMI, с которым вы знакомы. Например, если вы используете Ubuntu, вы можете просто использовать один из UI Ubuntu на рекомендуемой странице. Я не использовал сервер BitNami, и мой сайт Django был развернут плавно.

Если вы используете сервер Apache, просто следуйте инструкциям официального документа Django: https://docs.djangoproject.com/en/1.5/howto/deployment/wsgi/modwsgi/

Я попробовал несколько блогов, но, как вы сказали, они устарели. Просто используйте официальные документы, и это сэкономит вам много времени.

Ответ 3

Это репо предназначено для решения именно этой проблемы - предоставить ссылочную реализацию для базового проекта django, который может быть развернут на AWS ElasticBeanstalk.

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

Он имеет:

  • Статические активы
  • DB back-end
  • django contrib Admin

Просто настройте свой EBS env, клонируйте репо и разверните его!