빠르고 매끄러운 인터넷 연결이 요구되는 디지털 시대에 더 방대해지는 트래픽을 원활하게 처리하는 기술도 중요해졌습니다. 하지만 기업들은 빠르게 발전하는 기술의 속도를 따라가기에만 급급해 코어 시스템 도입에만 집중하고 네트워크, 보안 등의 보완 시스템에 대한 투자에는 소홀한 것이 사실입니다. 금융업만 봤을 때 국내 금융권의 전산 장애 건수는 2019년 196건, 2020년 198건, 2021년 228건으로 매년 증가하고 있습니다1. 시스템 결함이나 네트워크 장애 등이 사고 원인으로 미루어 볼 수 있지만 은행 및 증권업의 경우는 IPO 등 시장 이슈에 따라 트래픽이 몰리거나 갑자기 트래픽이 느슨해질 수 있는 환경적 특성이 있습니다. 하지만, 고도화된 기술 서비스에는 더욱 많은 접속자들이 몰리고, 이를 운영하기 위해서는 보다 안정적이고 향상된 인프라 구축이 필요합니다. 이번 글에서는 효율적이고 안정적인 IT 운영을 위한 기술, 로드밸런싱(Load Balancing)을 소개합니다.
금융 뿐만 아니라 산업군을 막론하고 속도와 연결이 중요한 디지털 환경에서 서버 장애는 기업의 신뢰도와 직결되는 큰 문제입니다. 우리가 사용하고 있는 웹사이트들은 수 십만, 수백만에 달하는 방대한 양의 클라이언트 요청을 받고 처리합니다. 방대한 양의 트래픽이 한 곳에 몰리면 서버 지연이 발생합니다. 이런 상황을 대비해 트래픽을 효율적으로 분산하기 위한 방법으로는 DNS 라운드 로빈, IP 대역폭 분할, 프록시 서버, 로드밸런싱 등 여러 방법들을 사용하고 있습니다. 그리고 이 중 가장 널리 사용되는 기술이 로드밸런싱 입니다.
로드밸런싱이란?
로드밸런싱은 서버 장애에 대비하는 대표적인 방법 중 하나로 여러 컴퓨터 또는 서버로 들어오는 네트워크 트래픽을 적절히 분산시키는 기술을 말합니다. 로드밸런싱을 사용하면 여러 서버의 능력 및 용량을 활용할 수 있어, 높은 처리 능력을 확보할 수 있습니다. 예를 들어, 온라인 쇼핑몰의 가격 할인 프로모션, 정규 이벤트 등으로 사용자가 갑자기 몰리면서 트래픽이 높아지는 경우 하나의 서버에서 모든 트래픽을 처리하기에 능력/용량이 부족할 수 있습니다. 이 때, 로드밸런싱을 활용하면 여러 서버에 트래픽을 분산, 트래픽 과부하를 방지할 수 있습니다.
로드밸런싱을 처리하는 장비는 ‘로드밸런서’ 입니다. 로드밸런서는 서버 장애가 발생한다 하더라도 서비스를 정상적으로 운영할 수 있도록 합니다. 로드밸런서는 서버의 앞 단에 위치해 순간적으로 들어오는 대량의 트래픽을 서버팜(Server Farm, 네트워크로 연결된 클라우드 서버 환경)에 분배해 서버의 부하를 줄여줍니다. 클라이언트의 요청에 반응하는 속도를 유지하는데 기여해 마치 교차로 에서의 교통 경찰 같은 역할이라고 이해하시면 됩니다. 로드밸런서(Load balancer)는 사용량이 급증할 수 있는 서비스를 제공하는 웹 애플리케이션, 클라우드 컴퓨팅, 온라인 게임 등의 영역에서 기업들이 활용하고 있습니다.
로드밸런싱의 동작 원리
로드밸런싱의 동작 원리는 대규모 서비스에서 들어오는 트래픽을 여러 서버에 균등하게 분산하여 하나의 서버에서 발생할 수 있는 과도한 부하를 방지하는 것입니다. 로드밸런서는 클라이언트 요청에 따라 트래픽을 적절한 서버로 분산합니다. 이를 위해 각 서버의 상태(사용량, 처리 능력/용량 등)를 모니터링하고, 적절한 알고리즘(Round Robin, Least Connection 등)을 사용하여 트래픽을 분산합니다. 이를 통해 모든 서버에서 일정한 수준의 서비스 품질을 유지할 수 있습니다.
로드밸런서는 여러 서버의 상태를 모니터링 하여, 처리 능력/용량이 높은 서버에 요청을 전송합니다. 로드밸런서는 분산 방법을 결정할 수 있으며, 이에 따라 라운드 로빈(Round Robin), 가중치(Weighted) 방식 등이 있습니다.
- 라운드 로빈 방식: 클라이언트 요청 순서대로 서버를 배정하는 방식
로드밸런서는 분산 처리 가능한 레이어 수준에 따라 L4와 L7 스위치가 제공되고 있습니다.
[그림 1. 로드밸런싱 동작 원리]
클라우드 환경에서 로드밸런싱은?
클라우드 환경에서 로드밸런싱의 역할은 더욱 중요합니다. 우선, 클라우드 로드밸런싱은 클라우드 컴퓨팅 환경에서 워크로드를 분산하고 인스턴스에 들어오는 트래픽을 자동 분산해주는 처리 방식입니다.
일반 로드밸런싱은 온프레미스 방식으로 기업이 자체적으로 보유하고 운영하는 인프라에서 수행되는 반면, 클라우드 로드밸런싱은 클라우드 서비스 공급자의 인프라에서 수행됩니다. 기업의 자체 하드웨어 기반 로드밸런싱과 달리 트래픽 분산을 소프트웨어 기반 접근 방식으로 적용합니다. 따라서, 클라우드 로드밸런싱은 클라우드 서비스 공급자가 관리하기 때문에 이용자는 유지·보수에 대한 부담이 없고, 자체 장비나 리소스를 준비할 필요가 없기 때문에 비용면에서도 경제적입니다. 또한, 클라우드 로드밸런싱은 트래픽 양에 따라 서버 자체의 성능을 확장하거나(스케일업, scale up) 기존 서버 사이즈의 서버를 물리적으로 추가(스케일다운, scale down)할 수 있어 유연하게 운영할 수 있게 돕습니다.
클라우드 환경에서 로드밸런싱이 중요한 이유를 크게 가용성(Availability)과 확장성(Scalability)의 측면에서 생각할 수 있습니다.
1. 가용성 향상
사용자의 요청을 여러 서버로 분산하여 하나의 서버에 몰리는 부하를 방지할 수 있습니다. 이로 인해 서비스의 가용성이 향상되어 사용자에게 높은 품질의 서비스를 제공할 수 있습니다. 또한, 하나의 서버에 장애가 발생하더라도 다른 서버에서 요청을 처리할 수 있습니다.
2. 확장성 개선
클라우드 환경에서는 클라이언트의 요청이 증가해도 서버를 쉽게 추가할 수 있습니다. 로드밸런싱을 사용하면 추가된 서버의 트래픽을 분산하여 부하 문제를 미연에 방지할 수 있습니다.
코로나19 팬데믹 시기 비즈니스가 디지털로 급속하게 전환되면서 떠오른 개념 중 하나가 회복탄력성(Resilience) 입니다. 위기를 선제적으로 대응, 위기 상황에도 신속하게 회복할 수 있는 유연성이 기업의 디지털 핵심 역량으로 꼽히고 있습니다. 특히, 모든 비즈니스의 근간이 되는 IT 인프라는 회복탄력성에 가장 큰 영향을 미치는 요소 중 하나입니다. 로드밸런싱을 통해 시스템의 부하를 분산하여 서버 과부하로 인한 시스템 장애를 방지함으로써 신속하고 안정적인 복구 환경을 구현할 수 있습니다.
세줄 요약
해당 콘텐츠는 저작권법에 의해 보호받는 저작물로 다우기술에 저작권이 있습니다.
해당 콘텐츠는 사전 동의없이 2차 가공 및 영리적인 이용을 금하고 있습니다.
Featured images via gettyimages.
References