[mlflow] 3. cloud run 배포

Sun·2024년 5월 4일

mlops

목록 보기
3/3

mlflow를 gcp 환경에 배포하는 마지막 시간으로 cloud run에 저번시간에 올려 놓은 이미지를 배포해보겠습니다.

에러해결

그런데 계속해서 cloud run에 배포하는데 있어 오류가 계속 떳습니다.

ERROR: (gcloud.run.deploy) Revision 'my-mlflow-server-custom-00001-l9v' is not ready and cannot serve traffic. The user-provided container failed to start and listen on the port defined provided by the PORT=8080 environment variable. Logs for this revision might contain more information.
  • 포트가 오류인가 싶어, 포트 구성도 다시 해봤고, 인증때문인가 싶어 , access key 도 다시 세팅해봤는데 안되서 며칠 끙끙 헤멨습니다. 로컬에서는 이미지가 떠서 잘 돌아가는데 cloud run에서는 안돌아가는게 너무 이상했습니다.
  • 알고보니 mac m1에서 도커 이미지를 빌드 할때, 일반적인 이미지 빌드하는 아래 커맨드로 로컬에서 이미지를 빌드하면 안되는거였습니다.
#이걸 사용하면 안되요.
docker build -t {project-name} .

대신 다음의 커맨드를 사용해야 합니다.

# 이걸 사용해야 합니다.
docker buildx build --platform linux/amd64 -t {project-name} .

에러해결에 참조한 stackoverflow 페이지
해당 에러를 해결해주는데 참조한 블로그 포스트

다른 방법으로 구글에서는 클라우드에서 이미지를 빌드하라고 하네요.

gcloud builds submit --tag IMAGE_URL

구글 컨테이너 클라우드 빌드 페이지

이미지를 빌드하면 아래와 같이 amd 64라고 마크가 표시되네요.

에러픽스

cloud run 배포

이제 다시 첫번째 문서의 cloud run 항목을 참고하여 콘솔에서 배포합니다.

생성 콘솔화면

잘 따라하니 이번엔 드디어 정상적으로 배포되었습니다.

cloud run 배포 성공

초기 인증화면
mlflow 초기인증화면

로그인 후 정상적으로 접속이 됩니다.

로그인 후 페이지

포스트를 마치며

  • cloud run에 로컬에서 빌드한 컨테이너 이미지를 배포하는데 생각지도 못한 곳에서 오류가 해결되는 걸 보고 허무하다는 생각을 했습니다.
  • 그래도 이번에 mlflow를 google cloud platform에 배포하는 경험을 통해 mlops에 한발 다가간 거 같아 뿌듯합니다.
  • 또한 현업에서 모델 개발을 함에 있어서 좀더 실험관리가 용이해질 것 같다는 기대를 해봅니다.

3부작으로 진행된 mlflow gcp 배포시리즈는 이것으로 마치겠습니다.
부족한 글 읽어주셔서 감사합니다.

0개의 댓글