개발 일반

[cron job] 크론잡 부하 줄여주기 with spring batch, SNS, SQS

민초부 2021. 6. 28. 10:56
반응형
  • 이번 시스템 리뉴얼 배포때문에 지옥 문턱까지 보고 돌아온 기념 까먹기 전에 일단 이슈 정리 함 

 

  • 이번 리뉴얼 중 메인 골자 중 하나가 자동화임
    • 주기적으로 수출입건에 대해 관세청 API를 조회해야했고 aws 람다를 통해 30분마다 크론잡을 돌려주기로 하였음 
    • 문제는 관세청 API를 매건 호출해야하는 것도 문제인데 이 중 특정 조건을 성립하는 수입건은 update도 해주고 고객사에 안내메일도 보내줘야 했다.
    • 이걸 cron job에서 쏘는 리퀘스트 하나로 처리하면 분명 문제가 될 것이라 Unipass 이후의 작업에 대해서는 따로 또 분리하여 처리를 해주려고 함 

 

  • 따로 처리를 해주려고 하는 친구 후보 
    • AWS SNS : 이미 많이 사용 중인 친구임. 사실 최근에 이메일, 문자 발송 서비스는 aws가 아닌 postmark로 옮겼지만 (이메일 발송 이력 관리 및 중국 메일 발송 문제 때문에..) 엔드포인트를 내가 새로 만들 API로 잡아주고 주제만들어서 처리하게 하면 될 듯 
    • AWS SQS : 사용한 적은 없는데 CTO님은 이것도 후보에 추천해주시긴함 (SNS가 더 적합하다고 하시고)
      • 대용량에는 뒤에 워커를 많이 달아서 처리하면 되기 때문에 이게 더 적합하긴함 
    • 아예 새로운 배치 서버를 올리기 : 30분마다 크론 잡 + (SNS or SQS) 가 돌아가는거보다 차라리 새로 배치 서버를 올리고 거기서 처리하는게 더 깔끔하고 비용도 나을 꺼 같음 ㅎ.ㅎ 람다가 뭐 트래픽이 심하지 않으면 돈이 안 들어간다고는 하는데 나중에 봤을 때도 크론 잡 + (SNS or SQS) 이렇게 되어있으면 관리하는 것도 쉽지 않아보인다. (스프링배치 같은거.. 인데 우린 노드라서 근데 ㅠㅠ ). 
  • 이번 스프린트 배포되면 배치 서버 올리는걸로 자료 조사해서 CTO님한테 말해야게따 ㅎㅎ 

 

반응형