Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

236
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!