아하
  • 토픽

  • 스파링

  • 잉크

  • 미션


고상한얼룩말245

고상한얼룩말245

분당 1000건의 webhook을 견디는 서버

평균적으로 분당 1000건의 webhook을 견디는 서버를 하나 만드려고 합니다.

혹시 추천하는 언어나 framework가 있을까요?

별개로 서버 환경은 호출이 많을때를 대비하여 lambda보다는 fargate 정도로 생각하고 있습니다.

감사합니다.

    4개의 답변이 있어요!

    • 산뜻한삵255

      산뜻한삵255

      개인적으로 golang 언어를 추천드립니다. 경험적 기반에서 말씀드리면 분당 20000 request의 처리를 구현한 적이 있습니다. 로드밸런싱 적절하게 해주면 그 이상도 가능합니다. 서버의 메모리가 부족하면 조금 어려울수 있으나 16GB 정도로만 해주어도 충분히 가능합니다. 데이터 크기에 따라서도 조금은 영향이 있을수 있겠지만 그래도 크게 문제 없습니다. Golang 언어를 써보세요.

    • 평균적으로 분당 1000건의 webhook을 견디는 용도의 프레임워크 질문하셨습니다.

      Apache Kafka 추천드립니다.

      실시간 시스템 로그를 모니터링하는 용도에도 적합할 정도로

      처리량이 많습니다.

      현재 활발히 개발되고 있는 오픈소스 프레임워크이고

      다양한 언어에서 불러와 활용할 수 있습니다.

    • 안녕하세요.

      분당 1000개의 webhook이면 TPS로 치면 16.66TPS..대략 17TPS인데요, 물론 평균으로 잡은 것이니 순간적으로 더 올갈수는 있겠지만요,

      처리해야 하는 webhook의 데이터와 프로세싱에 따라서 다르겠지만 Django, node.js등 범용적인 것을 사용하셔도 무방해 보입니다.

      Microservice구조로 위의 것들 모두 작성이 가능하니 편하신쪽으로 선택하시면 될 것 같습니다. 다만 성능보다는 서비스의 특징에 따라서 lambda와 fargate를 구분하시는 것이 좋을 거 같습니다. labmda는 invocation에 대해서 비용을 산정하지면 fargate는 vCPU와 메모리에 따라서 가격을 산정하기 때문입니다.

    • 안녕하세요

      분당 1000건이라고 하면, 1초로 계산했을때 1초당 16.6 의 연결이 이루어지는것으로 계산이 되는데요

      이 정도는 왠만한 서버는 전부 견딜수 있습니다

      만약 초당으로 많은 세션(연결)을 견뎌야 한다면?

      RAM 을 늘리시구요 , 웹서버 설정을 확장된 램만큼 설정해주시구요

      마지막으로 SSD 를 저장매체로 사용해주세요,

      가능하다면 저장장치를 HDD가 아니고 SSD 도 아니고

      M.2 NVMe 를 지원하는걸 추천드립니다

      만약 서버가 M.2 NVMe 를 지원하지 않는다면 SSD 를 추천드립니다

      저의 답변이 도움되었으면 하네요^^