wishpang 프로젝트의 가장 중심적인 부분을 차지하는 크롤링은 역시나 가장 큰 리소스를 소비한다. 하지만 가격 크롤링은 매초 서버가 켜져 있을 필요가 없고, 한시간에 한번 등 특정 시간에만 한번 동작하면 된다.
이에 크롤러를 외부로 분리할 필요성을 느꼈고, 가장 작은 용량의 클라우드 컴퓨터 하나와 서버리스의 함수를 도입하기로 했다.
어떤 서버리스를 이용할 지 알아보았는데 그 중 헷갈렸던 google cloud service의 cloud run 과 cloud function에 대해 알아보자.
자동으로 서비스를 운영, 구성, 확장해준다. 생산성을 높이기 위한 클러스터를 만들거나 인프라를 관리할 필요가 없다.
웹 요청 또는 이벤트에 응답하는 코드를 실행하기 위해 사용된다.
기본 기능
Cloud Run 서비스를 사용해야 하는 경우
반복 작업을 예약하거나, 워크플로의 일부로 실행할 수 있습니다.
Cloud Run 작업을 사용해야 하는 경우
Google Cloud Functions는 클라우드 서비스를 빌드 및 연결하기 위한 서버리스 실행 환경입니다. Cloud Functions를 사용하면 클라우드 인프라와 서비스에서 발생하는 이벤트에 연결되는 단일 목적의 간단한 함수를 작성할 수 있습니다. 함수는 감시 중인 이벤트 발생 시에 트리거됩니다. 코드는 완전 관리형 환경에서 실행되므로, 인프라를 프로비저닝하거나 서버를 관리할 필요가 없습니다.
사용 사례
run : 서비스 또는 작업을 Cloud Run에 배포할 수 있으려면 이를 컨테이너 이미지에 패키징해야 한다.
function : 서버나 컨테이너를 관리할 필요 없이 클라우드에서 코드를 실행한다.
wishpang에서 가격을 주기적으로 크롤링하는 기능에는 cloud run job을 이용하고, 상품 등록 시 최초에 상품 정보를 가져오는 기능에는 cloud run service를 이용하기로 했다.