Despliegue automático de reversión (rollback) para una implementación de ECS Fargate fallida sin scripts personalizados.
→Habilite el disyuntor de despliegue de ECS (ECS deployment circuit breaker) con reversión en el servicio ECS.
Por qué: Característica nativa de ECS que revierte automáticamente si las nuevas tareas no logran estabilizarse. Menor sobrecarga operativa en comparación con el sondeo personalizado de CodeBuild o configuraciones complejas de CodeDeploy.
Referencia↗
Implementar en una región primaria, validar con pruebas automatizadas y luego implementar en otras regiones en paralelo.
→Utilice un solo CodePipeline con etapas secuenciales: (1) Desplegar Región A, (2) una etapa de prueba de CodeBuild que ejecuta la validación, (3) una etapa de despliegue paralelo para las Regiones B y C.
Por qué: CodeBuild actúa como una puerta automatizada y programática. Una sola pipeline es más simple que orquestar múltiples pipelines con Step Functions.
Un script de validación de larga duración en un hook de ciclo de vida de CodeDeploy causa un éxito prematuro del despliegue.
→Aumente la propiedad `timeout` para el script específico del hook de ciclo de vida en el archivo `AppSpec.yml`.
Por qué: El tiempo de espera se configura por hook en el archivo AppSpec, no a nivel de grupo de despliegue. Esto asegura que el script de validación tenga tiempo suficiente para completarse.
Acelerar las compilaciones lentas de imágenes Docker en CodeBuild causadas por la descarga repetida de dependencias y capas de imagen en cada ejecución.
→En la configuración del proyecto CodeBuild, habilite `LOCAL_DOCKER_LAYER_CACHE` y configure una caché de S3 para los directorios de dependencias (p. ej., `.m2`, `node_modules`).
Por qué: Aborda directamente ambas fuentes de lentitud. El almacenamiento en caché de capas de Docker reutiliza las capas de imagen sin cambios; el almacenamiento en caché de S3 reutiliza las dependencias de aplicación descargadas.
Implementar un despliegue canary para una función Lambda con reversión automatizada y basada en métricas.
→Utilice AWS SAM con `DeploymentPreference` (p. ej., tipo `Canary10Percent5Minutes`). Agregue una alarma de CloudWatch en la métrica `Errors` como disparador de reversión.
Por qué: SAM se integra nativamente con CodeDeploy para Lambda, automatizando el cambio de tráfico de alias, el monitoreo y la reversión sin scripts personalizados.
Referencia↗
Configure IAM para un CodePipeline en la Cuenta A para desplegar recursos en la Cuenta B.
→El rol de la pipeline (Cuenta A) asume un rol de acción (Cuenta B). El rol de acción en B confía en el rol de la pipeline y tiene permisos de despliegue. El bucket de artefactos S3 y la clave KMS en A deben tener políticas de recursos que otorguen acceso al rol de acción en B.
Por qué: Este es el patrón de acceso entre cuentas estándar y seguro: asunción de rol para acciones, políticas basadas en recursos para acceso a datos.
Implementar un flujo de trabajo GitOps para EKS donde el estado del clúster se reconcilia automáticamente y continuamente con un repositorio Git.
→Despliegue un controlador GitOps (p. ej., Flux, ArgoCD) en el clúster EKS. Configúrelo para monitorear el repositorio Git y aplicar/reconciliar cambios.
Por qué: Este es el patrón GitOps estándar "basado en extracción". El controlador dentro del clúster maneja la reconciliación continua y la detección de deriva, que es el principio central de GitOps.
Permitir que un proyecto de CodeBuild en una cuenta de herramientas central despliegue manifiestos de Kubernetes en clústeres EKS en cuentas de carga de trabajo separadas.
→En cada cuenta de carga de trabajo, cree un rol IAM entre cuentas de confianza para el rol de CodeBuild. Asigne este nuevo rol a un grupo RBAC de Kubernetes en el ConfigMap `aws-auth` del clúster EKS. El script de CodeBuild asume el rol antes de ejecutar `kubectl`.
Por qué: Este es el patrón estándar y seguro para el acceso a EKS entre cuentas. Sigue el principio de mínimo privilegio al crear un rol dedicado y de confianza para este propósito.
Realizar una migración compleja de esquema de RDS PostgreSQL o MySQL con cero o casi cero tiempo de inactividad.
→Utilice la característica Amazon RDS Blue/Green Deployments. Cree un entorno de staging (verde) sincronizado, aplique los cambios de esquema y luego realice el switchover para promocionarlo a producción.
Por qué: Este es el servicio gestionado diseñado específicamente para actualizaciones de RDS seguras y sin tiempo de inactividad. Maneja la clonación, la sincronización y un switchover rápido (< 1 min) con salvaguardias integradas.
Desplegar una nueva versión de una aplicación de una sola página (SPA) en S3/CloudFront y asegurar que los usuarios reciban la nueva versión inmediatamente con costes mínimos de invalidación de caché.
→Utilice hashing basado en contenido para los nombres de archivo de los activos (p. ej., `app.a1b2c3d4.js`). Después de desplegar nuevos activos, invalide solo el archivo `index.html` en la distribución de CloudFront.
Por qué: Los nombres de archivo con hash son únicos, por lo que CloudFront los trata como nuevos objetos y los obtiene del origen, omitiendo la caché. Solo el archivo de punto de entrada único (`index.html`) necesita invalidación, lo que es significativamente más barato que una invalidación con comodín (`/*`).
Implementar una pipeline de CI/CD para una aplicación AWS CDK que se actualiza automáticamente cuando la propia definición de la pipeline cambia.
→Utilice el constructo CDK Pipelines (`pipelines.CodePipeline`). Este constructo crea una pipeline que incluye una etapa `SelfMutate` por defecto.
Por qué: CDK Pipelines es un constructo de alto nivel diseñado específicamente para este patrón. La etapa `SelfMutate` asegura que la pipeline siempre refleje la última definición del código antes de desplegar los cambios de la aplicación.
Desplegar una nueva versión de aplicación que requiera un cambio de esquema de base de datos compatible con versiones anteriores (p. ej., añadir nuevas columnas) con cero tiempo de inactividad.
→Implemente un patrón de expansión y contracción (o cambio paralelo). Primero, despliegue los cambios aditivos del esquema de base de datos compatibles con versiones anteriores. Segundo, despliegue la nueva versión de la aplicación que utiliza el nuevo esquema. Ambas versiones, antigua y nueva, pueden coexistir con la base de datos actualizada.
Por qué: Este patrón desacopla los despliegues de la base de datos y la aplicación, asegurando que el estado de la base de datos sea siempre compatible con las versiones antigua y nueva de la aplicación, lo que permite despliegues sin tiempo de inactividad.
Lanzar gradualmente una nueva característica a segmentos de usuarios específicos y medir el impacto en métricas de negocio (p. ej., tasa de conversión) utilizando pruebas A/B.
→Utilice Amazon CloudWatch Evidently. Cree una característica con múltiples variaciones, un lanzamiento para controlar el porcentaje de despliegue y un experimento para medir el impacto estadístico en las métricas definidas.
Por qué: Evidently es un servicio diseñado específicamente para el feature flagging y la experimentación A/B, proporcionando no solo el mecanismo de lanzamiento sino también el motor de análisis estadístico para medir el impacto.