-
Notifications
You must be signed in to change notification settings - Fork 32
Infraestructura de VotaInteligente en Amazon AWS
Estas configuraciones son sólo iniales!!!! Hay que seguir configurando!!!
-
Instancia Web (servir la web) Para esto existe una imagen de Amazon que levanta apache con votainteligente (out_of_the box). La imagen de esto debe ser VotaInteligenteWeb_ddmmyyyy.
-
Instancia Worker/Beat (ejecutar tareas asíncronas, mandar mails periódicos y cosas que se demoran mucho). La imagen de esto debe llamarse VotaInteligenteWorker_ddmmyyy.
La idea es que al terminar esta guía, se consiga una infraestructura como la que le sigue:
Es importante aquí notar que, hay n
instancias de VotaInteligenteWeb y una sola instancia de VotaInteligenteWorker. n
está determinado por la demanda y crece/decrece utilizando un AutoScaleGroup.
La gran misión es:
-
Crear instalar VotaInteligente_Web y VotaInteligenteWorker en una instancia nueva de EC2 (micro o nano, la más barata) y crear una nueva imagen propia para el proyecto que se levantará, por ejemplo RioPorInteiroWeb_ddmmyy y RioPorInteiroWorker_ddmmyyyy.
-
Configurar el AutoScaleGroup, para que cree instancias nuevas sólo de la versión Web y que cuando las cree automáticamente actualice el código.
Creación de un local_settings.py (Esta parte fue escrita por @lfalvarez y por lo tanto estas son opiniones de él).
local_settings.py
es el archivo de configuración del votainteligente, algunas consideraciones que se debe tener con este archivo:
- Cuando se modifica, esta modificación se debe replicar en todas las instancias.
- Cuando se lanza una instancia nueva de VotaInteligenteWeb, debe ir a buscar la última versión y debe actuar en base a esta.
-
local_settings.py
debe ser privado y NO debe estar versionado! -
local_settings.py
hace referencia a la única DB, ElasticSearch y cualquier instancia de Cache que tengan.
Entonces, lo que hice fue dejar un único local_settings.py
en un bucket privado de S3 y en cada una de las imagenes hay un script que debe ser modificado para que pueda descargar local_settings.py
desde su privada mansión de S3.