개요 하나의 CDN을사용할때도멀티 CDN 전략을추구할때에도글로벌트래픽을파악하고캐시맵을분석하는일은매우중요합니다. 전송최적화수준을평가하면 CDN의성능을최대화할수있습니다. 이백서에서는다운로드전송의모범사례, 디폴트값을수정하는타임아웃에대한세부정보, 정기적인새로운릴리즈를지원하는방법, 페어런트캐싱범위를개선하는방법등을확인할수있습니다. 서론 게임업계는새로운릴리즈와함께매년지속적으로성장하고있습니다. 동시에최종사용자트래픽이증가하면서이에대한지원이필요합니다. 결국게이머들이기대하는우수한성능과높은가용성을구현하려면고품질포맷의대용량파일을다운로드해야합니다. 가용성과성능은 OTA, 모바일등사용하는디바이스와네트워크에상관없이동일하게중요합니다. Akamai는관심이집중되는새로운릴리즈, 소프트웨어패치, 정기적릴리즈에대해퍼블리싱전략최적화, 클라이언트프로토콜업그레이드, 캐싱최적화 ( 매핑및캐싱범위개선 ) 를통해전송성능을개선할수있습니다. 또한단일 CDN 또는멀티 CDN 전략을개발해트래픽이폭증하는다운로드이벤트동안가용성을높게유지하고장애복구기능을원활하게제공할수있습니다. 이백서에서논의할내용은다운로드최적화에대한모범사례와접근방식입니다. 2
목차 개요 2 서론 2 콘텐츠퍼블리싱 4 패키징 4 버전관리와 TTL 4 클라이언트개선사항 5 HTTP/2 5 QUIC(Quick UDP Internet Connection) 5 캐싱최적화 7 용량및매핑 7 부분오브젝트캐싱 8 전송최적화 9 TCP 최적화 9 프리페칭 10 고가용성및장애복구 10 프리워밍 / 트래픽폭주 11 장애복구환경최적화 11 멀티 CDN 전략 13 지표추적 13 결론 14 저자약력 15 3
콘텐츠퍼블리싱 Akamai 는전송최적화를위한노력의일환으로먼저전송및패키징전략을통해콘텐츠 자체에집중하고있습니다. 동시에캐싱가능성을높이기위해 URL 별퍼블리싱에 주력합니다. 패키징 Akamai는패키징을최종사용자에대한콘텐츠퍼블리싱과퍼블릭접속제공으로정의합니다. 비디오스트리밍의경우패키징된콘텐츠를 HLS 또는 DASH를통해전송할수있고사전에세그먼트된미디어또는바이트범위요청을통해콘텐츠를가져올수도있습니다. 또한 HTTP를통한다운로드전송의경우사전에세그먼트된미디어나바이트범위요청을활용하여콘텐츠를가져옴으로써기타최적화기능은물론프리페칭 (Prefetching) 같은기능을사용할수있습니다. 타임스탬프기반세그먼트네이밍을대신사용하는방식은캐시에서다음세그먼트를프리페칭할수없기때문에효과적이지않습니다. 또한이런접근방식은 FHD, UHD, VR 등고품질스트리밍과롱테일콘텐츠에대해 CDN 성능최적화가능성을제한합니다. 게임분야에서 Akamai는단일파일 (pkg 같은포맷컨테이너 ) 과개별파일세트 (2개이상의컨테이너로구성된게임 SW) 등여러패키징옵션이있습니다. 개별파일세트를사용할경우몇가지단점이있습니다. 진행중인변경사항이전체패키지에영향을끼칠수있고다음요청을미리가져오는프리페칭기능이게임타이틀의개별파일에는적용이불가능합니다. 이런상황에서는게임패키지의개별파일에대해프리페칭과같은최적화기능을사용할수없습니다. 따라서패키징방법에따라적용가능한최적화기능이무엇인지반드시고려해야합니다. 버전관리와 TTL TV 시리즈, 영화, 게임 SW, 디바이스펌웨어패치등몇몇사용사례에서는버전관리가필요합니다. 예를들어, TV 시리즈는버전관리양식으로날짜를사용하는반면, 게임 SW와펌웨어패치는업데이트의릴리즈버전을사용합니다. 업데이트를캐싱하기위해콘텐츠가원하는기간만큼캐시에유지될수있도록 TTL(Time-to-Live) 을적용할수있습니다. TTL 값은인기도와시간에따라결정되고콘텐츠리포지토리내의백엔드변경관리도고려합니다. 백엔드인프라의부하를경감하는동시에콘텐츠를최종사용자에게가능한빨리전송하려면 7일, 30일, 365일같이 TTL 값을길게설정하는것이좋습니다. 4
새로출시된영화, 게임 SW 업데이트또는디바이스펌웨어업데이트에잘못되거나오류가있는콘텐츠가포함된경우에는 TTL을길게사용한다하더라도콘텐츠를신속하게되돌리고대체할수있어야합니다. 캐싱및빈번한업데이트가필요한경우캐시에서오브젝트를무효화하기위해 API 또는인터페이스를통해 CDN 퍼지 (purging) 기능을사용할수있습니다. 콘텐츠버전을정확하게관리하고콘텐츠를신속하게대체하려면 API 퍼지기능을사용하고이기능을콘텐츠퍼블리싱사이클에포함시키는것이좋습니다. 클라이언트개선사항 최근에클라이언트측다운로드시간, 전체연결시간등다양한성능관련지표를개선하기 위해 HTTP/2, QUIC 같은여러프로토콜이등장했습니다. HTTP/2 HTTP/2는이전 HTTP/1.1의단점을보완할목적으로개발된최신 TCP+TLS 기반프로토콜입니다. 멀티플렉싱, 헤더압축, 리소스우선순위지정등몇몇주요기능은게임패키지또는소프트웨어업데이트의다운로드시간을크게단축합니다. 예를들어, 헤더압축은기본적으로요청및응답페이로드의크기를크게줄여주기때문에전송시간을단축할수있습니다. HTTP/2의더강력한기능인멀티플렉싱은패키지다운로드에유용한리소스병렬전송과함께연결재사용을지원합니다. 현재 Akamai 플랫폼을기반으로한모든웹및미디어제품에서 HTTP/2를활성화할수있습니다. QUIC(QUICK UDP INTERNET CONNECTION) HTTP/2가여러측면에서성능을개선시키기는하지만여전히 TCP 기반의프로토콜입니다. 따라서, 안전한 혼잡제어알고리즘등기존에알려진문제를동반합니다. 최적의최종사용자경험을위해서는일관된처리량이필요하기때문에이로인해대용량의고품질다운로드에영향을미칠수있습니다. 5
어떻게하면 HTTP/2의장점을유지하면서 TCP+TLS 스택의단점과제약을극복할수있을까요? 새로운 UDP 기반프로토콜인 QUIC를사용하면가능합니다. QUIC는 TCP와관련된여러성능제약문제를해결하기위해설계되었습니다. 이미잘알려진대로 TCP 는패킷손실이탐지될때상대적으로보수적인혼잡제어접근방식을적용합니다. 반면에 QUIC는탐지된패킷손실의결과로발생할수있는급격한처리량감소문제를해결합니다. QUIC는시작지연시간을줄이기위해 0-RTT/1-RTT로설정하는옵션도제공합니다. 새연결이추가적인왕복을없애주고기존연결은동일한연결을재사용합니다. 적극적인혼잡제어설정을함께적용하면다운로드세션동안빠른연결구축, 안정적인멀티플렉싱, 일관된처리량을기대할수있습니다. 트래픽규모가큰사이트의성능을개선하는효과가입증되면서 QUIC는표준으로자리잡고있습니다. 현재 Akamai 플랫폼을기반으로한일부미디어제품에서사용할수있습니다. 자세한내용은 IAT(Internal Account Team) 에문의하시기바랍니다. 대규모로배포하기전에먼저철저하게테스트를진행하는것을권장합니다. SYN SYN ACK ACK ClientHello ClientKeyExchange ChangeCipherSpec 완료 애플리케이션데이터 ServerHello 인증서 ServerHelloDone ChangeCipherSpec 완료 애플리케이션데이터 6
ClientHello ( 비어있음 ) ClientHello 애플리케이션데이터 거부 SourceAddressTokens 인증서 애플리케이션데이터 ClientHello 애플리케이션데이터 애플리케이션데이터 새 QUIC 연결의경우 1RTT 재연결의경우 0RTT 캐싱최적화 용량및매핑 Akamai Intelligent Platform은전세계적으로최종사용자와가까운위치에배치된수많은서버로구성됩니다. 이플랫폼이인기있는콘텐츠를관측하면로컬사본 (copy) 을저장하고다음에동일한콘텐츠를요청하는사용자에게해당사본을전송합니다. 최종사용자와가장가까운위치에있는서버와통신이이뤄지기때문에사용자경험이최적화되고개선됩니다. 맵은특정지역 (region) 의서버세트입니다. Akamai 는콘텐츠종류, 최종사용자의위치, 오리진서버의위치에따라최적의방식으로트래픽을전송하는매핑프로필을설정할수 있습니다. 7
오리진서버의부하를분산하기위해최적화된맵을설정할뿐만아니라 Tiered Distribution(TD 계층형분산 ) 을사용할수있습니다. TD는계층을분리해적은수의엣지서버를통해오리진에도달하도록합니다. TD는오리진과통신할수있는최적의페어런트서버를선택하기위해 Akamai의인텔리전트매핑을사용합니다. 오리진의부하를추가적으로분산시키기위해캐싱계층을추가하는것입니다. 또한콘텐츠의페칭또는캐싱을위해동일한서버세트를선택할수있도록엣지에서수신오브젝트 URL을 ' 해싱 (hashing)' 하여멀티계층형접근방식을세밀하게튜닝할수있습니다. 이방식은페어런트서버전반에걸쳐고객사의캐싱범위와네트워크트래픽을일관적으로확장합니다. 부분오브젝트캐싱부분오브젝트캐싱은대형파일을작은청크 (chunk) 로분할하며, 이렇게분할된오브젝트청크는최종사용자가요청할때만캐싱됩니다. 이최적화기능을통해오버다운로딩으로인해낭비되는바이트를최소화할수있습니다. 또한, TTL이만료되었을때대형파일오브젝트전체를재검사하는것이아니라부분오브젝트청크만개별적으로재검사할수있습니다. 콘텐츠카탈로그가너무길면페어런트캐시와오리진서버로향하는재검사요청이급증할수도있습니다. 결과적으로 AWS S3 같은써드파티오리진의경우비용이낭비되고 Netstorage 오리진의경우오리진성능저하를초래할수있습니다. 이러한잠재적인위험부담을감안할때 TTL을 30일, 365일등길게설정하는것이중요합니다. 또한, 부분오브젝트재검사를비활성화하면추가적으로요청수를줄이고오리진의부하를경감할수있습니다. 전반적으로모범사례와함께부분오브젝트캐싱을적용하면 NetStorage의경우성능을개선하고써드파티스토리지의경우아웃바운드비용을절감할수있습니다. 아래그래프는 POC TTL과재검사설정을최적화했을때처리량, 지연시간, 첫번째바이트시간등성능이어떻게개선되는지보여줍니다. 600Mbps 500Mbps 400Mbps 300Mbps 200Mbps 100Mbps 0kbps 처리량 ( 평균 ) 10/24 11/1 11/1 11/15 8
1.0s 800ms 600ms 400ms 200ms 0ms 지연시간 ( 평균 ) 10/24 11/1 11/8 11/15 40ms 30ms 20ms 10ms 0ms 전환시간 ( 평균 ) 10/16 10/24 11/1 11/8 전송최적화 TCP 최적화 TCP(Transmission Control Protocol) 는인터넷에서웹사이트를구성하는데이터패킷 ( 즉, HTTP 요청또는응답 ) 의전송을보장하고제어하는데사용되는표준전송레이어프로토콜입니다. 특히, TCP는소스및목적지시스템사이의연결설정, 패킷전송률, 패킷손실탐지, 복구알고리즘을제어합니다. Akamai는연결윈도우최적화, TCP 타임아웃및손실복구조정, 영구적연결사용극대화, 기타 TCP의다른측면제어를통해사이트성능을개선할수있습니다. 궁극적으로이런최적화기능은 Akamai 엣지서버와클라이언트또는오리진서버사이의처리량을극대화합니다. 9
프리페칭 (PREFETCHING) 프리페칭은미래에필요할것으로예상되는콘텐츠를미리가져오는기능입니다. VOD 및라이브비디오스트리밍의경우, 프리페칭을사용하여다음요청을가져오고콘텐츠를준비상태로유지해야합니다. VOD의경우스트림길이를알고있기때문에몇몇세그먼트를미리프리페칭할수있습니다. 라이브의경우 1~2개세그먼트를미리프리페칭해야합니다. 부분오브젝트캐싱의경우다음바이트범위를미리프리페칭해야하고부분오브젝트의크기에따라프리페칭범위가달라집니다. 순차적바이트범위요청은성능을극대화할수있습니다. 반면, 비순차적바이트범위요청 ( 바이트범위내 / 외에서앞뒤로점핑 ) 은캐시의프리페칭된부분오브젝트를낭비할수있다는점에유의해야합니다. 콘텐츠를미리프리페칭했을때효과를거둘수있는사용사례는다음과같습니다. 롱테일또는인기도가낮은자산, 일반적으로많이사용되지않는콘텐츠 다운로드세션내의일관되지않은처리량 빠른시작및게임내지연시간 짧은비디오 (30 초광고 ) 대형 SW 패키지 고가용성및장애복구 다운로드는갈수록규모가커지고있습니다. HD 영화의용량은 10~20GB 입니다. 게임 다운로드는 50GB 를초과합니다. 여러국가에서제품을동시에출시하는것이일반화되면서 소비자분포도글로벌화되고있습니다. 현재소비자들은콘텐츠가차질없이최대한빨리다운로드되기를기대하고있습니다. 따라서이런다운로드패턴은인프라에큰부담을주고있습니다. 고객의기대치에부합하려면고가용성이보장되어야하고장애가발생했을때보이지않는곳에서빠르게장애복구가이루어져야합니다. 10
프리워밍 / 트래픽폭주온라인게임분야에서트래픽폭주기간은충분히예측가능합니다. 이문제를해결하는한가지방법은특정콘텐츠를신중하게선택한엣지서버에미리가져다놓고캐시에서제공되는콘텐츠를극대화하는것입니다. 프리워밍 (prewarming) 을적용할수있는적합한사례는정기적소프트웨어업데이트또는게임릴리즈입니다. Akamai 고객담당팀은고객사와긴밀히협조하여트래픽폭주에예상되는기간에맞춰네트워크를준비합니다. 장애복구환경최적화다운로드전송속도개선에집중하면서장애복구환경을최적화할수있는방법을간과하는경우가종종있습니다. Akamai는 CDN 모델내에서 CDN과오리진사이의타임아웃, 재시도 (retry) 값등다양한설정을조정함으로써보다안정적인장애복구환경을최종사용자에게제공할수있습니다. 오리진의평균응답시간에따라타임아웃값을설정해야합니다. 또한, 트래픽이폭증할때오리진을보호하기위해재시도횟수를적정하게설정하는것이좋습니다. 콘텐츠전송을위해 TD같은다계층형접근방식을사용하는경우요청이도달한각계층별로타임아웃값을설정할수있습니다. 이렇게하면응답실패메세지를사용자에게보내기전에대체엣지서버를찾을수있는충분한시간을확보할수있습니다. 11
오리진 페어런트 오리진 SureRoute 맵 보조페어런트맵 기본페어런트맵 엣지리전 빠른재시도경로 최종사용자 앞서언급한권장사항을적용하면서버가요청에응답하는충분한시간을확보할수있고장애가발생했을때에러응답을신속하게보낼수있습니다. 만약에러응답이전송되면어떻게해야할까요? 접속문제가발생했을때원활하게장애를복구하려면 2차오리진에콘텐츠를복제해야합니다. 이를통해사용자에게디폴트또는비정보성오류가표시되지않도록할수있습니다. Akamai Netstorage는장애복구시나리오에서오리진서버를대체할수있습니다. 예를들어, 전체가동중단시유지보수페이지를 Netstorage에서관리할수있고예정된릴리즈를위한정적백업파일도 Netstorage에서관리할수있습니다. 보다복잡한가용성및장애복구전략이필요한경우멀티 CDN 접근방식을고려하시기바랍니다. 12
멀티 CDN 전략 가용성및장애복구계획의일환으로많은고객사들은멀티 CDN 전략을추진하고있습니다. 다음은 Akamai 고객사중에서 CDN 을인텔리전트하게선택하고있는사례입니다. 지역별성능고려 - 일반적으로지리적위치와 ISP 를고려해의사결정을내리는 방법입니다. 전세계적으로 CDN 서버의범위는다양하고이에따라가용성과성능 역시달라집니다. 실제사용자모니터링의사결정 - 고객의클라이언트가다운로드시간, 처리량, 최종사용자네트워크, 기타성능지표같은클라이언트측데이터를지속적으로비콘으로전송합니다. 이데이터를기반으로클라이언트나서버는기존 CDN을유지할지아니면다른 CDN으로전환할지결정할수있습니다. 이러한경우에해당로직은일반적으로클라이언트의 SDK에임베드됩니다. 지표추적 콘텐츠전송도중요하지만다양한 KPI 를추적하고리포팅하는방법도고려해야합니다. 예를 들어, 소프트웨어다운로드, 게임다운로드등특정다운로드가시작되고완료된횟수를 추적해야합니다. 스트리밍의경우일반적으로추적해야하는지표는다음과같습니다. 시작시간 - 재생 / 다운로드가시작될때까지최종사용자가기다려야하는시간을 추적합니다. 인내심이부족한사용자는중간에이탈하기도합니다. 비트레이트 - 고객사가멀티비트레이트스트림을전송한다는가정하에최종 사용자가소비하는평균및중간품질을추적하고측정합니다. 세션유지시간 - 사용자가콘텐츠를시청하는시간을추적합니다. 요즘에는수많은 비디오콘텐츠가광고를통해수익을거두고있습니다. 13
리버퍼링비율 - 오늘날의사용자는다양한옵션을갖고있으며열악한경험을한 사이트는재방문하지않습니다. 따라서이지표를추적하고낮은수준으로유지해야 합니다. 처리량 - CDN 에서제공되는처리량을추적합니다. 다운로드완료 - 이지표는다운로드와관련성이더높지만고객사는다운로드가완료된비율 (%) 을알고싶어합니다. 사용자가유료게임또는소프트웨어를다운로드할때다운로드가완료되지않으면비즈니스문제로이어질수있기때문에완료율의중요성은점차높아지고있습니다. Akamai 의미디어보고서에서일부지표를확인할수있습니다. 만약클라이언트측면에서 보다세분화된지표가필요하다면 SDK(Akamai 또는써드파티 ) 를설치해야합니다. 결론 인터넷을통해대규모다운로드를까다로운사용자에게전송하는일은말처럼쉽지않습니다. 게이머는기다리지않습니다. 대신콘텐츠가즉각적으로보여지기를기대합니다. 콘텐츠퍼블리셔는비용, 성능, 가용성사이에서균형점을찾아야합니다. Akamai는전세계의여러대기업들과지속적으로협력해온경험을바탕으로이벤트를원활히진행하도록지원할수있습니다. Akamai의컨설팅팀 (consulting@akamai.com 으로문의 ) 은인터넷에서이뤄지는대규모다운로드이벤트를지원하고관리할수있는풍부한경험과전문지식을보유하고있습니다. 14
저자약력 사브리나버니 (Sabrina Burney) 엔터프라이즈아키텍트 사브리나버니는산타클라라대학교를졸업한후각종분야에서다양한경험을쌓아왔습니다. 컴퓨터엔지니어링관련경력과 IT 기술에대한열정을갖고있습니다. Akamai 입사전후에소프트웨어개발, 웹보안뿐만아니라미디어와웹경험분야에서경력을쌓았습니다. 사브리나는여러분야에서근무한경력을토대로전반적인최종사용자경험, 특히웹탐색기능개선을지원하고있습니다. 최근에는써드파티콘텐츠와관련취약점및문제를해결하는방법에주력하고있으며, 이분야에서몇개의특허를출원해놓은상태입니다. 업무외적으로는친한동료들과함께축구하는것을좋아하고가족들과여행을하기도합니다. 라지브램나스 (Rajiv Ramnath) 엔터프라이즈아키텍트 라지브램나스는 Akamai의엔터프라이즈아키텍트로슈퍼볼, 피파월드컵등 Akamai의몇몇대규모이벤트를지원한경험이있습니다. 라지브는컴퓨터엔지니어링경력을보유하고있으며, Akamai 입사전에는싱가포르에서소프트웨어엔지니어로서싱가포르정부의보안프로젝트에참여했습니다. 15
임창현 수석엔터프라이즈아키텍트 임창현은 Akamai 서울오피스의수석엔터프라이즈아키텍트입니다. 대형방송사라이브이벤트의서비스품질평가및맞춤형보고서, 게임및펌웨어의다운로드전송에대한성능평가, 오리진트래픽및용량최적화, 고객사미디어서비스의아키텍처설계및기술로드맵자문측면을맡아다수의데이터중심프로젝트를주도적으로이끌었습니다. 자신의방법론을개선하고있고적용할수있는새로운분야를개발하고있습니다. Akamai 입사전에는 9년동안삼성전자의엔터프라이즈모빌리티관리플랫폼및모바일방송 (DVB-H 및 mdtv(atsc-mh)) 부서에서 SW 개발자, 아키텍트, 제품매니저, 팀매니저로일하며다양한경험을쌓았습니다. TCP 알고리즘개선연구로박사학위를받았습니다. 16
Akamai 는전세계주요기업들에게안전하고쾌적한디지털경험을제공합니다. Akamai 의 Intelligent Edge Platform 은기업과클라우드등모든곳으로확장하고있고고객의비즈니스가빠르고, 스마트하며, 안전하게운영될수있도록지원합니다. 대표적인글로벌기업들은 Akamai 솔루션을통해멀티클라우드아키텍처를강화하고경쟁우위를확보하고있습니다. Akamai 는가장가까운곳에서사용자에게의사결정, 앱, 경험을제공하고공격과위협을먼곳에서차단합니다. Akamai 포트폴리오는엣지보안, 웹 모바일성능, 엔터프라이즈접속, 비디오전송솔루션으로구성되어있고우수한고객서비스, 애널리틱스, 24 시간연중무휴모니터링서비스를제공합니다. 대표적인기업과기관에서 Akamai 를신뢰하는이유를알아보려면 Akamai 홈페이지 (www.akamai.co.kr) 또는블로그 (blogs.akamai.com) 를방문하거나 Twitter 에서 @Akamai 를팔로우하시기바랍니다. 전세계 Akamai 연락처정보는 www.akamai.com/locations 에서확인할수있습니다. Akamai 코리아는서울시강남구강남대로 382 메리츠타워 21 층에위치해있으며대표전화는 02-2193-7200 입니다. 2019 년 1 월발행. 17