Day 68 · 4/5
🌳 고급 인프라

스케일링이 뭔가요?

쉽게 이해하기

스케일링은 식당 운영과 비슷해요. 손님이 많아지면 두 가지 방법이 있어요. 더 큰 주방과 더 많은 테이블을 갖춘 큰 식당으로 이사하거나(수직 스케일링), 같은 크기의 식당을 여러 개 열어서 손님을 분산시키는 거죠(수평 스케일링). 웹 서버도 마찬가지예요.

핵심 정리

트래픽 증가에 대응해 서버 용량을 늘리는 것이에요.

자세히 알아보기

스케일링은 사용자 수나 데이터양이 늘어날 때 시스템이 그 부하를 처리할 수 있도록 용량을 확장하는 것을 말해요. 크게 수직 스케일링(Scale Up)과 수평 스케일링(Scale Out) 두 가지 방식이 있어요. 수직 스케일링은 기존 서버의 사양을 업그레이드하는 거예요. CPU를 더 빠른 것으로 바꾸고, RAM을 늘리고, 더 빠른 SSD를 다는 식이죠. 구현이 간단하고 코드 변경이 필요 없다는 장점이 있어요. 하지만 한계가 있어요. 아무리 좋은 CPU를 달아도 물리적인 한계가 있고, 가격도 기하급수적으로 올라가죠. 또 서버 한 대에 의존하기 때문에 그 서버가 다운되면 전체 서비스가 멈춰요. 수평 스케일링은 서버를 여러 대로 늘리는 거예요. 똑같은 사양의 서버를 10대, 100대 추가하는 식이에요. 앞에 로드 밸런서를 두고 트래픽을 여러 서버에 분산시켜요. 한 서버가 다운돼도 다른 서버들이 계속 작동하니까 안정적이고, 필요할 때마다 서버를 추가할 수 있어서 유연해요. AWS나 Google Cloud 같은 클라우드 서비스는 자동으로 서버를 추가하거나 제거하는 오토스케일링 기능도 제공해요. 실제로는 두 방식을 함께 써요. 수직 스케일링으로 개별 서버 성능을 올리고, 수평 스케일링으로 서버 수를 늘리는 거죠. Netflix나 Instagram 같은 대규모 서비스는 전 세계에 수천 대의 서버를 두고 있어요. 스케일링을 고려한 설계를 stateless 아키텍처라고 하는데, 각 요청이 독립적으로 처리되어 어느 서버가 받아도 똑같이 동작하도록 만드는 거예요.