Tenemos una flota de servidores Nginx en Amazon EC2 donde ocasionalmente necesitamos actualizar los archivos de configuración para implementar nuevas configuraciones.
Actualmente tenemos las configuraciones en un AMI personalizado y si necesitamos actualizar tenemos que reconstruir el AMI y luego las instancias EC2. Tenemos algunos scripts de ayuda, pero todavía es un gran esfuerzo hacerlo. ¿Hay alguna forma mejor?
amazon-web-services
amazon-ec2
Bububu
fuente
fuente
Respuestas:
Hay una serie de conceptos que puede aprovechar.
La clave del éxito es la automatización.
La primera opción es seguir haciendo lo que está haciendo ahora, es decir, reconstruir los EC2 con cada cambio de configuración . Solo de forma totalmente automatizada.
Como ahora está realizando actualizaciones de configuración a través de AMI, va un paso más allá y crea una tubería que, al cambiar un archivo de configuración en algún repositorio, hará lo siguiente:
La segunda opción es mantener las instancias en su lugar y solo implementar los archivos de configuración , sin reconstruirlos. En general, puede tratar los archivos de configuración como código e implementar los cambios de configuración de la misma manera que implementaría las versiones de código. AWS tiene muchas herramientas para ayudar con eso.
Una vez que se sienta cómodo con la automatización de estas actualizaciones de configuración de Nginx, es posible que desee extender la automatización al resto de su infraestructura.
Hay una excelente descripción general de las Opciones de implementación en AWS que le brindará una buena descripción general.
Espero que eso ayude :)
fuente
Almacene sus configuraciones en EFS y monte EFS en la ubicación donde se esperan las configuraciones de Nginx. Alternativamente, póngalos en Amazon S3 y ejecute una sincronización de vez en cuando, o use s3fs (tenga en cuenta que s3fs puede no ser lo suficientemente bueno para el uso de producción).
Cuando necesite cambiar su configuración, aumente el tamaño deseado de su grupo de autoescalado para duplicar lo que necesita para activar nuevas instancias con la nueva configuración, y luego vuelva a lo que necesita, lo que eliminará las instancias anteriores. Alternativamente, solo haga un reinicio continuo de los servidores.
Otra opción es simplemente empujar las nuevas configuraciones a su servidor utilizando una herramienta de automatización básica, como la implementación de código de AWS.
Las opciones completamente automatizadas anteriores son técnicamente mejores y más limpias, pero si rara vez cambia las configuraciones y desea una solución fácil, esto podría ayudar.
fuente
AWS Run Command https://docs.aws.amazon.com/systems-manager/latest/userguide/execute-remote-commands.html
O puede usar Opsworks https://aws.amazon.com/opsworks/
fuente
Reconstruir las AMI o crear tuberías de implementación completas como las otras sugieren solo para un cambio en el archivo de configuración parece una exageración. Debe usar Ansible para eliminar los cambios y mantener todos sus nodos sincronizados. Hay muchos módulos Ansible que pueden ayudarlo a automatizar las tareas comunes.
fuente