Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

227
Vistas
AWS ECS: forzar la redistribución en la nueva imagen más reciente en ECR

Sé que ya hay innumerables preguntas en esta dirección, pero desafortunadamente aún no pude encontrar la respuesta correcta. Si ya existe una publicación, simplemente comparta el enlace aquí.

Tengo varias canalizaciones de gitlab CI/CD. La primera canalización usa Terraform para construir la infraestructura completa para un clúster de ECS basado en Fargate. La segunda/tercera canalización crea compilaciones nocturnas del frontend y el backend y envía la imagen de Docker con la etiqueta "más reciente" al ECR de la cuenta de AWS (puesta en escena).

Lo que ahora quiero lograr es que las tareas de ECS correspondientes se vuelvan a distribuir para que se utilicen las últimas imágenes de Docker. De hecho, pensé que había una manera de hacer esto a través de CloudWatch Events o lo que sea, pero no encuentro un buen punto de partida aquí. Una solución alternativa sería instalar la CLI de AWS en la canalización de CI/CD y luego realizar una actualización del servicio con "forzar una nueva implementación". Pero eso no me parece muy elegante. ¿Hay alguna manera mejor aquí?

Condiciones:

  • La solución debe estar totalmente automatizada (ya sea en AWS o en gitlab CI/CD)
  • Cambiar a AWS CodePipeline está fuera de discusión
  • Idealmente, lo más cerca posible de los estándares de AWS. Me gustaría evitar funciones lambda extensas que realizan numerosas acciones debido a su mantenibilidad.

¡Muchas gracias!

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Ok, para todos los que estén interesados en una respuesta. Lo resolví de esa manera: ejecuto el siguiente comando AWS CLI en la tubería CICD

 aws ecs update-service --cluster <<cluster-name>> --service <<service-name>> --force-new-deployment --region <<region>>

No es la solución que estaba buscando, pero funciona.

over 4 years ago · Santiago Trujillo Denunciar

0

Como comentario general, no se recomienda insertar siempre la misma etiqueta de contenedor porque luego volver a una versión anterior en caso de falla se vuelve realmente difícil.

Una opción adecuada sería usar etiquetas git. Supongamos que está implementando la versión v0.0.1 . Puede crear un archivo app-version.tf que contendrá la variable backend-version = v0.0.1 a la que puede hacer referencia en la definición de tareas del servicio ecs. Se puede hacer lo mismo para la creación del contenedor usando git describe .

Por lo tanto, obtiene una nueva definición de tarea para cada etiqueta de git y la posibilidad de retroceder simplemente cambiando un valor en la configuración de terraform.

over 4 years ago · Santiago Trujillo Denunciar

0

Es beneficioso referirse a las imágenes utilizando resúmenes o etiquetas inmutables únicas. Después de que la canalización envíe la imagen, podría:

  1. Tome el resumen de la imagen/etiqueta única
  2. Crear una nueva revisión de la definición de tarea
  3. Active una implementación de ECS con la nueva definición de tarea.

Como menciona sgramo93, el gran beneficio es que se puede revertir su aplicación implementando una revisión anterior de la definición de la tarea.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda