작성
·
71
·
수정됨
0
백엔드를 이 강의로 처음 알아가고 있는데 .
Horizontal Scaling 가 정확히 뭔지모르겠어요
설명해주시는 것중에서 Redis , in-memory 등
서버들이 같은정보를 바라보고서 사용자 정보를 우리가 판단 한다..
이게 무슨말인지 아예 와닿질않아요 설명 해주실 수 있을까요
답변 1
0
안녕하세요!
스케일링은 서버의 스펙을 올리는 행위입니다.
간단히 설명드리기 위해서 메모리로만 예를든다면 16GB의 메모리를 서버에서 사용하고 있을때 초당 10개의 요청을 소화 할 수 있다고 가정 해보겠습니다.
어느날 갑자기 저희 서비스가 너무 큰 성공을 해버려서 초당 20개의 요청을 소화 해야한다면 16기가 메로리 서버로는 감당이 불가능합니다. 서버가 다운되죠.
그렇기 때문에 우리는 서버 리소스를 올려줘야합니다.
방법은 두가지가 있습니다.
1) Vertical Scaling -> 메모리 32기가짜리 서버를 사용한다. 말 그대로 서버 하나의 하드웨어의 스펙을 올리기 때문에 Vertical Scaling이라 부릅니다.
2) Horizontal Scaling -> 메모리 16기가짜리 서버를 두개 사용한다. 인프라 이해도가 없다면 1번과 똑같다고 생각 할 수 있습니다. 하지만 구축 방식이 완전 달라집니다. 32기가 메로리의 서버를 하나만 사용하면 저희가 프로세스를 하나만 실행해도 됩니다. (정말 고수가 된다면 이것도 사실이 아니지만 초보 레벨이니 그냥 그렇게 가정하겠습니다). 하지만 서버가 두개되면 각 서버에 프로세스를 실행해줘야하고 (NestJS를 각각 서버에 실행해줘야함) 두 서버는 서로 독립적으로 운영됩니다. 그럼 1번에서 신경쓸 필요가 없었던 다양한 문제들이 생깁니다. 메모리 공유 불가 등,, 이렇게되면 단순히 백엔드에서 뿐만 아니라 인프라 티어와 협력이 필요해집니다. 고로 개발 복잡도가 기하학적으로 복잡해집니다.
감사합니다!