회원 가입도 없고, 요청을 입력하는 폼 하나, 결제하는 폼 하나, 결과 보는 페이지 하나 간단한 서비스인데, 꾸준히 월 100만원 정도는 벌리는 것 같습니다.
AWS는 비싸서 cloudv에서 월 7만원 짜리 서버 호스팅+Object Storage 를 이용하고 있고, failover 같은 건 없습니다. 죽으면 죽는거죠.
웹, 배치는 rails로 만들었습니다.
배치가 좀 복잡한데, sidekiq-pro의 batch 기능이 아니였으면 복잡한 워크플로우를 관리하기 힘들었을 것 같습니다. 크롤링이라는게 잘 실패하는거라 실패하면 뜸을 들여서 재시도 해야하고, 모든 크롤링이 끝나야 그 다음 작업으로 넘어가야하고, 중간에 job 하나가 retry limit을 넘어서 죽으면 노티도 와야하고... 간단치가 않은데 sidekiq 덕분에 수월하게 처리했습니다. 손으로 짤 생각하면... 끔직하네요. 사이트 별로 throttling 이 필요한 경우가 있는데, 이것도 sidekiq이 알아서 잘 해줍니다.
브라우저 오토메이션이 필요한 부분도 있는데, 같은 코드를
* splash - lua
* selenium ruby
* puppeteer node
순으로 옮겨갔다가, 지금은 playwright-ruby 로 정착했습니다.
puppeteer 가 selenium에 비해 false negative 가 없는 편이긴 하지만, 그래도 헛짓거리가 많이 필요한데, playwright 는 정말 최고입니다.
크롤링은 막히지 않는게 중요한데, 요청 한 번에 10원 아래의 비용으로 처리할 수 있게 인프라를 구성했습니다.
서비스 초반에는 한동안 월 500 이상씩 벌렸는데, 지금은 그냥이네요. 그래도 몇 달동안 서버 한번 접속한 적 없이 운영되고 있어 용돈벌이로는 만족스럽습니다.
웹사이트를 크롤링해서 엑셀로 정리해서 내려주는 유틸리티 서비스 하나 운영하고 있습니다.
회원 가입도 없고, 요청을 입력하는 폼 하나, 결제하는 폼 하나, 결과 보는 페이지 하나 간단한 서비스인데, 꾸준히 월 100만원 정도는 벌리는 것 같습니다.
AWS는 비싸서 cloudv에서 월 7만원 짜리 서버 호스팅+Object Storage 를 이용하고 있고, failover 같은 건 없습니다. 죽으면 죽는거죠.
웹, 배치는 rails로 만들었습니다.
배치가 좀 복잡한데, sidekiq-pro의 batch 기능이 아니였으면 복잡한 워크플로우를 관리하기 힘들었을 것 같습니다. 크롤링이라는게 잘 실패하는거라 실패하면 뜸을 들여서 재시도 해야하고, 모든 크롤링이 끝나야 그 다음 작업으로 넘어가야하고, 중간에 job 하나가 retry limit을 넘어서 죽으면 노티도 와야하고... 간단치가 않은데 sidekiq 덕분에 수월하게 처리했습니다. 손으로 짤 생각하면... 끔직하네요. 사이트 별로 throttling 이 필요한 경우가 있는데, 이것도 sidekiq이 알아서 잘 해줍니다.
브라우저 오토메이션이 필요한 부분도 있는데, 같은 코드를
* splash - lua
* selenium ruby
* puppeteer node
순으로 옮겨갔다가, 지금은 playwright-ruby 로 정착했습니다.
puppeteer 가 selenium에 비해 false negative 가 없는 편이긴 하지만, 그래도 헛짓거리가 많이 필요한데, playwright 는 정말 최고입니다.
크롤링은 막히지 않는게 중요한데, 요청 한 번에 10원 아래의 비용으로 처리할 수 있게 인프라를 구성했습니다.
서비스 초반에는 한동안 월 500 이상씩 벌렸는데, 지금은 그냥이네요. 그래도 몇 달동안 서버 한번 접속한 적 없이 운영되고 있어 용돈벌이로는 만족스럽습니다.