베이스 프로젝트 클론

Cloud9 IDE terminal에서 다음의 명령을 실행하여 샘플 소스 코드를 가져옵니다.

git clone https://github.com/reoim/forecast-mlops-cdk.git

샘플 코드 구조

샘플 코드 구조는 다음과 같습니다. Structure

  • /forecast_mlops/forecast_mlops_stack.py: CDK를 이용하여 MLOps 파이프라인을 정의한 Stack 파일 입니다.

  • app.py: CDK app의 entry point. Stack을 실제 배포하려면 여기에 해당 Stack을 추가해줘야 합니다.

  • /forecast_mlops/iam_role.py: 파이프라인에 필요한 IAM role들을 정의해둔 파일 입니다.

  • /lambdas: 파이프라인의 각 Step을 구성하는 Lambda 코드들 입니다.

  • /shared: 공통으로 쓰이는 Lambda Layer 코드 입니다.

  • /testing-data/train/forecast_demo_data.csv: 실습에 사용될 2년 간의 일(day)별 e-commerce 판매량 더미 데이터 입니다.

  • /testing-data/params.json: 파이프라인 동작에 필요한 파라미터 값들을 정의한 파일 입니다. 해당 파일의 데이터는 Step Functions로 구성 된 파이프라인 각 스텝의 input 값으로 사용 됩니다.

  • cdk.json: CDK Toolkit이 CDK app을 어떻게 실행할지 command를 지정 및 context value를 추가하는 곳.

  • requirements.txt: 필요한 Python 패키지 정보가 기록되어 있습니다.

Python 가상환경 만들기 & 패키지 설치

실습에 필요한 패키지들을 추가 설치하기 위해 Python 가상환경을 생성할 것입니다.

먼저 Terminal 창에 다음 명령어를 입력하여 프로젝트 폴더로 이동합니다.

cd ~/environment/forecast-mlops-cdk

다음 명령어를 입력하여 가상환경을 생성 합니다.

python3 -m venv .venv

위 명령어로 가상환경이 생성된 후 다음 명령어를 입력하여 가상환경을 활성화 합니다.

source .venv/bin/activate

가상환경이 활성화되면 다음 명령어로 의존성 패키지들을 설치 합니다.

pip install -r requirements.txt

 

Bootstrap CDK

CDK 앱을 처음 배포한다면 CDK toolkit에 필요한 리소스들을 먼저 배포 해야 합니다. 새 터미널 창을 열어 다음 명령어로 CDK toolkit stack을 배포 합니다.

cdk bootstrap

다음과 같이 CDK Toolkit에 필요한 리소스가 배포 됩니다.

 ⏳  Bootstrapping environment aws://111111111111/ap-northeast-2...
CDKToolkit: creating CloudFormation changeset...
[██████████████████████████████████████████████████████████] (3/3)