네트워크 자원 관리를 돕는 트래픽 관리의 기본

일반입력 :2002/10/28 00:00

이윤근

인터넷 접속자 수 증가는 물론이고, 온라인 게임이 대중화, 활성화되면서 게임을 위한 프로그램을 다운로드받는 등 트래픽이 엄청나게 발생하고 있다. 온라인 게임은 특성상 버그 패치와 기능 개선을 위한 업그레이드를 자주하는 편이다. 보통 패치 프로그램과 풀 버전의 크기가 10~20MB, 300~700MB 정도인데, 이런 프로그램을 단기간에 몇 백만 사용자들이 다운로드를 받고 있다. 스트리밍 서비스의 경우도 초고속 인터넷의 보급에 힘입어 현재 여러 포털에서 고화질관이라고 해 1Mbps급의 스트리밍 서비스를 제공하고 있다. 한일 월드컵 개막 며칠 전에 치뤄진 월드컵 대표팀의 평가전(한국-프랑스)에는 300Kbps 스트리밍이었지만, 약 12GB의 트래픽이 발생했다. 국민 4만 여명이 TV가 아닌 인터넷으로 축구경기를 시청한 것이다.이와 같은 상황은 옛날 모뎀시절에는 상상도 하기 어려웠던 일이다. 국내에서 1998년 코로케이션 서비스가 선을 보이고, 2000년에 IDC(Internet Data Center) 사업이 본격화될 수 있었던 것도 따지고 보면 초고속 인터넷의 보급이 확산되고, 이를 기반으로 한 컨텐츠를 제공하는 대형 서비스 업체들이 나타나면서 생긴 필수 불가결한 진화의 과정으로 보인다. 일반적인 서버 운영 형태그렇다면 인터넷의 이용인구가 늘어나고, 가입자의 환경이 발전하고, 컨텐츠 사업자가 제공하는 컨텐츠의 고품질화가 진행되고, 접속횟수 또한 증가하는 이때 컨텐츠 사업자가 운영하는 서버와 가입자와 서버사이의 네트워크 운영 형태는 과거에 비해 어떻게 변화됐고, 또 앞으로 어떻게 변화해 나갈 것인가.

