Pregunta

¿Alguien puede dar pasos específicos sobre cómo implementar el alojamiento de un sitio web basado en Django utilizando el servicio de alojamiento Amazon EC2?

¿Es eso posible?

El código fuente de mi sitio web se puede encontrar aquí

Goolged y encontré esto artículo

Pero antes de hacer algo solo quiero obtener algunas ideas básicas sobre el alojamiento de Amazon EC2.

¿Fue útil?

Solución

Ciertamente es posible, pero parece que EC2 no es la mejor opción para usted. Para ver ejemplos de personas que lo hacen, google para "django ec2" y vea los enlaces primero y segundo. como this o this (editado porque esta pregunta es ahora el mejor resultado de google para esa consulta!)

En un sentido muy simplificado, EC2 es solo un servidor que puede alquilar por hora. Puede hacer que ejecute Windows o Linux, y luego instale Python y Django como lo haría normalmente. De hecho, probablemente hay una imagen que ya tiene preconfigurada django. ¿En qué etapa de tu proyecto estás? ¿Está investigando o se ha quedado atrapado en un problema particular con django o ec2?

ACTUALIZACIÓN: Ok, creo que lo que te confunde es que existen diferentes tipos de hosting. En un extremo, puede pagar su propio servidor físico, instalar su propio sistema operativo (como Windows o Linux), instalar su propio Python, su propio servidor web como Apache o IIS, sus propias bibliotecas de Django, su propia base de datos (como mysql), etc., y luego suba su sitio web a eso. En el otro extremo, puede pagar una cuenta en un servicio de alojamiento compartido, donde otra persona ha realizado toda la configuración del sistema operativo, el python, el servidor web, etc., y todo lo que necesita hacer es cargar el código de su sitio web. EC2 está mucho más cerca del primer extremo y probablemente sea excesivo para ti. Creo que en su caso debería estar buscando una solución más administrada.
Verificaría esta página web, que enumera un montón de diferentes empresas de alojamiento de django: Django hosting

Otros consejos

Otra opción para usted si no desea lidiar con la configuración de su servidor desde cero es usar imagen de Amazon BitNami Django Stack . Soy desarrollador de BitNami y trabajé en la creación de pilas para varias aplicaciones de Python. BitNami Django Stack ya incluye MySQL 5.1, Apache 2.2 (con mod_wsgi) y Python con MarkDown, html5lib y python-openid instalados. También incluyó django 1.3.

Deberá instalar Django Debug Toolbar, crear la base de datos y copiar sus archivos en / opt / bitnami / apps / django / django_projects y ejecutar los comandos python manage.py. Después de eso, deberá configurar apache para el servidor de su proyecto si desea utilizarlo en producción (en lugar del servidor django).

Antes de intentar implementar su aplicación directamente en la nube, puede usar los instaladores nativos y probar la implementación en su máquina local.

También tenemos una herramienta de estimación de costos . Esto es solo para tener una idea aproximada de una configuración simple de EC2 / EBS, Amazon no siempre es tan caro como se puede esperar, aunque depende de muchos factores. (Aunque según sus comentarios parece que ya echó un vistazo a los costos).

Suponga que está utilizando el servidor Apache en su instancia, las instrucciones oficiales en el sitio de Django funcionan mejor que muchas publicaciones de blog. Esto es lo que copié del enlace: https://docs.djangoproject.com/en/1.5/howto/ despliegue / wsgi / modwsgi /

Edite y agregue el siguiente código a /etc/apache2/apache2.conf funcionaría.

WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py
WSGIPythonPath /path/to/mysite.com

<Directory /path/to/mysite.com/mysite>
<Files wsgi.py>
Order deny,allow
Require all granted
</Files>
</Directory>

He alojado mi propio sitio web de django en la instancia de AWS EC2 t2.micro (nivel gratuito de AWS). Usé Django 1.9 para este proyecto y MySQL como base de datos. Haga un túnel SSH a su instancia y siga los pasos:

  1. Instale apache2 y libapache2-mod-wsgi en su instancia:

    sudo apt-get install apache2 libapache2-mod-wsgi

  2. Instale django en su instancia:

    sudo pip install django

  3. Instalar mysql:

    sudo apt-get install mysqldb

    sudo pip install mysql-python

    sudo apt-get install libmysqlclient-dev

(si no tiene pip instalado: sudo apt-get install python-pip )

  1. Configure mysql, para su proyecto django. Importe su proyecto django a / var / www / html . (usar git es la mejor manera).

  2. Editar /etc/apache2/sites-available/000-default.conf :

    <VirtualHost *:80>
        Alias /static /path_to_my_static_folder
    
        <Directory /path_to_my_project_folder_containing_wsgi.py>
            <Files wsgi.py>
                Require all granted
            </Files>
        </Directory>
    
        WSGIDaemonProcess project_name python-path=/path_to/lib/python2.7/site-packages
    
        WSGIProcessGroup project_name
        WSGIScriptAlias / /path_to_wsgi.py
    </VirtualHost>
    
  3. Ejecute migrate para sincronizar db:

    python manage.py migrate

  4. Reiniciar apache2:

    sudo service apache2 reload

Espero que no haya codificado su plantilla y rutas estáticas en settings.py, en caso afirmativo, cámbiela a ruta dinámica o edítela en consecuencia.

¡Eso es! Visite su IP pública o DNS para acceder a su sitio web de Django alojado en la instancia de AWS EC2.

Comente a continuación si recibe algún error.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top