REL07-BP01 Uso de la automatización al obtener o escalar recursos - Marco de AWS Well-Architected

REL07-BP01 Uso de la automatización al obtener o escalar recursos

La fiabilidad en la nube se basa en aspectos clave como la definición programática, el aprovisionamiento y la administración de la infraestructura y los recursos. La automatización lo ayuda a optimizar el aprovisionamiento de recursos, facilitar las implementaciones coherentes y seguras y escalar los recursos en toda su infraestructura.

Resultado deseado: gestione su infraestructura como código (IaC). Define y mantiene su código de infraestructura en los sistemas de control de versiones (VCS). Puede delegar el aprovisionamiento de los recursos de AWS en mecanismos automatizados y aprovechar los servicios gestionados, como los grupos Equilibrador de carga de aplicación (ALB), Equilibrador de carga de red (NLB) y de escalado automático. Los recursos se aprovisionan mediante canalizaciones de integración y entrega continuas (CI/CD) para que los cambios de código inicien automáticamente las actualizaciones de los recursos, incluidas las actualizaciones de las configuraciones de escalado automático.

Patrones comunes de uso no recomendados:

  • Los recursos se despliegan manualmente mediante la línea de comandos o la AWS Management Console (también denominado click-ops).

  • Combina estrechamente los componentes o los recursos de la aplicación y, como resultado, crea arquitecturas inflexibles.

  • Implementa políticas de escalado inflexibles que no se adaptan a los cambiantes requisitos empresariales, a los patrones de tráfico o a los nuevos tipos de recursos.

  • La capacidad se estima manualmente para satisfacer la demanda prevista.

Ventajas de establecer esta mejor práctica: la infraestructura como código (IaC) permite definir la infraestructura mediante programación. Esto ayuda a gestionar los cambios en la infraestructura durante el mismo ciclo de vida de desarrollo de software que los cambios en las aplicaciones, lo que promueve la coherencia y la repetibilidad y reduce el riesgo de realizar tareas manuales propensas a errores. Puede optimizar aún más el proceso de aprovisionamiento y actualización de los recursos mediante la implementación de la IaC con canalizaciones de entrega automatizadas. Puede implementar actualizaciones de infraestructura de manera fiable y eficiente sin necesidad de intervención manual. Esta agilidad es especialmente importante a la hora de escalar los recursos para satisfacer las demandas fluctuantes.

Puede lograr un escalado de recursos dinámico y automatizado junto con la IaC y las canalizaciones de entrega. Al monitorear las métricas clave y aplicar políticas de escalado predefinidas, el escalado automático puede aprovisionar o desaprovisionar recursos automáticamente según sea necesario, lo que mejora el rendimiento y la rentabilidad. Esto reduce la posibilidad de que se produzcan errores manuales o demoras en respuesta a los cambios en los requisitos de las aplicaciones o la carga de trabajo.

La combinación de IaC, canalizaciones de entrega automatizadas y escalado automático ayuda a las organizaciones a aprovisionar, actualizar y escalar sus entornos con confianza. Esta automatización es esencial para mantener una infraestructura en la nube con capacidad de respuesta, resiliente y gestionada de manera eficiente.

Nivel de riesgo expuesto si no se establece esta práctica recomendada: alto

Guía para la implementación

Para configurar la automatización con canalizaciones de CI/CD e infraestructura como código (IaC) para su arquitectura de AWS, elija un sistema de control de versiones como Git para almacenar las plantillas y la configuración de IaC. Estas plantillas se pueden escribir con herramientas como AWS CloudFormation. Para empezar, defina los componentes de su infraestructura (como las VPC de AWS, los grupos de Amazon EC2 Auto Scaling EC2 y las bases de datos de Amazon RDS) en estas plantillas.

A continuación, integre estas plantillas de IaC con una canalización de CI/CD para automatizar el proceso de implementación. AWS CodePipeline le ofrece una solución nativa de AWS perfecta, o puede utilizar otras soluciones de CI/CD de terceros. Cree una canalización que se active cuando se produzcan cambios en su repositorio de control de versiones. Configure la canalización para que incluya etapas que analicen y validen sus plantillas de IaC, implementen la infraestructura en un entorno provisional, ejecuten pruebas automatizadas y, por último, las implementen en la producción. Incorpore los pasos de aprobación cuando sea necesario para mantener el control de los cambios. Esta canalización automatizada no solo acelera la implementación, sino que también facilita la coherencia y la fiabilidad en todos los entornos.

Configure el escalado automático de recursos como instancias de Amazon EC2, tareas de Amazon ECS y réplicas de bases de datos en su IaC para proporcionar escalado horizontal y escalado vertical automáticos según sea necesario. Esta estrategia mejora la disponibilidad y el rendimiento de las aplicaciones y optimiza los costes mediante el ajuste dinámico de los recursos en función de la demanda. Para obtener una lista de los recursos compatibles, consulte Amazon EC2 Auto Scaling y AWS Auto Scaling.

Pasos para la implementación

  1. Cree y utilice un repositorio de código fuente para almacenar el código que controla la configuración de su infraestructura. Confirme los cambios en este repositorio para reflejar cualquier cambio en curso que desee realizar.

  2. Seleccione una solución de infraestructura como código, por ejemplo, AWS CloudFormation, para mantener su infraestructura actualizada y detectar inconsistencias (desviaciones) con respecto al estado deseado.

  3. Integre la plataforma IaC con la canalización de CI/CD para automatizar las implementaciones.

  4. Determine y recopile las métricas adecuadas para el escalado automático de los recursos.

  5. Configure el escalado automático de los recursos mediante políticas de escalado horizontal y vertical adecuadas para los componentes de la carga de trabajo. Plantéese la opción de utilizar el escalado programado para obtener patrones de uso predecibles.

  6. Supervise las implementaciones para detectar errores y regresiones. Implemente mecanismos de reversión en su plataforma de CI/CD para revertir los cambios si es necesario.

Recursos

Documentos relacionados:

Videos relacionados: