3.6 Load Balancer 관련 Tool

3.6.1 네트워크 문제해결 가이드

웹 서버를 로드밸런서/GSLB에 등록 한 뒤, 웹 서버가 정상적으로 동작하지 않는 것 처럼 보일 수 있습니다. 이 때, 빠르고 쉽게 문제를 찾아볼 수 있는 방법으로서 일반적인 네트워크 문제해결(Trouble-shotting) 기법을 사용해 볼 수 있습니다. 로드밸런서/GSLB에 등록 된 포트 또는 주소를 향해 Ping을 요청하거나 back-end 서버에 Ping을 요청하여 어느 부분에서 정상 동작 하는지, 동작 하지 않는지를 1차적으로 선별할 수 있습니다.

□ nc 명령어 사용하기 (Linux)

리눅스 환경에서 명령어는 다음과 같이 사용합니다

#nc -z <target ip> <port num>


목적지 Port가 정상적으로 열려있는(Listening) 상태인 경우 다음과 같은 응답 화면을 확인할 수 있습니다.

#nc -z 1.1.1.1
Connection to 1.1.1.1 port 80 [tcp/http] succeeded!


목적지 Port가 닫혀있어 정상적으로 통신이 되지 않을 경우 다음과 같은 응답이나, 아무 응답이 없을 수 있습니다.

#nc -z 1.1.1.1
<일정 시간 후(약 10초)>
14.63.212.122 port 8080 closed.

□ tcping 명령어 사용하기 (MS Windows)
Windows 환경에서 ping이 아닌 특정 포트와의 통신을 위해서는 tcping이라는 프로그램을 이용할 수 있습니다. 오픈소스 프로그램으로 링크에서 다운받으실 수 있습니다. tcping 명령어는 다음과 같이 사용합니다
c:\> tcping <target ip> <port num>
Probing 1.1.1.1:80/tcp - Port is open - time=25.739ms
Probing 1.1.1.1:80/tcp - Port is open - time=21.842ms
Probing 1.1.1.1:80/tcp - Port is open - time=27.701ms
Probing 1.1.1.1:80/tcp - Port is open - time=27.489ms

Ping statistics for 1.1.1.1:80
4 probes sent.
4 successful, 0 failed.
Approximate trip times in milli-seconds:
Minimum = 21.842ms, Maximum = 27.701ms, Average = 25.693ms

3.6.2 로드밸런서/GSLB의 컨텐츠 정보 받아오기

로드밸런서/GSLB를 이용하여 웹 서비스를 제공하는 경우에 Port가 정상 동작 하더라도, 웹 페이지를 정상적으로 조회하기 어려운 경우가 발생할 수 있습니다. 이러한 경우 대부분 이용하시는 웹 서버(Apache, Nginx 등)의 환경 설정에 잘못 된 구성이 되어 있을 수 있습니다. 이 경우 'curl'이라는 명령어를 사용하여 간략하게 확인할 수 있습니다.

#curl -i 14.63.212.122
HTTP/1.1 403 Forbidden
Date: Sun, 14 Oct 2018 16:42:44 GMT
Server: Apache/2.2.15 (CentOS)
Accept-Ranges: bytes
Content-Length: 4961
Connection: close
Content-Type: text/html; charset=UTF-8

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<후략>



위 결과와 같이 curl 명령어에 -i 옵션을 주는 경우, 웹 서버가 보내는 HTTP 리턴에 대한 헤더 정보와 본문을 확인할 수 있습니다. 해당 결과를 통해 운영하시는 웹 서버에 어떤 부분이 잘못 설정 되었을 지 유추 해볼 수 있습니다.