(그림 1)은 일반적인 서버 운영의 형태다. 기본적으로 서버를 구성해서 IDC에 서버를 설치하거나, 사무실에 전용선을 임대해서 서버를 운영하던 방식이다. 요즘은 특수한 경우를 제외하고는 전산실의 안정성과 회선비용 때문에 주로 IDC를 이용하고 있다.증가하는 접속자 수와 트래픽을 처리하기 위해서는 트래픽의 특성과 서버, 네트워크의 운영 형태를 이해하고 트래픽을 관리할 필요가 있다. 사용자 PC에서부터 컨텐츠를 제공하는 서버에 이르기까지의 끝에서 끝까지 모두 살펴보아야 한다는 말이다.
일반적으로 사용자에서부터 서버에 이르기까지의 경로를 (그림 2)와 같이 3가지로 구분할 수 있다. ·퍼스트 마일 : 서버와 서버가 인터넷에 연결되는 구간을 말한다. 서비스를 제공하는 서버와 이런 서버들이 인터넷으로 연결되는 회선에 장애나 병목이 있을 수 있다. 요즘은 서버가 인터넷에 연결되는 구간을 주로 IDC를 이용하므로 전용회선을 임대해서 자체 전산실을 운영하는 것보다는 안전성이 있으며, 회선의 확장이 용이해졌다. 서버의 구성은 접속자 수(트랜잭션 수)의 증가에 따른 효율적인 서버의 배치와 기능 분산, 장애대책 수립 등을 고려해야 한다. ·미들 마일 : 서버와 사용자 단에 이르는 네트워크 경로 중 ISP(internet Service Provider, 회선 판매 업체) 간의 피어링 구간이나, IX(Internet exchange) 구간을 이르는 말이다. ISP 간의 입장 문제나 엄청난 투자비로 인해 충분한 회선이 확보되지 못해 인터넷 이용의 피크 시간대에 병목이 발생한다. ·라스트 마일 : 사용자의 PC가 인터넷에 연결되는 구간을 말한다. PC의 사양을 비롯해, 인터넷 연결 수단인 전용선, ISDN, ADSL, 케이블 모뎀 등에 병목현상이 있을 수 있다. 인터넷 연결수단/지역/연결 시간대에 따라, 이용할 수 있는 대역폭이 안정적이지 못한 것이 국내 현실이다. 요즘은 무선 LAN, 메트로 이더넷 등 ISP들이 제공하는 방법이 다양화되고, 고속화되고 있다. 서버의 가용성을 고려한 서버 부하 분산 퍼스트 마일 구간에서의 관점은 서버의 운영 형태에 대한 효율성, 안정성 등이다. 물론 서버를 운영할 IDC나 전용회선도 역시 고려 대상이다. 하지만 이 부분의 안정성에 대한 문제는 ISP의 몫이고, 서비스 업체 입장에서 서버의 구성과 환경을 고려해 IDC 사업자를 선정하거나 전용회선 이용에 대한 정책을 결정하면 된다. 이 부분을 제외하면 실제로 사용자에게 서비스를 제공하게 되는 서버를 어떤 방법을 이용해 효율적이고 안정적으로 운영할 것인가가 숙제로 남게 되는 것이다.서버 관점에서 증가하는 접속을 처리하기 위해 물리적으로 서버를 증설하기도 하고, 웹 가속기와 같은 특정 애플리케이션을 설치하기도 한다. 서버를 구성할 때 고려할 수 있는 것으로 다음과 같은 것들이 있다. ·대역폭 확보 : 접속자가 증가함에 따른 대역폭을 충분히 확보할 필요가 있다.·캐싱 서버 : 사용자 요구가 많은 컨텐츠를 별도의 캐시서버에 미리 저장, 요청이 있을 경우 즉시 보내준다. 주로 이미지와 같은 정적인 데이터를 메모리에 저장하고 있다가 보내주기 때문에 컨텐츠 전송 속도를 향상시켜줄 뿐 아니라, 접속자 수 증가에 따른 서버의 증설없이 서비스를 제공할 수 있다. ·로드 밸런서 : 로드밸런싱은 웹 페이지를 구현할 서버에 요청되는 많은 작업들을 같은 기능을 하는 여러 대의 하위 서버로 분배하는 기술로, 서버의 효율성과 애플리케이션의 가용성을 제공하는 방안이다. 패킷의 3계층과 4계층의 헤더 정보와 같은 정보를 이용해서 세션을 인식하고 관리해 특정 서버에 과부하가 걸리지 않도록 순차 방식, 최소접속 방식 가중치 방식, 최소접속 방식, 응답시간 방식, 최소대기 방식, 고정 방식 등과 같은 방법으로 적절히 로드를 분배해 서버를 할당함으로써 효율성을 확보하는 기술로 주로 4계층을 지원하는 스위치(보통 4계층 스위치)를 이용해 구현된다. ·클러스터링 : 클러스터는 여러 대의 서버를 하나의 거대한 서버로 보이게 만드는 기술이다. 클러스터의 주요 목적은 CPU 자원을 공유하거나, 분산처리, 병렬처리 등 가용성이 높은 시스템을 구축하고 서버가 다운됐을 때를 대비한 페일 오버 기능을 제공하는 것이다. 클러스터에 서버를 추가 투입함으로써 쉬운 확장성을 가지며, 페일 오버 기능을 이용한 가용성 보장할 수 있다.·백엔드 스위치 : DB 서버 접속나 서버 간에 통신하는 부분에 대한 대역폭 사용을 사용자에게 서비스하는 대역폭을 이용하기보다는 별도 스위치를 이용해 구성을 한다면 보다 안정적으로 서버 상호간에 통신이 가능할 것이다.·Site versioning : 사용자의 브라우저 버전이나 인터넷 연결 속도에 따라 여러 버전의 사이트를 구축하는 것이다. 예를 들면, 홈페이지 내용을 플래시 버전, html 버전, 혹은 텍스트 버전으로 작성해 선택할 수 있는 버튼을 만들거나, 스트리밍의 경우에는 동영상을 100K, 300K, 500K 용으로 제작해 링크를 만드는 방법이다. 하지만 이런 경우 컨텐츠를 버전에 맞게 복수로 제작을 해야 한다는 부담이 있다. 이 경우보다는 사용자의 환경을 감지해 실시간으로 컨텐츠 내용을 생성할 수 있는 툴을 만드는 것이 좀더 효과적일 수 있다. ·웹 액셀러레이터 : 웹 서버의 앞단에서 웹 페이지의 구성 요소인 html 문서나 이미지 파일들을 압축해 전송을 해주며, 브라우저의 기본적인 압축해제 기능을 이용하기 때문에 사용자 환경과 관계없이 쉽게 적용이 가능하며, 전송되는 파일 크기가 대폭 줄어들기 때문에 사용자는 그만큼 빨리 웹 페이지를 볼 수 있게 된다. 역시 캐시 서버와 비슷하게 정적인 데이터만이 그 대상이다.
네트워크 현황을 고려한 네트워크 분산미들 마일 구간은 전적으로 ISP의 관리 영역 내에 있는 것으로 ISP 사업자간의 이해관계에 따라 ISP간의 피어링 구간 용량이 증설되고 있다. 물론 피어링 구간을 광역으로 연결한다면 큰 문제가 되지 않겠으나, ISP 입장에서는 전체 사용자보다는 각 ISP 자체 고객의 만족이 더 중요하고, 피어링 구간 연결을 위한 비용이 막대하므로 어느 정도 절충을 하면서 연결하고 있다. 미들 마일 구간은 전체 네트워크의 관점에서 보아야 하며, 컨텐츠 사업자의 입장에서는 관리할 수 있는 영역이 아니므로 병목이 발생하는 ISP간 피어링 구간을 어떻게 효과적으로 피할 수 있는가를 고민해야 할 것이다. 네트워크의 관점에서 사용자와 서버 사이의 네트워크 경로를 단축시켜주고, 네트워크의 병목구간인 미들 마일 구간을 피할 수 있다면 사용자를 보다 안정적으로 서버에 접속하게 할 수 있을 것이다.
(그림 4)는 서비스를 담당하는 서버의 물리적인 위치를 다수의 노드로 구성해 사용자와 서버의 연결 상태를 최적화하는 방법을 나타낸다. 이런 구성은 서버와 사용자 사이의 병목현상으로 지적되고 있는 미들 마일 구간을 피해, 사용자 입장에서 같은 ISP 네트워크에 있는 서버에서 데이터를 가져오게 된다. (그림 4)에서는 각 ISP에 구축한 서버를 캐시 서버로 표현했지만, CP가 구성 운영하는 모든 종류의 서버가 가능할 것이다. 게임업체의 경우는 게임파일 다운로드를 위한 FTP 서버, 인터넷 방송국의 경우는 스트리밍 서버를 각 ISP에 구축하면 미들 마일 구간을 쉽게 회피할 수가 있다.
특히 안정적인 대역폭을 요구하는 스트리밍 서비스의 경우 많은 효과를 볼 수 있는 것으로 나타나고 있다. (그림 5)는 이런 네트워크 부하분산을 위해 각 ISP에 서버 팜을 구축해 서비스를 제공하고 있는 CDN(Content Delivery Network) 서비스 업체의 통계 자료다.이런 네트워크 분산 모델은 각 서버를 여러 ISP의 서버팜에 분산 배치함에 따라 하나의 서버 팜에 장애가 발생해도 다른 서버 팜으로 우회해 서비스가 가능하기 때문에, 지난해 미국 911 테러 이후 관심이 커진 재난복구와 사업지속계획의 한 부분으로 인식되고 있다. 미들 마일 구간의 병목을 회피하기 위한 네트워크 분산을 하기 위해서는 각 서버 팜으로 데이터를 동기화하는 기술과 사용자를 미들 마일 구간을 통하지 않고 사용자가 속해있는 ISP내에 있는 서버 팜으로 인도해주는 분산 라우팅(GSLB-Global Server Load Balancing 혹은 Content Routing) 기술이 필요하다.발전하는 라스트 마일 라스트 마일 구간의 문제점으로는 사용자의 PC 사양이나 인터넷에 연결된 ISP 업체의 내부 네트워크를 들 수 있다. 사용자의 PC 사양은 컨텐츠 업체가 관리할 수 있는 부분이 아니지만 사용자의 욕구에 따라 고급 사양으로의 PC 교체 주기가 점점 짧아지고 있고, ISP 네트워크와의 접속구간 또한 ISP가 고객만족을 위해 계속 증설하고, 고속화를 진행하고 있으므로 라스트 마일 구간은 큰 문제가 아니라고 생각된다.
인터넷 가속기와 같은 프로그램을 이용해 PC의 인터넷 관련 튜닝을 통해 인터넷 접속환경을 더욱 개선할 수도 있다. 오히려 라스트 마일 구간이 발전함에 따라, CP의 관리 영역이라 할 수 있는 미들 마일과 퍼스트 마일의 문제를 더욱 크게 발생시킬 수도 있다. 병목구간별 회피모델을 살펴보면 (그림 6)과 같이 정리할 수 있을 것이다. 트래픽 관리에 대한 솔루션도 역시 트래픽의 흐름에 따른 구간 관점에서 나누어 보면, 크게 퍼스트 마일 구간에 적용될 수 있는 캐싱 솔루션과 로드 밸런싱 솔루션, 미들 마일 구간에 적용될 수 있는 CDN 솔루션, QoS 솔루션 등으로 나눌 수 있다.퍼스트 마일에 적용되는 캐싱 솔루션이나 로드 밸런싱 솔루션은 90년대 후반부터 많이 이용돼온 방식으로 트래픽이 많이 발생하는 서비스 업체에게는 거의 적용됐다고 볼 수 있을 것이다. 네트워크 분산을 위한 CDN 솔루션은 미들 마일 문제가 제기되기 시작한 1999년부터 나오기 시작했는데, 국내에서는 최근에 관련 솔루션이 출시됐다. 미들 마일 문제를 제기한 미국과 국내의 네트워크 환경이 다르기 때문에 관련 솔루션은 더 연구되고 다듬어질 필요가 있을 것이다. QoS 관련 기술은 이제까지 언급하지 않았는데, 이는 네트워크를 지나는 트래픽의 내용에 따라 우선순위를 주어 대역폭을 제한하는 등의 방법이다. 대역폭에 따라 품질이 좌우되는 스트리밍 서비스와 같은 트래픽에는 충분한 대역폭을 할당하고 그 이외 다른 대역폭에는 크게 영향을 받지 않는 다운로드 같은 곳은 약간 제한을 가하는 방법으로 대역폭을 필요에 따라 조정할 수 있는 것이다. 이런 QoS 관련 솔루션은 주로 ISP나 기업에서 이용하는 방법이다. 언급한 네트워크의 구간을 분할해 문제 해결 방법을 찾는 방법 이외에도 다양한 방법들이 시도되고 있다.·다운로드 & 플레이 : 스트리밍 서비스의 취약점이 안정적인 대역폭을 보장받아야 한다. 이런 문제점을 피하기 위해 스트리밍이 아닌 다운로드 후, 스트림을 보도록 하는 것이다. 전체 파일을 모두 다운로드받은 후 스트림을 시청하는 방법도 있고, 다운로드중에 그때까지 다운로드받은 내용을 시청하는 방법도 있다. 현재 고화질관에서 시도되고 있는 방식이며, 차세대 스트리밍 서버로 발표하고 있는 마이크로소프트의 스트리밍 솔루션인 코로나나 리얼 네트웍스의 헬릭스에도 이런 기능이 추가돼 있다. ·프리픽스 캐싱 : 캐시서버와 관련된 방식으로 컨텐츠 캐시보다는 용량이 큰 FTP 데이터나, 스트리밍 데이터의 캐싱 방법에서 시도되고 있다. 용량이 큰 파일을 캐싱을 해야 하기 때문에 상대적으로 많은 파이들을 캐싱하기가 용이하지 않다. 따라서 앞부분만을 캐싱해두고 있다가 필요시 실제 데이터를 모두 가지고 있는 서버에서 데이터를 가져다가 서비스를 해주는 방식이다. 그러나 FTP 캐시나 스트리밍 캐시 서버가 많이 보편화되지 않았고, FTP나 스트리밍 데이터를 캐싱할 필요가 있는가에 대한 의구심이 제기되고 있으며, 구현방법 또한 간단치 않아 보편화되기는 어려울 것으로 생각된다.·애플리케이션 멀티캐스팅 : 멀티캐스팅을 이용하면 컨텐츠 서비스 업체는 서버 부담을 줄일 수 있고, ISP는 백본 네트워크의 이용을 절감할 수 있다. 하지만 ISP의 백본 네트워크의 라우터가 이런 기능을 제공하지 않아 실제로 국내에서는 멀티캐스트를 이용할 수가 없다. 멀티캐스트 패킷이 라우터를 넘어가지 못한다는 것에 착안해, 라우터를 넘어갈 때는 현재 이용하는 방식처럼 유니캐스트를 이용하고 마지막 사용자단에서는 멀티캐스트로 서비스가 가능하게 멀티미디어 패킷에 유니캐스트로 포장해 사용자단으로 전달하는 것이다. 실제 멀티캐스트를 이용하는 것보다는 많은 네트워크 절감효과가 있지 않지만, 많은 사람들이 동시에 시청을 하는 곳에 효과가 있을 것이다. 스트리밍과 관련해서 현재 포털에서 1M급 고화질관을 운영하고 있고, 마이크로소프트의 코로나, 리얼 네트웍스의 헬릭스 등의 발표로 고화질 스트리밍이 일반화될 것이고, 이에 따른 트래픽 관리가 다시 한번 이슈화될 것이다. 다음 회에서는 서버의 부하 분산을 위한 캐싱 기술에 대한 내용과 네트워크 분산을 위한 분산 라운팅, 그리고 이의 기본 전제가 되는 컨텐츠 동기화에 대해 자세히 알아보겠다. @