<aside> 📢 <Table of Contents> 개요
</aside>
이번 포스팅은 MLflow-GCP 간 연동에 대한 두 번째 글입니다. 앞선 포스팅을 읽지 않으신 경우 해당 링크를 확인해주세요!
이번에는 MLflow-GCP 간 연동에 필요한 Dockerfile과 쉘 스크립트를 작성하고 세부 내용을 확인하는 시간을 갖도록 하겠습니다.
아무래도 모든 코드에 대한 설명을 포함하기 때문에, 분량이 조금 많은 편입니다. (절대로 칭찬해달라고 애원하는 글은 아닙니다 ㅎㅎ…)
틈 나실 때 조금씩 읽어보시는 것도 하나의 방법이 될 것 같아요🦾
연동을 위해 필요한 코드 트리 구조는 아래와 같습니다.
. ├── .dockerignore ├── .envs │ ├── .gcp │ └── .tracking-server ├── Makefile ├── docker │ ├── Dockerfile │ └── scripts │ └── run-server.sh ├── docker-compose.yaml ├── poetry.lock ├── pyproject.toml └── scripts ├── create-server.sh └── startup-script.sh
# GCP Environment variable
GCP_PROJECT_ID=e2eml-jiho
PROJECT_NAME=e2eml-jiho
DOCKER_IMAGE_NAME=${PROJECT_NAME}-mlflow
GCP_DOCKER_REGISTRY_NAME=mlflow-jiho
GCP_DOCKER_REGISTERY_URL=asia-northeast3-docker.pkg.dev/${GCP_PROJECT_ID}/${GCP_DOCKER_REGISTRY_NAME}/${DOCKER_IMAGE_NAME}
# IMAGE_NAME=<gcp-machine-image-name>
IMAGE_NAME=ubuntu-2204-jammy-v20240126
# IMAGE_PROJECT_ID=<gcp-machine-image-project-name>
IMAGE_PROJECT_ID=ubuntu-os-cloud
# Compute Instance (GCP VM Instance)
VM_NAME=${PROJECT_NAME}-mlflow
REGION=asia-northeast3
ZONE=asia-northeast3-c
LABELS=env=production,project=e2eml-jiho,task=jiho-mlflow-tracking-server
MACHINE_TYPE=n2-standard-4
NETWORK=default
SUBNET=default