L4 장비의 동작과 서비스 배포시 유의점

2014-05-30 KENNETH 0

L4 장비의 동작과 서비스 배포시 유의점 개요 현재 카카오에서 대부분의 웹서버는 L3DSR (Direct Server Return)구성의 L7 HealthCheck 방식을 사용 중입니다. L7 HealthCheck 방식은 앞서 블로그에서 기술한적이 있는 것처럼 OSI 7Layer 중 Layer7 계층의 어플리케이션 응답을 체크하는 방식입니다. 카카오에서는 L4장비가 주기적으로 서버와 TCP 세션을 맺고 GET /health_check.html 의 Request로 응답코드를 확인 하는 방식입니다. 그러나 최근 여러개의 서비스에서 HTTP Keep-Alive 를 사용중이고 이에 따라 배포시 의도하지 않은 문제점이 발생할 수 있어 이에 대한 회피에 대해 기술하도록 하겠습니다. 현재 카카오 배포 방식 카카오에서 몇몇 서비스의 서버개발자 분들께서 웹서버 배포, 서비스에서 제외시 L4장비의 GET /health_check.html Request에 대해 404 응답코드를 내려주려고 health_check.html 파일을 리네임하거나 이동, 삭제 하는등의 방법을 사용중입니다. 쉽게 생각해서 L4 장비의 Request에 대해 404 응답코드를 내려줌으로써 VIP로 묶인 바인딩 서버리스트에서 제거 될것이라 생각하고 위와 같은 과정으로 서비스에서 제외 후 배포하는 경우가 많습니다. 현재 카카오 배포 방식의 문제점 위의 말씀드린 것처럼 health_check.html 파일에 대해서만 [ more… ]

kakao의 Anycast 활용 사례

2014-05-29 KENNETH 0

kakao의 Anycast 활용 사례 Overview 네트워크 기술 하나 중 Anycast 는 DNS 서비스에서 주로 사용하고 있지만 KAKAO는 Anycast 기술을 확장하여 여러가지 어플리케이션 서비스에 사용되고 있습니다. 특히 서버에서 Quagga 오픈소스를 이용하여 KAKAO 자체 망을 이용한 각 글로벌 POP 에 비용 절감 및 고 가용성 용도로도 많이 사용되고 있습니다. Anycast 란? Anycast 라는 용어가 매우 생소한데요. Anycast 란 용어는 네트워크 용어 입니다. 우리가 보통 알고 있는 IP주소는 Unicast IP이며 이것은 고유한 IP주소입니다. Anycast IP는 서로 다른 곳, 서로 다른 호스트 끼리 동일한 IP주소를 가질 수 있는 개념입니다. 그런데 이때의 문제점은 가끔 사무실에 출근하면 누군가 내 IP를 써서 IP충돌나듯이 IP가 충돌나겠죠^^. 그러나 이 충돌된 IP들의 회피 방법은 BGP와 같은 라우팅 프로토콜에 의해서 해결합니다. 라우팅 프로토콜에 의해 이 충돌난 IP에 대해서 가장 최적의 경로의 IP를 가진 서버를 1개 선택해서 라우팅 해줍니다. (사무실과 같은 L2 에서는 IP가 충돌나면 사용이 불가능하지만 라우터 같은 L3 에서는 충돌나도 [ more… ]

kakao의 L3DSR 구성 사례

2014-05-28 KENNETH 0

kakao의 L3DSR 구성 사례 Overview 서비스 웹서버 Load Balancing을 위한 메커니즘으로 KAKAO에서는 L3DSR 방식을 사용하고 있습니다. 멀티IDC에서 L3DSR 방식을 활용, IDC 위치나 서버의 물리적인 위치에 따른 제한없이 서비스 웹서버 Load Balancing이 가능하도록 구성하고 있습니다. L3DSR 소개 보통 서비스에서는 Inbound traffic 대비 Outbound traffic이 월등히 높은데 Outbound traffic을 SLB에서 모두 수용하게 될 경우 리소스 소모가 커질 수 밖에 없습니다. 그래서 Outbound traffic을 서버가 SLB에 전달하지 않고 직접 클라이언트에게 전달해 SLB의 리소스 소모 방지를 위해 사용하는 구성이 DSR(Direct Server Return) 구성입니다. 그리고 클라이언트의 Request를 서버로 전달함에 있어 어떤 헤더를 이용하는지에 따라 L2/L3 DSR로 구분하게 됩니다. L3DSR 은 Load Balancing 을 위한 메커니즘 중 DSR 방식에서 기존 L2 Layer 의 DSR 방식의 한계를 개선하기 위해 사용하는 기술입니다. L3DSR 구성은 IP 헤더중 어떠한것을 이용하는지에 따라 IP Tunnel 기반과 TOS(DSCP) 기반으로 구분되는데 카카오는 DSCP 기반의 L3DSR 방식을 사용하고 있습니다. L2DSR 과 L3DSR의 차이 L2DSR은 L2 [ more… ]