AWS CodePipeline CI/CD 파이프라인을 사용하여 AWS Glue 작업을 배포하십시오. - AWS 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS CodePipeline CI/CD 파이프라인을 사용하여 AWS Glue 작업을 배포하십시오.

작성자: Bruno Klein(AWS) 및 Luis Henrique Massao Yamada(AWS)

환경: 프로덕션

기술: DevOps; 빅 데이터

AWS 서비스: AWS Glue, AWS, AWS CodeCommit CodePipeline, AWS Lambda

요약

이 패턴은 Amazon Web Services (AWS) CodeCommit 와 AWS를 AWS CodePipeline Glue와 통합하고 개발자가 변경 내용을 원격 AWS 리포지토리로 푸시하는 즉시 AWS Lambda를 사용하여 작업을 시작하는 방법을 보여줍니다. CodeCommit  

개발자가 ETL (추출, 변환, 로드) 리포지토리에 변경 사항을 제출하고 변경 내용을 CodeCommit AWS에 푸시하면 새 파이프라인이 호출됩니다. 파이프라인은 이러한 변경과 함께 Glue 작업을 시작하는 Lambda 함수를 시작합니다. Glue 작업은 ETL 작업을 수행합니다.

이 솔루션은 기업, 개발자, 데이터 엔지니어가 변경 내용을 커밋하고 대상 리포지토리에 푸시하는 즉시 작업을 시작하려는 경우에 유용합니다. 이를 통해 자동화 및 재현성 수준을 높여 작업 시작 및 수명 주기 동안 오류를 방지할 수 있습니다.

사전 조건 및 제한 사항

사전 조건 

제한 사항

  • 파이프라인은 Glue 작업이 성공적으로 시작되는 즉시 완료됩니다. 작업이 마무리될 때까지 기다리지 않습니다.

  • 첨부 파일에 나와 있는 코드는 데모용으로만 사용됩니다.

아키텍처

대상 기술 스택  

  • Glue

  • Lambda

  • AWS CodePipeline

  • AWS CodeCommit

대상 아키텍처 

개발자가 리포지토리에 변경 사항을 푸시하는 즉시 Lambda를 사용하여 Glue 작업을 시작합니다. CodeCommit

프로세스는 다음 단계로 구성됩니다.

  1. 개발자 또는 데이터 엔지니어가 ETL 코드를 수정하고 변경 사항을 커밋하고 AWS에 푸시합니다. CodeCommit

  2. 푸시는 파이프라인을 시작합니다.

  3. 파이프라인은 리포지토리의 codecommit:GetFile(을)를 호출하고 파일을 Amazon Simple Storage Service(S3)에 업로드하는 Lambda 함수를 시작합니다.

  4. Lambda 함수는 ETL 코드를 사용하여 새로운 Glue 작업을 시작합니다.

  5. Lambda 함수는 파이프라인을 완료합니다.

자동화 및 규모 조정

샘플 첨부 파일은 AWS Glue를 CodePipeline AWS와 통합하는 방법을 보여줍니다. 용도에 맞게 사용자 지정하거나 확장할 수 있는 기본 예제를 제공합니다. 자세한 내용은에픽 섹션을 참조하세요.

도구

  • AWS CodePipeline — CodePipeline AWS는 빠르고 안정적인 애플리케이션 및 인프라 업데이트를 위해 릴리스 파이프라인을 자동화하는 데 도움이 되는 완전관리형 지속적 전송 서비스입니다.

  • AWS CodeCommit — CodeCommit AWS는 안전한 Git 기반 리포지토리를 호스팅하는 완전 관리형 소스 제어 서비스입니다.

  • Lambda – Lambda는 서버를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있게 해주는 서버리스 컴퓨팅 서비스입니다.

  • Glue – Glue는 분석, 기계 학습, 애플리케이션 개발을 위해 데이터를 쉽게 검색, 준비, 결합할 수 있게 해주는 서버리스 데이터 통합 서비스입니다.

  • Git client — Git은 GUI 도구를 제공하거나, 명령줄 또는 데스크톱 도구를 사용하여 필요한 아티팩트를 체크아웃할 수 있습니다. GitHub  

  • CDK - CDK는 오픈 소스 소프트웨어 개발 프레임워크로, 익숙한 프로그래밍 언어를 사용하여 클라우드 애플리케이션 리소스를 정의하도록 지원합니다.

에픽

작업설명필요한 기술

CLI를 구성합니다.

현재의 계정을 대상으로 지정하고 인증하도록 Command Line Interface(CLI)를 구성합니다. 자세한 지침은 CLI 설명서를 참조하십시오.

개발자, 엔지니어 DevOps

샘플 프로젝트 파일을 추출합니다.

첨부 파일에서 파일을 추출하여, 샘플 프로젝트 파일이 포함된 폴더를 생성합니다.

개발자, DevOps 엔지니어

샘플 코드를 배포합니다.

파일을 추출한 후 추출 위치에서 다음 명령을 실행하여 기본 예제를 생성합니다.

cdk bootstrap cdk deploy git init git remote add origin <code-commit-repository-url> git stage . git commit -m "adds sample code" git push --set-upstream origin main

마지막 명령 후 파이프라인의 상태와 Glue 작업을 모니터링할 수 있습니다.

개발자, DevOps 엔지니어

코드를 사용자 지정합니다.

비즈니스 요구 사항에 따라 etl.py 파일의 코드를 사용자 지정합니다. ETL 코드를 수정하거나, 파이프라인 단계를 수정하거나, 솔루션을 확장할 수 있습니다.

데이터 엔지니어

관련 리소스

첨부

이 문서와 관련된 추가 콘텐츠에 액세스하려면 attachment.zip 파일의 압축을 풉니다.