이번 글은 이전에 만든 Feature Store를 활용하여 FastAPI를 어떻게 배포하는지에 대해 다루고자 합니다.
1. GCP에서 Project 설정
이전 글과 마찬가지로 동일한 project에서 할 예정이지만 FastAPI를 수행하기 위해서는 IAM 및 관리자에서 자격 증명을 해야합니다. 권한을 얻어야합니다.
작업 순서 : 서비스 계정 - 작업 - 키 관리 - 키 추가 - 새 키 만들기
json file들이 다운받아지는 것을 알 수 있습니다.
2. Feast FastAPI App 생성
우측 상단 [Cloud shell 활성화]를 클릭합니다.
그 후 여기를 git clone 을 수행합니다. 아래 그림을 참고해주셔야합니다. 시간이 다소 걸립니다.
cd gcp-feast-app
virtualenv env
source env/bin/activate
pip install -r requirements.txt
설치가 다 된것을 알 수 있습니다.
[편집기 열기] 를 누릅니다.
[env 폴더에 json key 파일 생성] 합니다. 저장했던 json file이름대로 밀어넣고 내용물을 채우시면 됩니다.
main.py 로 들어갑니다. 그 후 아래 요소들을 수정합니다.
- PROJECT ID, BUCKETNAME, BIGQUERY_DATASET_NAME > 이전 Colab에서 수정했던 부분을 기입합니다.
- AI_PLATFORM_MODEL_NAME 변경
- feature_store.yaml 내 registry 변경
- 다운을 받았던 JSON 파일 이름 변경
app.yaml 을 추가합니다. 우클릭 후 새 파일을 만들어서 아래 내용을 채워 넣습니다.
runtime: python37
entrypoint: gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app
instance_class: F2
" gunicorn -w 4 -k uvicorn.workers.UvicornWorker main:app " 이 부분이 entry point인데, 터미널에 가서 확인할 수 있습니다. 동그라미 친 4개 worker들이 수행되면 정상적으로 동작하는 것 입니다.
[포트 변경 - 8000] - [변경 및 미리보기] 를 수행합니다.
웹 확인을 하면 됩니다. "Fraud Dectection !"이 뜨면 application이 다 준비 되었다는 뜻입니다.
3. GCP App 생성
- Cloud Build API 사용 설정
- "gcloud app create"
- 5번 선택
- "gcloud app deploy app.yaml" > y 누릅니다. 상당히 오랜 시간이 걸립니다.
- gcloud app browse
- target url 접속 테스트 : https://gcp-mlops-feast-project.du.r.appspot.com 을 복사하여 접속해봅니다.
FastAPI를 수행하였기 때문에 docs가 따라오게 되어있습니다. (https://gcp-mlops-feast-project.du.r.appspot.com/docs)
이전 글에서 테스트를 했었던 predict.py 함수 부분을 복사해서 entity id에 넣어 실행해봅니다. 큰 따옴표는 들어가서는 안됩니다.
즉, 앞에서 예약작업을 해두었고, 하루마다 갱신되는 feature store가 있는데 거기서 api를 통해 추출할 수 있기 때문에 mlops 환경에서 feature store가 이미 구축되어있었다고 가정되어있다고 하면 Feature를 추출할 수 있다는 뜻 입니다.
다음글에서는 MLOps를 정리하는 글로 찾아뵙겠습니다.
* 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'AI > MLOps' 카테고리의 다른 글
[패스트캠퍼스 챌린지 최종 미션] 머신러닝서비스구축을위한실전MLOps 강의 후기 (2) | 2022.03.21 |
---|---|
[패스트캠퍼스 챌린지 50일차] Future Works in MLOps (0) | 2022.03.14 |
[패스트캠퍼스 챌린지 48일차] GCP - Feast Feature Store (2) (0) | 2022.03.12 |
[패스트캠퍼스 챌린지 47일차] GCP - Feast Feature Store (1) (0) | 2022.03.11 |
[패스트캠퍼스 챌린지 46일차] Amazon SageMaker Autopilot 실습 (0) | 2022.03.10 |