Load Balancer & Auto Scaling

isTuna·2021년 3월 25일
1

Web 개발

목록 보기
15/19

실시간 메신저 서비스를 구현하는 중에 대용량 트래픽을 어떻게 처리할지에 대한 의문이 들었습니다. 그러는 중에 동료 개발자에게 Load Balancer, Auto Scaling에 대해서 알게되었습니다. 오늘은 이 둘을 간단히 정리하는 시간을 가지겠습니다.

🤓 Load Balancer

Load Balancer는 대용량 트래픽을 처리하는데 사용됩니다. 트래픽이 많아지면 Load Balancer는 서버 부하를 경감시키기 위해 트래픽이 적은 서버로 배분해줍니다. 덕분에 배포된 서비스는 중단되지 않고 안정되게 유지될 수 있습니다.

Load Balancer는 클라이언트에 대해 단일 접점 역할을 수행합니다.

Scale Up & Scale Out

Scale Up은 서버가 더 빠르게 동작하기 위해서 하드웨어 성능을 향상시키는 방법입니다. 그와 다르게 Scale Out은 서버의 개수를 늘리는 방법입니다. 두 방법 모두 사용자가 많아질때 과부하를 줄여줍니다.

Scale Out은 하드웨어 성능을 올리지 않기 때문에 비용이 저렴합니다. 또한 서버가 여러개 있기 때문에 무중단 서비스를 제공할 수 있습니다. Scale Out을 통해 많아진 서버에 트래픽을 균등하게 나눠주는게 Load Balancer입니다.

🚀 Auto Scaling

위의 설명을 보면 Load Balancer가 일당백을 해주는 서비스로 보입니다. 하지만 서버가 과부하되서 멈추거나 종료될 때는 해결책이 없습니다. 그래서 AWS로 인스턴스를 배포할 때 Auto Scaling을 같이 사용합니다.

Auto Scaling은 인스턴스를 자동으로 시작하거나 종료시킵니다. 또한 트래픽에 따른 전략을 설정할 수 있습니다. 그렇게 되면 트래픽이 급증할 때는 더 많은 서버, 트래픽이 상대적으로 적은 새벽이나 밤 시간에는 적은 수의 서버를 자동으로 설정해서 최적화할 수 있습니다.


profile
청소연구소 개발자 (2021. 05~ )

0개의 댓글