wishpang - 크롤러 서버리스로 분리하기

ool2o8·2024년 2월 22일
0

wishpang (FastAPI+React)

목록 보기
6/6

wishpang 프로젝트의 가장 중심적인 부분을 차지하는 크롤링은 역시나 가장 큰 리소스를 소비한다. 하지만 가격 크롤링은 매초 서버가 켜져 있을 필요가 없고, 한시간에 한번 등 특정 시간에만 한번 동작하면 된다.

이에 크롤러를 외부로 분리할 필요성을 느꼈고, 가장 작은 용량의 클라우드 컴퓨터 하나와 서버리스의 함수를 도입하기로 했다.

어떤 서버리스를 이용할 지 알아보았는데 그 중 헷갈렸던 google cloud service의 cloud run 과 cloud function에 대해 알아보자.

Cloud Run

자동으로 서비스를 운영, 구성, 확장해준다. 생산성을 높이기 위한 클러스터를 만들거나 인프라를 관리할 필요가 없다.

Cloud Run 서비스

웹 요청 또는 이벤트에 응답하는 코드를 실행하기 위해 사용된다.

기본 기능

  • 모든 서비스의 고유 HTTPS 엔드포인트
  • 빠른 요청 기반 자동 확장
  • 기본 제공되는 트래픽 관리
  • 비공개 및 공개 서비스

Cloud Run 서비스를 사용해야 하는 경우

  • 웹사이트 및 웹 애플리케이션
  • API 및 마이크로서비스
  • 스트리밍 데이터 처리

Cloud Run 작업

반복 작업을 예약하거나, 워크플로의 일부로 실행할 수 있습니다.

Cloud Run 작업을 사용해야 하는 경우

  • 스크립트 또는 도구
  • 배열 작업
  • 예약된 작업

Cloud Function

Google Cloud Functions는 클라우드 서비스를 빌드 및 연결하기 위한 서버리스 실행 환경입니다. Cloud Functions를 사용하면 클라우드 인프라와 서비스에서 발생하는 이벤트에 연결되는 단일 목적의 간단한 함수를 작성할 수 있습니다. 함수는 감시 중인 이벤트 발생 시에 트리거됩니다. 코드는 완전 관리형 환경에서 실행되므로, 인프라를 프로비저닝하거나 서버를 관리할 필요가 없습니다.

사용 사례

  • 데이터 처리/ETL
  • 웹훅
  • 경량형 API
  • 모바일 백엔드
  • IoT

cloud function 과 cloud run service의 가장 큰 차이점

run : 서비스 또는 작업을 Cloud Run에 배포할 수 있으려면 이를 컨테이너 이미지에 패키징해야 한다.
function : 서버나 컨테이너를 관리할 필요 없이 클라우드에서 코드를 실행한다.

wishpang에서 가격을 주기적으로 크롤링하는 기능에는 cloud run job을 이용하고, 상품 등록 시 최초에 상품 정보를 가져오는 기능에는 cloud run service를 이용하기로 했다.

0개의 댓글