AWS lanzó los trabajos de shell deAWS Glue Python en 2018 AWS lanzó los trabajos de shell de AWS Glue Python en 2018 con el fin de ofrecer a los clientes una forma sencilla de ejecutar scripts de Python para trabajos ETL de tamaño pequeño a mediano y activar consultas SQL. Sin embargo, ahora hay opciones más modernas y flexibles para abordar las cargas de trabajo que se ejecutan actualmente en PythonShell. En este tema se explica cómo migrar las cargas de trabajo de los trabajos de shell de AWS Glue Python a una de estas opciones alternativas para aprovechar las nuevas capacidades disponibles.
En este tema se explica cómo hacer la migración de trabajos de shell de AWS Glue Python a opciones alternativas.
Migración de la carga de trabajo a los trabajos de AWS Glue Spark
Los trabajos de AWS Glue Spark y PySpark le permiten ejecutar sus cargas de trabajo de forma distribuida. Dado que tanto los trabajos de shell de AWS Glue Python como los de AWS Glue Spark se ejecutan en la misma plataforma, es fácil migrarlos y puede seguir utilizando las características de AWS Glue existentes que utiliza con los trabajos de shell de Python, como AWS Glue Workflows, AWS Glue Triggers, la integración de Amazon EventBridge de AWS Glue, la instalación de paquetes basada en PIP, etc.
Sin embargo, los trabajos de AWS Glue Spark están diseñados para ejecutar cargas de trabajo de Spark y el número mínimo de trabajadores es de 2. Si migra desde trabajos de shell de Python sin modificar sus scripts, se utilizará en realidad un solo elemento de trabajo y los demás permanecerán inactivos. Esto aumentará sus costos.
Para que sea eficiente, reescriba su script de trabajo de Python para utilizar las capacidades de Spark y distribuir la carga de trabajo entre varios trabajadores. Si su script de Python está basado en Pandas, es fácil migrarlo con la nueva API de Pandas en Spark. Obtenga más información sobre esto en AWS Big Data Blog: análisis profundo de AWS Glue 4.0 para Apache Spark
Migración de una carga de trabajo a AWS Lambda
AWS Lambda es un servicio informático sin servidor que permite ejecutar código sin aprovisionar ni administrar servidores. Como AWS Lambda tiene tiempos de inicio más cortos y opciones de capacidad de cómputo más flexibles, puede aprovechar estas ventajas. Para administrar bibliotecas de Python adicionales, los trabajos de shell deAWS Glue Python utilizan una instalación basada en PIP. Sin embargo, para AWS Lambda, debe elegir una de las siguientes opciones: un archivo zip, una imagen de contenedor o capas Lambda.
Por otro lado, el tiempo de espera máximo de AWS Lambda es de 900 segundos (15 minutos). Si la duración de su carga de trabajo actual del trabajo de shell de AWS Glue Python es mayor, o si su carga de trabajo tiene un patrón de picos que puede provocar una mayor duración de los trabajos, le recomendamos que explore otras opciones en lugar de AWS Lambda.
Migración de la carga de trabajo a Amazon ECS/Fargate
Amazon Elastic Container Service (Amazon ECS) es un servicio completamente administrado que simplifica la implementación, la administración y el escalado de aplicaciones en contenedores. AWS Fargate es un motor de cómputo sin servidor para cargas de trabajo en contenedores que se ejecutan en Amazon ECS y Amazon Elastic Kubernetes Service (Amazon EKS). No hay un tiempo de espera máximo en Amazon ECS y Fargate, por lo que es una buena opción para trabajos de larga duración. Dado que tiene el control total sobre la imagen de su contenedor, puede incluir su script de Python y las bibliotecas de Python adicionales en el contenedor y usarlas. Sin embargo, debe colocar su script de Python en contenedores para utilizar este enfoque.
Migración de la carga de trabajo al operador Python de Amazon Managed Workflows para Apache Airflow
Amazon Managed Workflows para Apache Airflow (MWAA) es un servicio de orquestación administrada para Apache Airflow que facilita la configuración y el funcionamiento de canalizaciones de datos integrales en la nube a escala. Si ya dispone de un entorno MWAA, le resultará sencillo utilizar el operador Python en lugar de los trabajos de shell de AWS Glue Python. El operador Python es un operador que ejecuta código Python dentro de un flujo de trabajo de Airflow. Sin embargo, si no cuenta con un entorno MWAA existente, le recomendamos que explore otras opciones.
Migración de la carga de trabajo a trabajos de entrenamiento de Amazon SageMaker AI AI
Amazon SageMaker AI Training es un servicio de machine learning (ML) totalmente administrado que Amazon SageMaker AI ofrece y que le ayuda a entrenar de manera eficaz una amplia gama de modelos de ML a escala. El núcleo de los trabajos de Amazon SageMaker AI AI es la creación de contenedores de las cargas de trabajo de ML y la capacidad de administrar los recursos de computación de AWS. Si prefiere un entorno sin servidor en el que no haya un tiempo de espera máximo, los trabajos de entrenamiento de Amazon SageMaker AI AI podrían ser una buena opción para usted. Sin embargo, la latencia de inicio tiende a ser mayor que la de los trabajos de shell de AWS Glue Python. Para trabajos sensibles a la latencia, le recomendamos explorar otras opciones.