AWS는 2018년 고객에게 중소 규모의 ETL 작업에서 손쉽게 Python 스크립트를 실행하고 SQL 쿼리를 트리거할 수 있는 방법을 제공하기 위해 AWS Glue Python 쉘 작업을 출시했습니다. 그러나 이제 PythonShell에서 현재 실행 중인 워크로드를 해결하기 위한 보다 현대적이고 유연한 옵션이 있습니다. 이 항목에서는 사용 가능한 최신 기능을 활용하기 위해 워크로드를 AWS Glue Python 쉘 작업에서 이러한 대체 옵션 중 하나로 마이그레이션하는 방법을 설명합니다.
이 항목에서는 AWS Glue Python 쉘 작업에서 대체 옵션으로 마이그레이션하는 방법에 관해 설명합니다.
워크로드를 AWS Glue Spark 작업으로 마이그레이션
AWS Glue Spark 및 PySpark 작업을 사용하면 분산 방식으로 워크로드를 실행할 수 있습니다. AWS Glue Python 쉘 작업과 AWS Glue Spark 작업은 모두 동일한 플랫폼에서 실행되므로 쉽게 마이그레이션할 수 있으며 AWS Glue 워크플로, AWS Glue 트리거, AWS Glue의 Amazon EventBridge 통합, \ PIP 기반 패키지 설치 등 Python Shell 작업과 함께 사용 중인 기존 AWS Glue 기능을 계속 사용할 수 있습니다.
그러나 AWS Glue Spark 작업은 Spark 워크로드를 실행하도록 설계되었으며 최소 워커 수는 2개입니다. 스크립트를 수정하지 않고 Python 쉘 작업에서 마이그레이션하는 경우 실제로 1개의 워커만 사용되며 다른 워커는 유휴 상태로 유지됩니다. 이로 인해 비용이 증가합니다.
효율성을 높이려면 Python 작업 스크립트를 다시 작성하여 Spark의 기능을 활용하고 워크로드를 여러 워커에 분산합니다. Python 스크립트가 Pandas 기반인 경우 Spark의 새 Pandas API를 사용하여 쉽게 마이그레이션할 수 있습니다. 이에 대한 자세한 내용은 AWS 빅 데이터 블로그: Apache Spark용 AWS Glue 4.0 자세히 알아보기
워크로드를 AWS Lambda로 마이그레이션
AWS Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 서버리스 컴퓨팅 서비스입니다. AWS Lambda는 시작 시간이 짧고 컴퓨팅 용량 옵션이 유연하기 때문에 이러한 이점을 활용할 수 있습니다. 추가 Python 라이브러리를 관리하기 위해 AWS Glue Python 쉘 작업은 PIP 기반 설치를 사용합니다. 그러나 AWS Lambda의 경우 zip 아카이브, 컨테이너 이미지 또는 Lambda 계층 옵션 중 하나를 선택해야 합니다.
반면 AWS Lambda의 최대 제한 시간은 900초(15분)입니다. 기존 AWS Glue Python 쉘 작업 워크로드의 작업 기간이 그보다 크거나 워크로드에 작업 기간이 길어질 수 있는 급증 패턴이 있는 경우 AWS Lambda 대신 다른 옵션을 탐색하는 것이 좋습니다.
워크로드를 Amazon ECS/Fargate로 마이그레이션
Amazon Elastic Container Service(Amazon ECS)는 컨테이너화된 애플리케이션의 배포, 관리 및 규모 조정을 간소화하는 완전관리형 서비스입니다. AWS Fargate는 Amazon ECS 및 Amazon Elastic Kubernetes Service(Amazon EKS)에서 실행되는 컨테이너화된 워크로드를 위한 서버리스 컴퓨팅 엔진입니다. Amazon ECS 및 Fargate에는 최대 제한 시간이 없으므로 장기 실행 작업에 적합한 옵션입니다. 컨테이너 이미지를 완전히 제어할 수 있으므로 기존 Python 스크립트와 추가 Python 라이브러리를 컨테이너로 가져와 사용할 수 있습니다. 그러나 이 접근 방식을 사용하려면 Python 스크립트를 컨테이너화해야 합니다.
워크로드를 Amazon Managed Workflows for Apache Airflow Python 연산자로 마이그레이션
Amazon Managed Workflows for Apache Airflow(Apache Airflow용 관리형 워크플로)는 Apache Airflow에 대한 관리형 오케스트레이션 서비스로 클라우드에서 종단 간 데이터 파이프라인을 대규모로 쉽게 설정하고 운영할 수 있습니다. 이미 MWAA 환경이 있는 경우 AWS Glue Python 쉘 작업 대신 Python 연산자를 사용하는 것이 간단합니다. Python 연산자는 Airflow 워크플로 내에서 Python 코드를 실행하는 연산자입니다. 그러나 기존 MWAA 환경이 없는 경우 다른 옵션을 탐색하는 것이 좋습니다.
워크로드를 Amazon SageMaker AI AI 훈련 작업으로 마이그레이션
Amazon SageMaker AI Training은 Amazon SageMaker AI에서 제공하는 완전관리형 기계 학습(ML) 서비스로, 광범위한 ML 모델을 대규모로 효율적으로 훈련하는 데 도움이 됩니다. Amazon SageMaker AI AI 작업의 핵심은 ML 워크로드의 컨테이너화와 AWS 컴퓨팅 리소스 관리 기능입니다. 최대 제한 시간이 없는 서버리스 환경을 선호하는 경우 Amazon SageMaker AI AI 훈련 작업이 적합할 수 있습니다. 그러나 시작 지연 시간은 AWS Glue Python 쉘 작업보다 긴 경향이 있습니다. 지연 시간에 민감한 작업의 경우 다른 옵션을 탐색하는 것이 좋습니다.