마지막으로 다음과 같이 DAG의 작업 종속성을 정의합니다.
# set the dependencies between tasks
s3_sensor >> preprocess_task >> train_model_task >> batch_transform_task
이렇게 해서 DAG 코드가 완료 되었습니다. 지금까지 개발 된 DAG 코드를 ml_pipeline.py로 만들어 Cloud9 workspace의 dags 폴더에 저장하고 같은 경로에 있는 config.py 및 preprocess.py 파일과 함께 MWAA 환경으로 업로드 하겠습니다.
Cloud9 workspace의 terminal에서 다음 AWS CLI 명령어를 실행하여 DAG 파일을 S3로 업로드 하십시오.
CLI를 실행하기 전에 <your_aws_account_id> 문구는 현재 사용하고 있는 12자리 AWS Account ID로 변경해야 합니다.
cd ~/environment/dags
ls
aws s3 sync . s3://mwaa-workshop-<your_aws_account_id>/dags/
스크립트가 배포되면 1분 이내에 Airflow UI에서 ml_pipeline DAG를 볼 수 있습니다.
배포 된 DAG는 초기에 기본적으로 비활성화된 상태로 설정됩니다. Airflow UI에서 On/Off 토글 버튼을 사용하여 DAG를 활성화하십시오.
DAG의 재생 버튼을 클릭하여 DAG를 실행 하십시오.

이전 단계에서 학습 CSV 파일을 s3://mwaa-sagemaker-bucket-<your_aws_account_id>/raw/에 업로드 해 놓았기 때문에 DAG의 첫 번째 s3_sensor 작업은 즉시 완료 되어 다음 작업을 진행합니다.
전체 DAG는 몇 분 안에 완료되며 DAG 실행 중에 Amazon Sagemaker 콘솔을 방문하여 작업 세부 정보를 볼 수 있습니다.

DAG 실행이 끝나면 일괄 추론 변환 작업의 결과가 S3 경로(s3://mwaa-sagemaker-bucket-<your_aws_account_id>/transform/)에 기록됩니다.

학습된 모델은 S3 경로 s3://mwaa-sagemaker-bucket-<your_aws_account_id>/xgboost/output/에도 배포됩니다.

결과 CSV 파일을 다운로드하여 뉴욕 택시 운임에 대한 예측 값을 볼 수 있습니다.
이 모듈에서는 ML 워크플로우를 구축하는 데 상당한 준비가 필요하지만 반복적인 ML 작업의 실험 속도, 엔지니어링 생산성 및 유지 관리를 개선하는 데 도움이 된다는 것을 확인했습니다.
Airflow Amazon SageMaker Operators는 ML 워크플로우를 구축하고 Amazon SageMaker와 통합하는 편리한 방법을 제공합니다.
feature 엔지니어링, 병렬 모델 학습, 데이터 변경 사항에 대비한 모델 재훈련 등 ML 워크플로우에 더 잘 맞는 작업으로 Airflow DAG를 커스터마이징하여 워크플로우를 확장할 수 있습니다.