본문 바로가기

IT/Network

네트워크 이야기 - 로드밸런싱

대부분 스위치라고 하면 cisco를 떠올리겠지만 그 외에도 수 많은 벤더들이 있고 그만큼의 스위치가 있다. 그 중 알테온이나 파운드리같은 벤더는 우리나라에서 L4장비로 유명해졌다. 레이어 2, 레이어4에 대해서는 다들 간략하게라도 알고 계실듯하다. 

L2는 2계층이라 같은 말이고 2계층은 데이터링크 계층이며 서로 통신을 주고 받을때 MAC주소를 통해 서로를 구분한다 정도? L4는 4계층을 의미하고 4계층은 전송계층으로 서로 통신을 주고 받을 때 포트를 통해서 주고 받는다. L7은 7계층이며, 어플리케이션계층으로 서로 통신을 주고 받을 때 url 자체를 보고 통신을 주고 받는다 정도가 우리가 흔히 아는 지식 수준일듯하다(나만 그런가..)

여기서 통신을 주고받는 과정을 말하려는건 아니다(찾아보셈 재미있음 ㅎ) 여기서 중요한 것은 왜 그렇게 구분하는가일 것이다. 기본적으로 L4는 포트를 인식할 줄 아는 녀석이니까 웹서버는 80포트로하고 톰캣은 8080으로하고 mysql은 3306으로 하자. 머 이런걸 나누는 목적으로도 사용될 수 있겠지만 L4~L7 스위치가 존재하는 진짜 목적은 바로 로드밸런싱이다.

과거 pc통신시절이나 인터넷에 정보가 극히 드물었던 시절에는 좋은 장비, 좋은 서버들이 필요가 없었다. 단순히 정보만 제공하였고 사용자가 많지도 않아서 결국 장애가 발생해도 문제될게 별로 없었다. 하지만 시간이 흐르고 그런 장난질들이 사업이되고 수익이 발생되면서 장난이 아닌게 되어버렸고 네이버나 구글같은 대형 업체에서는 3~4초 정도의 검색 지연만 발생하여도 큰 문제로 인지하는 세상이 되어버렸다. 왜? 사람들은 느리면 다른 검색사이트를 이용할테니까..

그래서 초기에 엔지니어들은 서버의 성능을 늘리는데 주력했다. 서버의 cpu와 메모리를 증설해서 웹페이지의 반응속도를 올리고 그래도 안되면 대형서버(스케일 업이라고도 하져)를 짱짱한 놈으로 구입해서 서비스하기도 했다. 하지만 역시나 그것만으로는 한계가 있었고 수지타산이 맞지 않는 문제가 있었다. 그래서 등장한것이 바로 로드밸런싱이다.

서버를 이용한 로드밸린싱 중 최초의 로드밸런싱이라할 수 있는 것은 아마 DNS를 이용한 로드밸런싱이 아닐까 생각한다. 지금도 그렇지만 cmd창 열어서 nslookup www.google.com이라고하면 이름은 하나인데 Address는 5~6개가 뜨는 것이 보일 것이다. 이것이 바로 DNS를 이용하여 로드밸런싱한 케이스이다.

DNS를 이용한 로드밸런싱은 외부에서 DNS를 요청하면 같은 서비스를 하는 서버들을 여러개 둬서 A가 www.google.com으로 요청하면 1서버 ip로 가고 B가 www.google.com으로 요청하면 2서버 ip로 가고하는 방식이 DNS를 이용한 로드밸런싱이며, 서버가 추가될 때마다 zone파일이라는 곳에 추가만 해주면 되니까 굉장히 간단하고 싸게 서버의 자원을 증가시킬 수 있는 방법이었다(사람들 머리 진짜 좋다 정말)

인포그래픽으로 막 멋있게 하고 싶은데 할줄아는건 파워포인트와 그림판뿐...인포그래픽 배우고싶당


불행히도 DNS는 큰 단점을 가지고 있었다. 서버가 하나 다운되어도 그 죽은 서버로 계속 사용자를 할당하는 문제가 있었다. DNS가 서버가 살았는지 죽었는지 알게뭐람? 걍 보내기만 할뿐이지...

문제가 생긴걸 알고 zone에서 빼버려도 DNS 캐시때매 망가진 서버를 찾게된다. 참 위에처럼 순서대로 가는게 라운드로빈이라고 하는 방식


두번째 방식은 LVS 정도쯤이려나?(아는게 없어서 자신이 없네 ㅋㅋ) 리눅스는 LVS, 윈도우는 WLBS라고하고 이름 좀 있다하는 회사들은 다 하나씩 가지고 있는 이것을 클러스터링이라고 부른다.

단, os가 동일해야한다는 단점이 있고, 이걸 잘 운용하려면 엔지니어의 실력이 좋아야한다. LVS를 적용하는 것 자체는 그리 어렵지 않고 LVS를 보완할 수 있는 솔루션들이 많지만 LVS를 제대로 이해하고 운용할 줄 아는 엔지니어는 실상 그리 많지 않을것이다.(생각보다 어렵다) 

그리고 가장 큰 문제는 돈아끼겠다고 LVS로 로드밸런싱하고~ NAT서버 만들어서 돌리고~ 해도 잘 된다는 보장도 없고 잘 안되면 결국 그 책임은 내탓으로 돌아온다... 

그러니 자연스럽게 서버의 소프트웨어를 이용한 로드밸런싱보다는 그냥 돈주고 로드밸런싱 장비 하나 사서 안되면 그 회사를 탓하면되니까 자연스럽게 L4~L7 스위치를 이용한 로드밸런싱이 주를 이루게 되었다. it는 뭔가 이런식의 일들이 굉장히 많다...

'IT > Network' 카테고리의 다른 글

NMS(Network Management System)  (0) 2015.02.14
UTP 케이블 / 카테고리 란? / 케이블 종류  (0) 2014.12.14
이더넷(Ethernet), 토큰링(Token-Ring)  (0) 2014.12.14
랜카드? NIC? 이더넷카드?  (0) 2014.11.27
TCP/IP 란?  (0) 2014.11.27