Soy muy nuevo en AWS y cuando estaba buscando algo para descargar un código de GitHub (un proyecto de Python), ejecutarlo y guardar el resultado en s3, el primer servicio que encontré fue CodeBuild.
Así que implementé este tipo de flujo de trabajo usando CodeBuild.
Pero ahora he visto que AWS tiene un servicio llamado AWS Batch y me pregunto si debería migrar mi arquitectura a AWS Batch.
¿Puede explicar cuál, AWS CodeBuild o AWS Batch, es más adecuado para mi caso? ¿Cuándo usar AWS Batch en lugar de AWS CodeBuild?
Muchas gracias.
Resumen de TLDR: AWS Codebuild es la mejor opción para trabajos simples.
Mi (inversa) experiencia...
Necesitaba ejecutar un trabajo simple que extraiga datos de una API externa, lea/escriba en una base de datos externa y genere un informe CSV.
El trabajo tarda aproximadamente 1 hora en ejecutarse, por lo que AWS Lambda está fuera de escena.
Después de buscar en Google, encontré AWS Batch y decidí probar la creación de un trabajo de AWS Batch simple de "Obtener y ejecutar" .
Los pasos necesarios para que este trabajo "simple" funcione:
Después de dedicar tiempo a crear todos estos recursos, no funcionó de inmediato. Me encontré depurando cosas aleatorias que no debería tener que depurar, como:
Después de no poder encontrar ejemplos prácticos simples y darme cuenta de la cantidad de esfuerzo requerido, decidí explorar otras soluciones.
Me topé con el uso de AWS CodeBuild para ejecutar tareas administrativas y esta publicación.
He usado AWS Codebuild en el pasado para la canalización de CI/CD y pensé "qué diablos, intentémoslo". En menos tiempo, pude ejecutar un "trabajo de compilación de código" en un programador de CloudWatch y agregar notificaciones de holgura de compilación de código, con menos esfuerzo:
Una de las principales ventajas es que CodeBuild ejecuta tareas en un entorno Linux completo.
Inconvenientes:
Fue mucho más fácil trabajar con AWS Codebuild para mi trabajo simple.
Perdón por la publicación larga, solo quería compartir mi experiencia con estos 2 servicios.
AWS Batch se utiliza en cálculos altamente paralelos, por ejemplo, procesando una gran cantidad de imágenes al mismo tiempo:
AWS Batch le permite ejecutar cargas de trabajo informáticas por lotes en la nube de AWS. La computación por lotes es una forma común para que los desarrolladores, científicos e ingenieros accedan a grandes cantidades de recursos informáticos , y AWS Batch elimina el trabajo pesado e indiferenciado de configurar y administrar la infraestructura requerida, de manera similar al software de computación por lotes tradicional.
Por lo tanto, no es adecuado para lo que está tratando de usar. CodeBuild es una mejor opción, según su descripción.