업데이트일 : 2018-11-01 VIII. 네트워크 4. GSLB 목차 4.1 GSLB 서비스소개 4.2 GSLB FAQ 4.3 GSLB 이용방법 4.5 GSLB 관련 Tool 4.6 GSLB 기타가이드 4.1 GSLB 서비스소개 4.1.1 목적 / 용도 문서의목적 본문서는 KT ucloud biz 의부가서비스인글로벌서버로드밸런싱 ( 이하 GSLB) 의기술적특징과 ucloud biz 포탈에서의서비스신청및세부실행가이드를제공하는데에목적을두고있습니다. 문서의사용범위 GSLB 서비스신청 / 해지및생성 / 삭제방법 GSLB 서비스를위한세팅방법 4.1.2 구조 / 원리 GSLB 의이해
GSLB 는 IP 주소와 PORT 를기반으로트래픽을분산시키는로드밸런서와는다른형태로동작합니다. GSLB 는전통적인 DNS 서비스가발전된형태로, 기존의 DNS 가 back-end 서버의상태와상관없이요청에대한 IP 값을제공하는반면서버의상태정보를확인한후에 IP 를제공합니다. 이러한장점을통해지역별트래픽기반의부하분산, DR(Disaster Recovery) 구축, 클라우드서비스를기존고객보유시스템의백업센터로이용하는등다양한응용구성이가능합니다. GSLB 의동작원리 1. 클라이언트가도메인 (www.abc.com) 을입력하면 Local DNS 는상위 DNS 로 DNS 질의를요청합니다. DNS 질의를전달받은 Root DNS,.com DNS 는해당질의를 'abc.com' DNS 서버로전달합니다. abc.com DNS 서버는사전에등록된 www 에대한 CNAME 정보가 GSLB 로지정되어있기때문에 DNS 질의는최종적으로 GSLB 에전달됩니다. 2. GSLB(abc.g.ucloudbiz.com) 에서는요청받은 DNS 질의에대해그림과같이 1.1.1.1[Active] 와 2.2.2.2[Backup] 서버리스트를가지고있습니다. 3. GSLB 는 [Active] 로지정된 1.1.1.1 IP 주소를반환해주며, [Active] 서버가비정상일경우에 Backup 서버주소인 2.2.2.2 를반환합니다. 4. Local DNS 는반환받은 IP 주소를클라이언트에알려줍니다. 5. 클라이언트는최종적으로반환받은 IP 주소로접속하여서비스를제공받습니다. * 본예시그림의동작원리는 Active-Backup 으로구성한경우이며 DR 구성에적합한사용예입니다. 만약 Active-Active 로구성하시는경우 Round Robin 방식으로동작하며부하분산구성에적합합니다. KT ucloud biz GSLB 특장점 - 물리적인 4 중화를통한최고의안정성을갖추고있습니다. 목동 ICC, 천안 CDC 에각각이중화하여시스템을구축, 최상의안정적서비스가가능합니다. - ucloud biz 포탈을통해간편한사용이가능합니다.
모든기능을웹을통해자동화하여, 고객편의성을극대화했습니다. 4.1.3 유의사항 / 제약사항 GSLB 와서버응답성능 GSLB 는사용자가지정한기준 ( 옵션 ) 에따라 Active-Active 또는 Active-Backup 으로로드밸런싱을수행합니다. 따라서, 각각의 back-end 서버의성능또는파라미터설정에따라실제서버에로드되는부하량은언제나균등하지않을수있습니다. 수차례의테스트와성능검증을진행하시어운영하고자하는서비스에최적화된옵션을설정하시는것을권고하고있습니다. 4.2 GSLB FAQ ucloud biz 상품의모든상담및장애신고방법은전화상담과게시판상담을통해이루어집니다. FAQ 및매뉴얼 각종사용매뉴얼및 FAQ 는 ucloud biz 포탈고객센터의 <a href="/portal/portal.faq.html" target="_blank" title="faq 바로가기 "><u>faq 게시판 </u></a> 및자료실을통하여확인하실수있습니다. 4.3 GSLB 이용방법
GSLB 리스트화면구성 GSLB 신청 : 새로운 GSLB 서비스를신청하는화면으로전환됩니다. Action: GSLB 서비스리스트중편집하고자하는 GSLB 의체크박스를선택한뒤, GSLB 의설정을변경하거나이용중인 GSLB 를삭제할수있습니다. - 서비스추가 : 이용중인 GSLB 에새로운 back-end 서비스를추가할수있습니다. - 삭제 : 이용중인 GSLB 를삭제합니다. 단, GSLB 를생성한당일에는삭제가불가능합니다. 엑셀저장 : 현재사용중인 GSLB 이용정보를엑셀로내보내는메뉴입니다. 상세정보 : GSLB 리스트에서특정항목을선택하면해당 GSLB 에등록된 back-end 서비스리스트를표출합니다. - 변경 : 라디오버튼에서특정서비스를선택한뒤 [ 변경 ] 버튼을클릭하면, GSLB 에서특정한개의 back-end 서비스 IP 를변경할수있습니다. - 삭제 : 라디오버튼에서특정서비스를선택한뒤 [ 삭제 ] 버튼을클릭하면, GSLB 에서특정한개의 back-end 서비스 IP 를삭제할수있습니다. 4.3.1 GSLB 상품신청 ( 최초이용시 )
http://ucloudbiz.olleh.com 접속후상품 네트워크 loadbalancer 선택 화면우측 ' 상품신청하기 ' 클릭 서비스신청확인여부팝업창생성 ' 확인 ' 클릭 # 4.3.1 GSLB 서비스는 ucloud server 의부가서비스로써, ucloud server 를이용중이어야신청가능합니다. 4.3.2 GSLB 생성신청 1 단계 - GSLB 정보입력 이름입력 GSLB 에지정할이름을입력합니다. 도메인입력 GSLB 에등록할도메인이름을입력합니다. KT ucloud biz GSLB 는사용자가입력한도메인이름을기반으로 CNAME 을생성시켜줍니다. CNAME 형식은 [*****.g.ucloudbiz.com] 으로만들어집니다. TTL 선택 GSLB 내 A Record 로기록되는 back-end 서버에대한 TTL 값을설정합니다. GSLB 의 TTL 은 30 초 ~1 분이권장사항이며, 보다자세한기술적인사항은 4.7.2 GSLB 기타가이드내 'GSLB 의 TTL 값선택전략 ' 을참고하시기바랍니다. Persistence 사용여부선택 : Persistence 옵션은일반적으로세션의연결유지 (Stickiness) 와관련이있습니다. 일반적인웹서비스환경에서는 [ 미사용 ] 이권장사항이며, 보다자세한기술적인사항은 4.7.3 'GSLB 의 Persistence 옵션에대한고려사항 ' 을참고하시기바랍니다. "GSLB 명칭 ", " 도메인 (CNAME)" 은신청후변경이불가능합니다. 변경이필요한경우 GSLB 를완전히삭제한뒤, 새롭게작성해야합니다.
2 단계 - 서비스 (IP) 정보입력 GSLB 의 back-end 가되는서비스 IP 를입력합니다. 서비스 IP 는유효한 Public IP 로입력해야정상동작을보장할수있습니다. IP 를입력하는방법은좌측의드롭다운박스에서기할당된 KT ucloud biz 의 Public IP 를자동으로입력할수있는 [ 보유 IP 선택 ] 과고객이직접 IP 를작성할수있는 [IP 직접입력 ] 항목을선택하실수있습니다. GSLB 의서비스 IP 지정은 Active-Active 와 Active-Backup 두가지방법을자유롭게선택하여구성할수있습니다. 이때, Active-Active 는통상적인로드밸런싱기법과동일한동작을수행하므로부하분산에적합헌방식입니다. Active-Backup 으로지정하는경우 Active 서버가유효한한, Active 의 IP 주소를항상리턴하기때문에 DR 구성에적합한방식입니다. 기본 2 개의 IP 를등록하실수있으며, IP 등록추가시추가요금이부가됩니다. 3 단계 - 신청내역확인 신청한 GSLB 기본정보와연동된서비스 (IP) 정보를검토한뒤최종신청을요청합니다. [ 신청 ] 버튼을클릭한뒤, 일정시간후에 GSLB 가생성됩니다. GSLB 서비스를정상적으로사용하기위해서는고객이소유한도메인을호스팅받고있는도메인등록기관에 GSLB 로연결되도록하는 CNAME 등록이필수적입니다. CNAME 등록은
도메인등록기관별로설정방법이다르며, 관련하여 4.7.1 'GSLB 사용시서비스도메인설정 ' 항목을참고하시기바랍니다. 4.3.3 GSLB 서비스 (IP) 추가 GSLB 의 back-end 가되는서비스 IP 의추가입력이필요한경우, GSLB 리스트화면에서편집하고자하는 GSLB 의체크박스를선택합니다. 리스트화면우측의 [Action] 을클릭한뒤, [ 서비스추가 ] 메뉴를선택합니다. 서비스 IP 입력방식은 GSLB 를생성할때의방법과동일합니다. 주의해야할사항은 KT uloud biz GSLB 는기본 2 개의 IP 를지원하며, IP 등록추가시추가요금이부가됩니다. 4.3.4 GSLB 서비스 (IP) 변경 GSLB 의사용중인서비스 IP 를변경할수있습니다. 서버 IP 변경등각종사유로 GSLB 에등록된서비스 backend 가변동된경우, GSLB 리스트화면에서편집하고자하는 GSLB 의체크박스를선택합니다. 화면하단의 [ 상세정보 ] 탭에현재등록된서비스 IP 리스트가조회됩니다. 변경하시고자하는 IP 에해당하는행의라디오버튼을클릭하신뒤우측의 [ 변경 ] 버튼을클릭하시면그림과같은팝업창이생성됩니다. 팝업창에서변경하시고자하는 IP 를수기로직접입력한뒤, [ 변경 ] 버튼을클릭합니다. 수기로입력해야하기때문에, 오입력이발생하지않도록각별히유의하시기바랍니다.
4.3.5 GSLB 서비스 (IP) 삭제 GSLB 에서더이상사용할수없거나유효하지않은 back-end 주소에대하여서비스리스트에서대상 IP 를삭제할수있습니다. GSLB 리스트화면에서편집하고자하는 GSLB 의체크박스를선택합니다. 화면하단의 [ 상세정보 ] 탭에현재등록된서비스 IP 리스트가조회됩니다. 변경하시고자하는 IP 에해당하는행의라디오버튼을클릭하신뒤우측의 [ 삭제 ] 버튼을클릭하시면그림과같이삭제를확인하는팝업창이생성됩니다. 삭제하시고자하는정보를정확히확인하신뒤, [ 확인 ] 버튼을눌러최종삭제요청을처리하게됩니다 4.5 GSLB 관련 Tool 4.5.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 cloded. 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 4.5.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 리턴에대한헤더정보와본문을확인할수있습니다. 해당결과를통해운영하시는웹서버에어떤부분이잘못설정되었을지유추해볼수있습니다. 4.6 GSLB 기타가이드 4.6.1 GSLB 사용시서비스도메인설정 본매뉴얼에서는아래그림과같이 AWS Route 53 화면예시를제공합니다. 각각의도메인등록기관에서는개별적으로 CNAME 설정에대한과정을제공하고있기때문에아래의예시는단순참고용으로만활용하시기바랍니다.
가장기본적으로사용되는 BIND 설정법은 www 질의에대하여 GSLB 를향하도록지정하는방법으로 [www IN CNAME abc.g.ucloudbiz.com.] 과같이기재합니다. 이때마지막에 "." 을반드시작성해야합니다. DNS 설정미숙의대표적인한예로오입력이있으며, 고객께서이용하시는서비스영역내장애가발생할수있으니호스팅등록기관에 CNAME 을등록하실때각별히유의하시기바랍니다. CNAME 이란? - "Canonical NAME" 의약어로특정도메인에대한서브도메인을사용하기위한레코드입니다. 가장많이사용하는 A 레코드는특정 IP 에대해서서브도메인을사용하는방법이지만, CNAME 은 IP 가아니라도메인또는동일 zone 파일내의다른호스트를사용하기위한방법으로사용됩니다 4.6.2 GSLB 의 TTL(Time To Live) 값선택전략 위그림은클라이언트부터 GSLB 까지의연결정보를개념적으로간략하게나타낸그림입니다. 각각의 DNS 테이블에서 TTL 은두위치에서정보를가지고있습니다. 먼저 abc.com 을관리하는도메인등록기관에서는 GSLB 로향하는 CNAME Record 와 TTL 을저장하고있습니다. 다음으로 GSLB 에는실제서비스와연결되는구간에대하여 IP 정보를 A Record 로기록하고 TTL 값을저장하고있습니다. 이때, TTL 은클라이언트가최초로질의하는 Resolve DNS 의캐싱시간을의미합니다. 일반적으로는 Root DNS,.com DNS 등 Auth DNS 에저장된 CNAME 정보는 GSLB 를새로만들거나, 서비스를신규개설 / 폐쇄하는등매우적은빈도로발생하는이벤트입니다. 따라서, 이값은 12 시간 ~ 24 시간 (43200~86400) 정도의값을지정하는것이적당합니다. GSLB 가가지는 A Record 의경우, 원활한로드밸런싱성능보장 (Availability) 을위하여 30 초 ~ 1 분간격으로캐시를업데이트해주는것이유리합니다.
단, 클라이언트관점에서 Resolve DNS 를통해 DNS 질의를수행할때 CNAME 과 A Record 가다른 TTL 값을가지고있지만, A record 가만료되어갱신하는경우에도 CNAME 은함께갱신됩니다. 4.6.3 GSLB 의 Persistence 옵션에대한고려사항 전통적인로드밸런싱과마찬가지로, GSLB 를사용함에도불구하고세션의연결유지 (Persistence) 가고려되어야할때가있을것입니다. 예를들어, GSLB 를 Active-Active 로사용하는경우이는로드밸런싱에서 Round Robin 과같이세션의상태와상관없이새로운응답요청을계속동일하게배분합니다. 이러한관점에서 Persistence 옵션은 GSLB 가 DNS 질의를요청한 Resolve DNS 의 IP 를기억하여, 같은출발지인경우같은 back-end 서비스 IP 를리턴해줄것인지결정하게됩니다. 이방법도일반적인로드밸런싱과마찬가지로연결유지를선택하는경우로드밸런싱의기대성능은다소낮아질수있습니다.