Netflix ã¯ã€ã³ã¿ãŒããã ãã¬ãåžå Žã®ãªãŒããŒã§ããããã®ã»ã°ã¡ã³ããåµèšããç©æ¥µçã«éçºããŠããäŒç€Ÿã§ãã Netflix ã¯ãå°çäžã®ã»ãŒããããå ŽæããèŠèŽã§ããæ ç»ããã¬ã ã·ãªãŒãºã®åºç¯ãªã«ã¿ãã°ãšãã£ã¹ãã¬ã€ä»ãã®ããã€ã¹ã ãã§ãªããä¿¡é Œæ§ã®é«ãã€ã³ãã©ã¹ãã©ã¯ãã£ãšç¬èªã®ãšã³ãžãã¢ãªã³ã°æåã§ãç¥ãããŠããŸãã
è€éãªã·ã¹ãã ã®éçºãšãµããŒãã«å¯Ÿãã Netflix ã®ã¢ãããŒãã®æ確ãªäŸã DevOops 2019 ã§çºè¡šãããŸãã
ãã®ã¬ããŒãã¯ã«ã³ãã¡ã¬ã³ã¹åå è
ããæé«ã®ã¬ãã¥ãŒãåŸãã®ã§ãããã¹ãçãçšæããŸããã
ã»ã«ã²ã€æ°ã¯å ±åæžã®äžã§è©³çŽ°ã«èªã£ãã
- ã¯ã©ã€ã¢ã³ããšãµãŒããŒéã®ã€ã³ã¿ãŒãããèŠæ±ã®é 延ã«äœã圱é¿ãããã«ã€ããŠã
- ãã®é 延ãæžããæ¹æ³ã
- ãšã©ãŒèæ§ã®ããã·ã¹ãã ãèšèšãä¿å®ãç£èŠããæ¹æ³ã
- ããžãã¹ãžã®ãªã¹ã¯ãæå°éã«æããªãããçæéã§çµæãéæããæ¹æ³ã
- çµæãåæããééãããåŠã¶æ¹æ³ã
ãããã®è³ªåã«å¯Ÿããçãã¯ã倧äŒæ¥ã§åã人ã ããå¿ èŠãšããŠããããã§ã¯ãããŸããã
æ瀺ãããååãšæè¡ã¯ãã€ã³ã¿ãŒããã補åãéçºããã³ãµããŒããããã¹ãŠã®äººã«ç¥ãããå®è·µãããã¹ãã§ãã
ç¶ããŠã話è ã®èŠç¹ã§ã®ãã¬ãŒã·ã§ã³ã§ãã
ã€ã³ã¿ãŒãããé床ã®éèŠæ§
ã€ã³ã¿ãŒããããªã¯ãšã¹ãã®é床ã¯ããžãã¹ã«çŽæ¥é¢ä¿ããŸãã ã·ã§ããã³ã°æ¥çãèããŠã¿ãŸããã: 2009 幎㮠Amazon
ã¢ãã€ã« ããã€ã¹ããŸããŸãå¢ããã¢ãã€ã« ãµã€ããã¢ããªã±ãŒã·ã§ã³ãããã«ç¶ããŸãã ããŒãžã®èªã¿èŸŒã¿ã« 3 ç§ä»¥äžãããå Žåã¯ããŠãŒã¶ãŒã®çŽååã倱ãããšã«ãªããŸãã ãš
é
延ãéèŠãªéèæ©é¢ã§ã¯ãæ¥ç¶é床ãéèŠã§ãã 2015 幎ããã€ããŒã㢠ãããã¯ãŒã¯ã¹
ã«ãã
ãã ããNetflix ã¯å
žåçãªè£œåã§ã¯ãããŸããã é
延ãšé床ããŠãŒã¶ãŒã«äžãã圱é¿ã¯ãåæãšéçºã®æŽ»çºãªé åã§ãã ã¢ããªã±ãŒã·ã§ã³ã®èªã¿èŸŒã¿ãšã³ã³ãã³ãã®éžæã¯é
延ã«äŸåããŸãããéçèŠçŽ ã®èªã¿èŸŒã¿ãšã¹ããªãŒãã³ã°ãæ¥ç¶é床ã«äŸåããŸãã ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã«åœ±é¿ãäžããäž»èŠãªèŠçŽ ã®åæãšæé©åã¯ãNetflix ã®ããã€ãã®ããŒã ãç©æ¥µçã«éçºãè¡ã£ãŠããåéã§ãã ç®æšã® XNUMX ã€ã¯ãNetflix ããã€ã¹ãšã¯ã©ãŠã ã€ã³ãã©ã¹ãã©ã¯ãã£éã®ãªã¯ãšã¹ãã®åŸ
ã¡æéãççž®ããããšã§ãã
ãã®ã¬ããŒãã§ã¯ãNetflix ã€ã³ãã©ã¹ãã©ã¯ãã£ã®äŸã䜿çšããŠãé 延ã®åæžã«ç¹ã«çŠç¹ãåœãŠãŸãã è€éãªåæ£ã·ã¹ãã ã®èšèšãéçºãéçšã®ããã»ã¹ã«ã©ã®ããã«ã¢ãããŒãããéçšäžã®åé¡ãæ éã蚺æããã®ã§ã¯ãªããé©æ°ãšçµæã«æéãè²»ããããå®è·µçãªèŠ³ç¹ããèããŠã¿ãŸãããã
Netflix ã®å éš
äœåãã®ç°ãªãããã€ã¹ã Netflix ã¢ããªããµããŒãããŠããŸãã ããã㯠XNUMX ã€ã®ç°ãªãããŒã ã«ãã£ãŠéçºãããŠãããAndroidãiOSãTVãWeb ãã©ãŠã¶ãŒçšã«åå¥ã®ããŒãžã§ã³ã®ã¯ã©ã€ã¢ã³ããäœæããŠããŸãã ãããŠãç§ãã¡ã¯ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã®æ¹åãšããŒãœãã©ã€ãºã«å€å€§ãªåŽåãè²»ãããŠããŸãã ãããè¡ãããã«ãäœçŸãã® A/B ãã¹ãã䞊è¡ããŠå®è¡ããŸãã
ããŒãœãã©ã€ãŒãŒã·ã§ã³ã¯ AWS ã¯ã©ãŠãã®äœçŸãã®ãã€ã¯ããµãŒãã¹ã«ãã£ãŠãµããŒããããŠãããããŒãœãã©ã€ãºããããŠãŒã¶ãŒ ããŒã¿ãã¯ãšãª ãã£ã¹ãããããã¬ã¡ããªãããã° ããŒã¿ããšã³ã³ãŒãã£ã³ã°ãæäŸããŸãã ãã©ãã£ãã¯ã®èŠèŠåã¯æ¬¡ã®ããã«ãªããŸãã
å·ŠåŽã¯ãšã³ã㪠ãã€ã³ãã§ããã©ãã£ãã¯ã¯ããŸããŸãªããã¯ãšã³ã ããŒã ã«ãã£ãŠãµããŒããããæ°çŸã®ãã€ã¯ããµãŒãã¹ã«åæ£ãããŸãã
åœç€Ÿã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã®ãã XNUMX ã€ã®éèŠãªã³ã³ããŒãã³ãã¯ããããªãç»åãã¯ã©ã€ã¢ã³ã ã³ãŒããªã©ã®éçã³ã³ãã³ãããšã³ã ãŠãŒã¶ãŒã«é ä¿¡ãã Open Connect CDN ã§ãã CDN ã¯ã«ã¹ã¿ã ãµãŒã㌠(OCA - Open Connect Appliance) äžã«ãããŸãã å éšã«ã¯ãNGINX ãšäžé£ã®ãµãŒãã¹ãåãããæé©åããã FreeBSD ãå®è¡ãã SSD ããã³ HDD ãã©ã€ãã®ã¢ã¬ã€ããããŸãã ãã®ãã㪠CDN ãµãŒããŒãã§ããã ãå€ãã®ããŒã¿ããŠãŒã¶ãŒã«éä¿¡ã§ããããã«ãããŒããŠã§ã¢ããã³ãœãããŠã§ã¢ ã³ã³ããŒãã³ããèšèšããã³æé©åããŸãã
ã€ã³ã¿ãŒããã ãã©ãã£ãã¯äº€æãã€ã³ã (Internet eXchange - IX) ã«ããããããã®ãµãŒããŒã®ãå£ãã¯æ¬¡ã®ããã«ãªããŸãã
Internet Exchange ã¯ãã€ã³ã¿ãŒããã ãµãŒãã¹ ãããã€ããŒãšã³ã³ãã³ã ãããã€ããŒãçžäºã«ãæ¥ç¶ãããã€ã³ã¿ãŒãããäžã§ããçŽæ¥çã«ããŒã¿ã亀æã§ããæ©èœãæäŸããŸãã åœç€Ÿã®ãµãŒããŒãèšçœ®ãããŠãã Internet Exchange ãã€ã³ãã¯äžçäžã«çŽ 70 ïœ 80 ãããåœç€Ÿã¯ããããç¬èªã«èšçœ®ããã³ä¿å®ããŠããŸãã
ããã«ãåœç€Ÿã¯ã€ã³ã¿ãŒããããããã€ããŒã«ãµãŒããŒãçŽæ¥æäŸããã€ã³ã¿ãŒããããããã€ããŒããã®ãããã¯ãŒã¯ã«ã€ã³ã¹ããŒã«ããããšã§ãNetflix ãã©ãã£ãã¯ã®ããŒã«ã©ã€ãŒãŒã·ã§ã³ãšãŠãŒã¶ãŒã®ã¹ããªãŒãã³ã°å質ãåäžãããŸãã
äžé£ã® AWS ãµãŒãã¹ã¯ãã¯ã©ã€ã¢ã³ããã CDN ãµãŒããŒãžã®ãããªãªã¯ãšã¹ãã®ãã£ã¹ããããšããµãŒããŒèªäœã®æ§æ (ã³ã³ãã³ããããã°ã©ã ã³ãŒããèšå®ãªã©ã®æŽæ°) ãæ
åœããŸãã åŸè
ã«ã€ããŠã¯ãInternet Exchange ãã€ã³ãå
ã®ãµãŒããŒãš AWS ãæ¥ç¶ããããã¯ããŒã³ ãããã¯ãŒã¯ãæ§ç¯ããŸããã ããã¯ããŒã³ ãããã¯ãŒã¯ã¯ãããŒãºã«åºã¥ããŠèšèšããã³æ§æã§ããå
ãã¡ã€ã㌠ã±ãŒãã«ãšã«ãŒã¿ãŒã®ã°ããŒãã« ãããã¯ãŒã¯ã§ãã
äžã®
åœåãCDN ã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ãã㪠ããŒã¿ãé ä¿¡ããããã«èšèšãããŸããã ããããæéãçµã€ã«ã€ããAWS ã¯ã©ãŠãå ã®ã¯ã©ã€ã¢ã³ãããã®åçãªã¯ãšã¹ããæé©åããããã«ã䜿çšã§ããããšãããããŸããã
ã€ã³ã¿ãŒãããã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ã«ã€ããŠ
çŸåšãNetflix ã«ã¯ 3 ã€ã® AWS ãªãŒãžã§ã³ããããã¯ã©ãŠããžã®ãªã¯ãšã¹ãã®ã¬ã€ãã³ã·ãŒã¯ã顧客ãæãè¿ããªãŒãžã§ã³ããã©ãã ãé¢ããŠãããã«ãã£ãŠç°ãªããŸãã åæã«ãéçã³ã³ãã³ãã®é ä¿¡ã«äœ¿çšããã CDN ãµãŒããŒãå€æ°ãããŸãã ãã®ãã¬ãŒã ã¯ãŒã¯ã䜿çšããŠåçã¯ãšãªãé«éåããæ¹æ³ã¯ãããŸãã? ãã ããæ®å¿µãªããããããã®ãªã¯ãšã¹ãããã£ãã·ã¥ããããšã¯äžå¯èœã§ããAPI ã¯ããŒãœãã©ã€ãºãããŠãããããããã®çµæã¯äžæã§ãã
CDN ãµãŒããŒäžã«ãããã·ãäœæãããããä»ããŠãã©ãã£ãã¯ã®éä¿¡ãéå§ããŸãããã ãã£ãšéããªããŸããïŒ
å©å§»
ãããã¯ãŒã¯ãããã³ã«ãã©ã®ããã«æ©èœããããæãåºããŠãã ããã çŸåšãã€ã³ã¿ãŒãããäžã®ã»ãšãã©ã®ãã©ãã£ãã¯ã¯ HTTPs ã䜿çšããŠãããããã¯äžäœå±€ãããã³ã«ã® TCP ããã³ TLS ã«äŸåããŠããŸãã ã¯ã©ã€ã¢ã³ãããµãŒããŒã«æ¥ç¶ããã«ã¯ãã³ãã·ã§ã€ã¯ãè¡ãããå®å šãªæ¥ç¶ã確ç«ããã«ã¯ãã¯ã©ã€ã¢ã³ãã¯ãµãŒããŒãšã¡ãã»ãŒãžã 100 å亀æããããŒã¿è»¢éã®ããã«å°ãªããšããã 400 åã¡ãã»ãŒãžã亀æããå¿ èŠããããŸãã åŸåŸ©ãããã®é 延 (RTT) ã XNUMX ããªç§ã®å ŽåãããŒã¿ã®æåã®ããããåä¿¡ããã®ã« XNUMX ããªç§ããããŸãã
蚌ææžã CDN ãµãŒããŒã«çœ®ãå ŽåãCDN ãè¿ãã«ããã°ãã¯ã©ã€ã¢ã³ããšãµãŒããŒéã®ãã³ãã·ã§ã€ã¯æéã倧å¹
ã«ççž®ã§ããŸãã CDN ãµãŒããŒãžã®é
延ã 30 ããªç§ã§ãããšä»®å®ããŸãã ãã®åŸãæåã®ããããåä¿¡ããã®ã« 220 ããªç§ããããŸãã
ããããã¡ãªããã¯ããã ãã§ã¯ãããŸããã æ¥ç¶ã確ç«ããããšãTCP ã¯èŒ»èŒ³ãŠã£ã³ã㊠(ãã®æ¥ç¶äžã§äžŠè¡ããŠéä¿¡ã§ããæ
å ±ã®é) ãå¢ãããŸãã ããŒã¿ ãã±ããã倱ãããå ŽåãTCP ãããã³ã«ã®åŸæ¥ã®å®è£
(TCP New Reno ãªã©) ã§ã¯ãéããŠããããŠã£ã³ããŠããååã«æžããŸãã 茻茳ãŠã£ã³ããŠã®æ¡å€§ãšã茻茳ãŠã£ã³ããŠã®æ倱ããã®å埩é床ã¯ããµãŒããŒãŸã§ã®é
延 (RTT) ã«ãã£ãŠæ±ºãŸããŸãã ãã®æ¥ç¶ã CDN ãµãŒããŒãŸã§ã®ã¿ã§ããå Žåããã®å埩ã¯ããéããªããŸãã åæã«ããã±ããæ倱ã¯ãç¹ã«ã¯ã€ã€ã¬ã¹ ãããã¯ãŒã¯ã§ã¯æšæºçãªçŸè±¡ã§ãã
ãŠãŒã¶ãŒããã®ãã©ãã£ãã¯ã«ãããç¹ã«ããŒã¯æé垯ã«ã€ã³ã¿ãŒããã垯åå¹ ãæžå°ãããã©ãã£ãã¯æžæ»ãçºçããå¯èœæ§ããããŸãã ãã ããã€ã³ã¿ãŒãããã§ã¯ãäžéšã®ãªã¯ãšã¹ããä»ã®ãªã¯ãšã¹ããããåªå ããæ¹æ³ã¯ãããŸããã ããšãã°ããããã¯ãŒã¯ã«è² è·ãããããéããããŒã¿ ã¹ããªãŒã ããããå°èŠæš¡ã§é 延ã®åœ±é¿ãåãããããªã¯ãšã¹ããåªå ããŸãã ãã ããç§ãã¡ã®å Žåãç¬èªã®ããã¯ããŒã³ ãããã¯ãŒã¯ããããããCDN ãšã¯ã©ãŠãã®éã®ãªã¯ãšã¹ã ãã¹ã®äžéšã§ãããè¡ãããšãã§ããå®å šã«æ§æã§ããŸãã å°ãããŠé 延ã®åœ±é¿ãåãããããã±ãããåªå ããã倧ããªããŒã¿ ãããŒãå°ãé ããŠéä¿¡ãããããã«ããããšãã§ããŸãã CDN ãã¯ã©ã€ã¢ã³ãã«è¿ã¥ãã»ã©ãå¹çãåäžããŸãã
ã¢ããªã±ãŒã·ã§ã³ ã¬ãã«ã®ãããã³ã« (OSI ã¬ãã« 7) ãé 延ã«åœ±é¿ããŸãã HTTP/2 ãªã©ã®æ°ãããããã³ã«ã«ããã䞊åãªã¯ãšã¹ãã®ããã©ãŒãã³ã¹ãæé©åãããŸãã ãã ããæ°ãããããã³ã«ããµããŒãããŠããªãå€ãããã€ã¹ã䜿çšãã Netflix ã¯ã©ã€ã¢ã³ããååšããŸãã ãã¹ãŠã®ã¯ã©ã€ã¢ã³ããæŽæ°ããããæé©ã«æ§æãããã§ããããã§ã¯ãããŸããã åæã«ãCDN ãããã·ãšã¯ã©ãŠãã®éã§ã¯å®å šãªå¶åŸ¡ãè¡ãããæ°ããæé©ãªãããã³ã«ãšèšå®ã䜿çšããããšãã§ããŸãã å€ããããã³ã«ã®éå¹çãªéšåã¯ãã¯ã©ã€ã¢ã³ããš CDN ãµãŒããŒã®éã§ã®ã¿åäœããŸãã ããã«ãCDN ãšã¯ã©ãŠãã®éã«ãã§ã«ç¢ºç«ãããŠããæ¥ç¶äžã§å€éãªã¯ãšã¹ããè¡ãããšãã§ããTCP ã¬ãã«ã§ã®æ¥ç¶äœ¿çšçãåäžããŸãã
枬å®ããŸã
çè«ã«ãã£ãŠæ¹åãçŽæãããŠãããšããäºå®ã«ãããããããç§ãã¡ã¯ããã«ã·ã¹ãã ãå®çšŒåç°å¢ã«æå ¥ããããšãæ¥ãããã§ã¯ãããŸããã ãã®ä»£ããã«ããŸããã®ã¢ã€ãã¢ãå®éã«æ©èœããããšã蚌æããå¿ èŠããããŸãã ãããè¡ãã«ã¯ãããã€ãã®è³ªåã«çããå¿ èŠããããŸãã
- ã¹ããŒã: ãããã·ã䜿çšãããšé«éã«ãªããŸãã?
- ä¿¡é Œæ§ïŒå£ããããšãå€ããªããŸããïŒ
- é£æ床: ã¢ããªã±ãŒã·ã§ã³ãšçµ±åããã«ã¯ã©ãããã°ããã§ãã?
- ã®ã³ã¹ã: è¿œå ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãå±éããã«ã¯ã©ããããã®è²»çšãããããŸãã?
æåã®ç¹ãè©äŸ¡ããããã®ã¢ãããŒãã詳ããæ€èšããŠã¿ãŸãããã æ®ããåæ§ã®æ¹æ³ã§åŠçãããŸãã
ãªã¯ãšã¹ãã®é床ãåæããã«ã¯ãéçºã«å€ãã®æéãè²»ããããšãªããæ¬çªç°å¢ãäžæããããšãªãããã¹ãŠã®ãŠãŒã¶ãŒã®ããŒã¿ãååŸããããšèããŠããŸãã ããã«ã¯ããã€ãã®ã¢ãããŒãããããŸãã
- RUMããŸãã¯ããã·ããªã¯ãšã¹ã枬å®ã ãŠãŒã¶ãŒããã®çŸåšã®ãªã¯ãšã¹ãã®å®è¡æéã枬å®ãããŠãŒã¶ãŒãå®å šã«ã«ããŒããŠããããšãä¿èšŒããŸãã æ¬ ç¹ã¯ãããŸããŸãªèŠå (ãªã¯ãšã¹ã ãµã€ãºããµãŒããŒãšã¯ã©ã€ã¢ã³ãã®åŠçæéã®éããªã©) ã«ãããä¿¡å·ãããŸãå®å®ããŠããªãããšã§ãã ããã«ãæ°ããæ§æããã¹ãããŠãå®çšŒåç°å¢ã«åœ±é¿ãäžããããšã¯ã§ããŸããã
- èšåºæ€æ»ã ã¯ã©ã€ã¢ã³ããã·ãã¥ã¬ãŒãããç¹å¥ãªãµãŒããŒãšã€ã³ãã©ã¹ãã©ã¯ãã£ã 圌ãã®ååãåŸãŠãå¿ èŠãªãã¹ããå®æœããŸãã ãã®ããã«ããŠã枬å®çµæãšã¯ãªã¢ãªä¿¡å·ãå®å šã«å¶åŸ¡ã§ããŸãã ããããããã€ã¹ãšãŠãŒã¶ãŒã®å Žæãå®å šã«ã«ããŒããããšã¯ã§ããŸãã (ç¹ã«äžçèŠæš¡ã®ãµãŒãã¹ãšæ°åã®ããã€ã¹ ã¢ãã«ã®ãµããŒã)ã
äž¡æ¹ã®æ¹æ³ã®å©ç¹ãçµã¿åãããã«ã¯ã©ãããã°ããã§ãããã?
ç§ãã¡ã®ããŒã ã¯è§£æ±ºçãèŠã€ããŸããã ç§ãã¡ã¯å°ããªã³ãŒã (ãµã³ãã«) ãäœæãããããã¢ããªã±ãŒã·ã§ã³ã«çµã¿èŸŒã¿ãŸããã ãããŒãã䜿çšãããšãããã€ã¹ããå®å šã«å¶åŸ¡ããããããã¯ãŒã¯ ãã¹ããå®è¡ã§ããŸãã ããã¯ãã®ããã«åäœããŸãïŒ
- ã¢ããªã±ãŒã·ã§ã³ãããŒãããŠæåã®ã¢ã¯ãã£ããã£ãå®äºããçŽåŸã«ããããŒããå®è¡ããŸãã
- ã¯ã©ã€ã¢ã³ãã¯ãµãŒããŒã«ãªã¯ãšã¹ããéä¿¡ãããã¹ãã®ãã¬ã·ãããåãåããŸãã ã¬ã·ãã¯ãHTTP(s) ãªã¯ãšã¹ããè¡ãå¿ èŠããã URL ã®ãªã¹ãã§ãã ããã«ãã¬ã·ãã¯ãªã¯ãšã¹ãéã®é 延ããªã¯ãšã¹ããããããŒã¿ã®éãHTTP(s) ããããŒãªã©ã®ãªã¯ãšã¹ã ãã©ã¡ãŒã¿ãŒãæ§æããŸãã åæã«ãããã€ãã®ç°ãªãã¬ã·ãã䞊è¡ããŠãã¹ãã§ããŸããæ§æããªã¯ãšã¹ããããšãã«ãçºè¡ããã¬ã·ããã©ã³ãã ã«æ±ºå®ããŸãã
- ãããŒãã®èµ·åæéã¯ãã¯ã©ã€ã¢ã³ãäžã®ãããã¯ãŒã¯ ãªãœãŒã¹ã®ã¢ã¯ãã£ããªäœ¿çšãšç«¶åããªãããã«éžæãããŸãã åºæ¬çã«ãã¯ã©ã€ã¢ã³ããã¢ã¯ãã£ãã§ã¯ãªãæéãéžæãããŸãã
- ã¬ã·ããåä¿¡ããåŸãã¯ã©ã€ã¢ã³ãã¯å URL ã«äžŠè¡ããŠãªã¯ãšã¹ããéä¿¡ããŸãã åã¢ãã¬ã¹ãžã®ãªã¯ãšã¹ãã¯ããããããç¹°ãè¿ãããšãã§ããŸãã ããã«ã¹ãã æåã®ãã«ã¹ã§ãæ¥ç¶ã確ç«ããŠããŒã¿ãããŠã³ããŒãããã®ã«ããã£ãæéã枬å®ããŸãã XNUMX çªç®ã®ãã«ã¹ã§ã¯ããã§ã«ç¢ºç«ãããŠããæ¥ç¶ãä»ããŠããŒã¿ãããŒãããã®ã«ãããæéã枬å®ããŸãã XNUMX çªç®ã®åã«ãé
延ãèšå®ããåæ¥ç¶ã®ç¢ºç«ãªã©ã®é床ã枬å®ã§ããŸãã
ãã¹ãäžã«ãããã€ã¹ãååŸã§ãããã¹ãŠã®ãã©ã¡ãŒã¿ã枬å®ããŸãã
- DNS ãªã¯ãšã¹ãæéã
- TCP æ¥ç¶ã®ã»ããã¢ããæéã
- TLS æ¥ç¶ã®ã»ããã¢ããæéã
- ããŒã¿ã®æåã®ãã€ããåä¿¡ããæå»ã
- åèšããŒãæéã
- ã¹ããŒã¿ã¹çµæã³ãŒãã
- ãã¹ãŠã®ãã«ã¹ãå®äºãããšããµã³ãã«ã¯åæã®ããã«ãã¹ãŠã®æž¬å®å€ãããŒãããŸãã
éèŠãªç¹ã¯ãã¯ã©ã€ã¢ã³ãäžã®ããžãã¯ãžã®äŸåãæå°éã§ããããšããµãŒããŒäžã®ããŒã¿åŠçãããã³äžŠåãªã¯ãšã¹ãã®æž¬å®ã§ãã ãããã£ãŠãã¯ãšãªã®ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããããŸããŸãªèŠå ã®åœ±é¿ãåé¢ããŠãã¹ãããåäžã®ã¬ã·ãå
ã§ããããå€åãããå®éã®ã¯ã©ã€ã¢ã³ãããçµæãååŸããããšãã§ããŸãã
ãã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ãã¯ãšãª ããã©ãŒãã³ã¹åæ以äžã®çšéã«åœ¹ç«ã€ããšã蚌æãããŠããŸãã çŸåšã14 ã®ã¢ã¯ãã£ããªã¬ã·ããããã6000 ç§ããã XNUMX ãµã³ãã«ãè¶ ããå°çã®é ã ããããŒã¿ãåä¿¡ããããã€ã¹ãå®å šã«ã«ããŒããŠããŸãã Netflixãåæ§ã®ãµãŒãã¹ããµãŒãããŒãã£ããè²·åããå Žåã幎éæ°çŸäžãã«ã®è²»çšãããããã«ããŒç¯å²ã¯ã¯ããã«æªããªããŸãã
å®éã®ãã¹ãçè«: ãããã¿ã€ã
ãã®ãããªã·ã¹ãã ã䜿çšããããšã§ããªã¯ãšã¹ãã®é 延ã«å¯Ÿãã CDN ãããã·ã®æå¹æ§ãè©äŸ¡ããããšãã§ããŸããã ä»å¿ èŠãªãã®ã¯æ¬¡ã®ãšããã§ãã
- ãããã· ãããã¿ã€ããäœæããŸãã
- ãããã¿ã€ãã CDN ã«çœ®ããŸãã
- ã¯ã©ã€ã¢ã³ããç¹å®ã® CDN ãµãŒããŒäžã®ãããã·ã«èªå°ããæ¹æ³ã決å®ããŸãã
- ãããã·ã䜿çšããªã AWS ã§ã®ãªã¯ãšã¹ããšããã©ãŒãã³ã¹ãæ¯èŒããŸãã
課é¡ã¯ãææ¡ããããœãªã¥ãŒã·ã§ã³ã®æå¹æ§ãã§ããã ãæ©ãè©äŸ¡ããããšã§ãã åªãããããã¯ãŒãã³ã° ã©ã€ãã©ãªãå©çšã§ããããããããã¿ã€ãã®å®è£ ã« Go ãéžæããŸããã å CDN ãµãŒããŒã«ã¯ãäŸåé¢ä¿ãæå°éã«æããçµ±åãç°¡çŽ åããããã«ããããã¿ã€ã ãããã·ãéçãã€ããªãšããŠã€ã³ã¹ããŒã«ããŸããã åæå®è£ ã§ã¯ãå¯èœãªéãæšæºã³ã³ããŒãã³ãã䜿çšããHTTP/2 æ¥ç¶ããŒãªã³ã°ãšãªã¯ãšã¹ãã®å€éåã«è¥å¹²ã®å€æŽãå ããŸããã
AWS ãªãŒãžã§ã³éã®ãã©ã³ã¹ããšãããã«ãã¯ã©ã€ã¢ã³ãã®ãã©ã³ã¹ãåãããã«äœ¿çšããã®ãšåãå°çç DNS ããŒã¿ããŒã¹ã䜿çšããŸããã ã¯ã©ã€ã¢ã³ãã® CDN ãµãŒããŒãéžæããã«ã¯ãInternet Exchange (IX) ã®ãµãŒããŒã« TCP Anycast ã䜿çšããŸãã ãã®ãªãã·ã§ã³ã§ã¯ããã¹ãŠã® CDN ãµãŒããŒã«å¯Ÿã㊠XNUMX ã€ã® IP ã¢ãã¬ã¹ã䜿çšããã¯ã©ã€ã¢ã³ã㯠IP ãããæ°ãæãå°ãªã CDN ãµãŒããŒã«ãªãã€ã¬ã¯ããããŸãã ã€ã³ã¿ãŒããã ãããã€ã㌠(ISP) ã«ãã£ãŠã€ã³ã¹ããŒã«ããã CDN ãµãŒããŒã§ã¯ãã«ãŒã¿ãŒãå¶åŸ¡ã㊠TCP ãšããŒãã£ã¹ããæ§æããããšãã§ããªãããã
ãããã£ãŠããªã¯ãšã¹ã ãã¹ã«ã¯ XNUMX çš®é¡ããããŸãããªãŒãã³ ã€ã³ã¿ãŒãããçµç±ãIX ã® CDN ãµãŒããŒçµç±ããŸãã¯ã€ã³ã¿ãŒããã ãããã€ããŒã«ãã CDN ãµãŒããŒçµç±ã®ã¯ã©ãŠããžã§ãã ç§ãã¡ã®ç®æšã¯ããªã¯ãšã¹ããæ¬çªç°å¢ã«éä¿¡ãããæ¹æ³ãšæ¯èŒããŠãã©ã¡ãã®æ¹æ³ãåªããŠããã®ãããããã·ã®å©ç¹ã¯äœãªã®ããç解ããããšã§ãã ãããè¡ãããã«ã次ã®ãããªãµã³ããªã³ã° ã·ã¹ãã ã䜿çšããŸãã
ããããã®ãã¹ãåå¥ã®ç®æšãšãªããå°éããæéã確èªããŸãã åæã®ããã«ããããã·ã®çµæã XNUMX ã€ã®ã°ã«ãŒãã«çµåã (IX ãããã·ãš ISP ãããã·éã®æé©ãªæéãéžæ)ããããã·ã䜿çšããªãã¯ã©ãŠããžã®ãªã¯ãšã¹ãã®æéãšæ¯èŒããŸãã
ã芧ã®ãšãããçµæã¯ãŸã¡ãŸã¡ã§ãããã»ãšãã©ã®å Žåããããã·ã«ãã£ãŠé床ã倧å¹
ã«åäžããŸããããç¶æ³ã倧å¹
ã«æªåããã¯ã©ã€ã¢ã³ããååãªæ°ãããŸããã
ãã®çµæãç§ãã¡ã¯ããã€ãã®éèŠãªããšãè¡ããŸããã
- CDN ãããã·çµç±ã§ã¯ã©ã€ã¢ã³ãããã¯ã©ãŠããžã®ãªã¯ãšã¹ãã®äºæ³ãããããã©ãŒãã³ã¹ãè©äŸ¡ããŸããã
- ç§ãã¡ã¯å®éã®ã¯ã©ã€ã¢ã³ããããããããçš®é¡ã®ããã€ã¹ããããŒã¿ãåãåããŸããã
- ãã®çè«ã¯ 100% 確èªãããŠããããCDN ãããã·ã䜿çšããæåã®ææ¡ã¯æ©èœããªãããšãããããŸããã
- ç§ãã¡ã¯ãªã¹ã¯ãåããŸããã§ãããã¯ã©ã€ã¢ã³ãã®éçšæ§æãå€æŽããŸããã§ããã
- äœãå£ããŠããŸããã§ããã
ãããã¿ã€ã 2.0
ãããã£ãŠãæ¯ãåºãã«æ»ã£ãŠããã»ã¹ãããäžåºŠç¹°ãè¿ããŸãã
ãã®èãæ¹ã¯ã100% ãããã·ã䜿çšãã代ããã«ãåã¯ã©ã€ã¢ã³ãã®æéãã¹ã決å®ããããã«ãªã¯ãšã¹ããéä¿¡ãããã€ãŸããããããã¯ã©ã€ã¢ã³ã ã¹ãã¢ãªã³ã°ãå®è¡ãããšãããã®ã§ãã
ãããå®è£
ããã«ã¯ã©ãããã°ããã§ãããã? ãµãŒããŒåŽã§ããžãã¯ã䜿çšããããšã¯ã§ããŸããããªããªã... ç®æšã¯ããã®ãµãŒããŒã«æ¥ç¶ããããšã§ãã ã¯ã©ã€ã¢ã³ãäžã§ãããè¡ãäœããã®æ¹æ³ãå¿
èŠã§ãã ãããŠçæ³çã«ã¯ãå€æ°ã®ã¯ã©ã€ã¢ã³ã ãã©ãããã©ãŒã ãšã®çµ±åã®åé¡ã解決ããªãããã«ãæå°éã®è€éãªããžãã¯ã§ãããå®è¡ããŸãã
çãã¯ãDNS ã䜿çšããããšã§ãã ç§ãã¡ã®å Žåãç¬èªã® DNS ã€ã³ãã©ã¹ãã©ã¯ãã£ãããããµãŒããŒãæš©åšãæã€ãã¡ã€ã³ ãŸãŒã³ãèšå®ã§ããŸãã ããã¯ãã®ããã«åäœããŸãïŒ
- ã¯ã©ã€ã¢ã³ãã¯ããã¹ã (api.netflix.xom ãªã©) ã䜿çšã㊠DNS ãµãŒããŒã«ãªã¯ãšã¹ããéä¿¡ããŸãã
- ãªã¯ãšã¹ããDNSãµãŒããŒã«å°çããŸã
- DNS ãµãŒããŒã¯ããã®ã¯ã©ã€ã¢ã³ãã«ãšã£ãŠã©ã®ãã¹ãæéã§ããããèªèãã察å¿ãã IP ã¢ãã¬ã¹ãçºè¡ããŸãã
ãã®ãœãªã¥ãŒã·ã§ã³ã«ã¯ããã«è€éãã䌎ããŸããæš©åšäž»çŸ©ç㪠DNS ãããã€ããŒã¯ã¯ã©ã€ã¢ã³ãã® IP ã¢ãã¬ã¹ãèªèãããã¯ã©ã€ã¢ã³ãã䜿çšããååž°ãªãŸã«ããŒã® IP ã¢ãã¬ã¹ããèªã¿åãããšãã§ããŸããã
ãã®çµæãæš©åšäž»çŸ©ãªãŸã«ããŒã¯ãåã ã®ã¯ã©ã€ã¢ã³ãã§ã¯ãªããååž°çãªãŸã«ããŒã«åºã¥ããŠã¯ã©ã€ã¢ã³ãã®ã°ã«ãŒãã«å¯ŸããŠæ±ºå®ãäžãå¿ èŠããããŸãã
解決ããã«ã¯ãåããµã³ãã«ã䜿çšããååž°ãªãŸã«ããŒããšã«ã¯ã©ã€ã¢ã³ãããã®æž¬å®çµæãéçŽãããã®ã°ã«ãŒãã®éä¿¡å (TCP ãšããŒãã£ã¹ãã䜿çšãã IX çµç±ã®ãããã·ãISP ãããã·çµç±ããŸãã¯ã¯ã©ãŠããžã®çŽæ¥éä¿¡) ã決å®ããŸãã
次ã®ã·ã¹ãã ãåŸãããŸãã
çµæãšããŠåŸããã DNS ã¹ãã¢ãªã³ã° ã¢ãã«ã«ãããã¯ã©ã€ã¢ã³ãããã¯ã©ãŠããžã®æ¥ç¶é床ã®å±¥æŽèŠ³å¯ã«åºã¥ããŠã¯ã©ã€ã¢ã³ããèªå°ã§ããŸãã
ç¹°ãè¿ãã«ãªããŸãããåé¡ã¯ããã®ã¢ãããŒããã©ã®çšåºŠå¹æçã«æ©èœããããšããããšã§ãã ããã«çããããã«ãç§ãã¡ã¯åã³ãããŒã ã·ã¹ãã ã䜿çšããŸãã ãããã£ãŠãã¿ãŒã²ããã® XNUMX ã€ã DNS ã¹ãã¢ãªã³ã°ããã®æ瀺ã«åŸãããã XNUMX ã€ãã¯ã©ãŠã (çŸåšã®æ¬çªç°å¢) ã«çŽæ¥éä¿¡ããããã¬ãŒã³ã¿ãŒæ§æãæ§æããŸãã
ãã®çµæãçµæãæ¯èŒããŠæå¹æ§ãè©äŸ¡ããŸãã
ãã®çµæãããã€ãã®éèŠãªããšãåãããŸããã
- DNS ã¹ãã¢ãªã³ã°ã䜿çšããŠãã¯ã©ã€ã¢ã³ãããã¯ã©ãŠããžã®ãªã¯ãšã¹ãã®äºæ³ãããããã©ãŒãã³ã¹ãè©äŸ¡ããŸããã
- ç§ãã¡ã¯å®éã®ã¯ã©ã€ã¢ã³ããããããããçš®é¡ã®ããã€ã¹ããããŒã¿ãåãåããŸããã
- ææ¡ãããã¢ã€ãã¢ã®æå¹æ§ã蚌æãããŸããã
- ç§ãã¡ã¯ãªã¹ã¯ãåããŸããã§ãããã¯ã©ã€ã¢ã³ãã®éçšæ§æãå€æŽããŸããã§ããã
- äœãå£ããŠããŸããã§ããã
ããŠãé£ããéšåã§ãããæ¬çªç°å¢ã§èµ·åããŸãã
ç°¡åãªéšåã¯çµãããŸãããåäœãããããã¿ã€ããå®æããŸããã ããã§æãé£ããã®ã¯ãNetflix ã®ãã¹ãŠã®ãã©ãã£ãã¯ã«å¯Ÿå¿ãããœãªã¥ãŒã·ã§ã³ãç«ã¡äžãã150 å XNUMX äžäººã®ãŠãŒã¶ãŒãæ°åã®ããã€ã¹ãæ°çŸã®ãã€ã¯ããµãŒãã¹ããããŠåžžã«å€åãã補åãšã€ã³ãã©ã¹ãã©ã¯ãã£ã«å±éããããšã§ãã Netflix ãµãŒããŒã¯ XNUMX ç§ãããæ°çŸäžä»¶ã®ãªã¯ãšã¹ããåä¿¡ãããããäžçšæãªæäœã§ãµãŒãã¹ãäžæããã®ã¯ç°¡åã§ãã åæã«ãã€ã³ã¿ãŒãããäžã®äœåãã® CDN ãµãŒããŒãä»ããŠãã©ãã£ãã¯ãåçã«ã«ãŒãã£ã³ã°ããããšèããŠããŸããã€ã³ã¿ãŒãããã§ã¯ãåžžã«äœããå€åããããæãäžéœåãªç¬éã«å£ãããããŸãã
ããããã¹ãŠã«ãããããŒã ã«ã¯ã·ã¹ãã ã®éçºãå°å ¥ãå®å šãªãµããŒããæ åœãã 3 人ã®ãšã³ãžãã¢ãããŸãã
ãããã£ãŠãç§ãã¡ã¯å®ãããªå¥åº·çãªç¡ç ã«ã€ããŠåŒãç¶ã話ããŠãããŸãã
ãµããŒãã«ãã¹ãŠã®æéãè²»ãããã«éçºãç¶ããã«ã¯ã©ãããã°ããã§ãããã? ç§ãã¡ã®ã¢ãããŒã㯠3 ã€ã®ååã«åºã¥ããŠããŸãã
- æœåšçãªæ éèŠæš¡ïŒççºç¯å²ïŒãçž®å°ããŸãã
- ç§ãã¡ã¯é©ãã«åããŠæºåãããŠããŸãããã¹ããå人çãªçµéšã«ãããããããäœããå£ããããšã¯äºæ³ãããŸãã
- ã°ã¬ãŒã¹ãã« ãã°ã©ããŒã·ã§ã³ - äœããæ£ããåäœããªãå Žåã¯ãããšãæãå¹ççãªæ¹æ³ã§ãªããŠããèªåçã«ä¿®æ£ãããå¿ èŠããããŸãã
ç§ãã¡ã®å Žåãåé¡ã«å¯Ÿãããã®ã¢ãããŒãã«ãããã·ã³ãã«ã§å¹æçãªè§£æ±ºçãèŠã€ããã·ã¹ãã ãµããŒããå€§å¹ ã«ç°¡çŽ åã§ããããšãããããŸããã ç§ãã¡ã¯ãã¯ã©ã€ã¢ã³ãã«å°ããªã³ãŒããè¿œå ããŠãæ¥ç¶ã®åé¡ã«ãã£ãŠåŒãèµ·ãããããããã¯ãŒã¯ ãªã¯ãšã¹ã ãšã©ãŒãç£èŠã§ããããšã«æ°ä»ããŸããã ãããã¯ãŒã¯ãšã©ãŒãçºçããå Žåã¯ãã¯ã©ãŠãã«çŽæ¥ãã©ãŒã«ããã¯ããŸãã ãã®ãœãªã¥ãŒã·ã§ã³ã¯ãã¯ã©ã€ã¢ã³ã ããŒã ã«ãšã£ãŠå€å€§ãªåŽåãå¿ èŠãšããŸããããç§ãã¡ã«ãšã£ãŠäºæãã¬æ éãäºæãã¬äºæ ãçºçãããªã¹ã¯ãå€§å¹ ã«è»œæžããŸãã
ãã¡ããããã©ãŒã«ããã¯ã«ãããããããç§ãã¡ã¯éçºäžã«æ確ãªèŠåŸã«åŸããŸãã
- ãµã³ãã«ãã¹ãã
- A/B ãã¹ããŸãã¯ã«ããªã¢ã
- 段éçãªããŒã«ã¢ãŠãã
ãµã³ãã«ã䜿çšããŠã¢ãããŒãã説æããŸãããå€æŽã¯ãã«ã¹ã¿ãã€ãºãããã¬ã·ãã䜿çšããŠæåã«ãã¹ããããŸãã
ã«ããªã¢ ãã¹ãã§ã¯ãå€æŽåãšå€æŽåŸã®ã·ã¹ãã ã®åäœãæ¯èŒã§ãããæ¯èŒå¯èœãªãµãŒããŒã®ãã¢ãååŸããå¿ èŠããããŸãã ãããè¡ãããã«ãå€ãã® CDN ãµã€ããããåçã®ãã©ãã£ãã¯ãåä¿¡ãããµãŒããŒã®ãã¢ãéžæããŸãã
次ã«ãå€æŽãå ãããã«ãã Canary ãµãŒããŒã«ã€ã³ã¹ããŒã«ããŸãã çµæãè©äŸ¡ããããã«ãçŽ 100 ïœ 150 ã®ã¡ããªã¯ã¹ãã³ã³ãããŒã« ãµãŒããŒã®ãµã³ãã«ãšæ¯èŒããã·ã¹ãã ãå®è¡ããŸãã
Canary ãã¹ããæåããå Žåã¯ã段éçã«ã段éçã«ãªãªãŒã¹ããŸãã åãµã€ãã®ãµãŒããŒãåæã«æŽæ°ããããšã¯ãããŸãããåé¡ã«ãããµã€ãå
šäœã倱ãããšã¯ãå¥ã®å Žæã§åãæ°ã®ãµãŒããŒã倱ãããšãããããŠãŒã¶ãŒãžã®ãµãŒãã¹ã«å€§ããªåœ±é¿ãäžããŸãã
äžè¬ã«ããã®ã¢ãããŒãã®æå¹æ§ãšå®å šæ§ã¯ãåéãããã¡ããªã¯ã¹ã®éãšå質ã«äŸåããŸãã ã¯ãšãªé«éåã·ã¹ãã ã§ã¯ãèãããããã¹ãŠã®ã³ã³ããŒãã³ãããã¡ããªã¯ã¹ãåéããŸãã
- ã¯ã©ã€ã¢ã³ããã - ã»ãã·ã§ã³ãšãªã¯ãšã¹ãã®æ°ããã©ãŒã«ããã¯çã
- ãããã· - ãªã¯ãšã¹ãã®æ°ãšæéã«é¢ããçµ±èšã
- DNS - ãªã¯ãšã¹ãã®æ°ãšçµæã
- ã¯ã©ãŠã ãšããž - ã¯ã©ãŠãã§ã®ãªã¯ãšã¹ãã®åŠçæ°ãšæéã
ããããã¹ãŠã XNUMX ã€ã®ãã€ãã©ã€ã³ã«åéãããããŒãºã«å¿ããŠãã©ã®ã¡ããªã¯ã¹ããªã¢ã«ã¿ã€ã åæã«éä¿¡ãããããã詳现ãªèšºæã®ããã«ã©ã®ã¡ããªã¯ã¹ã Elasticsearch ãŸãã¯ããã° ããŒã¿ã«éä¿¡ãããã決å®ããŸãã
ç§ãã¡ã¯ç£èŠããŸã
ãã®äŸã§ã¯ãã¯ã©ã€ã¢ã³ããšãµãŒããŒéã®ãªã¯ãšã¹ãã®ã¯ãªãã£ã«ã« ãã¹ã«å€æŽãå ããŠããŸãã åæã«ãã¯ã©ã€ã¢ã³ãäžããµãŒããŒäžãã€ã³ã¿ãŒãããçµç±ã®ããŸããŸãªã³ã³ããŒãã³ãã®æ°ã¯èšå€§ã§ãã ã¯ã©ã€ã¢ã³ããšãµãŒããŒã®å€æŽã¯ãæ°åã®ããŒã ã®äœæ¥äžããšã³ã·ã¹ãã ã®èªç¶ãªå€åäžã«åžžã«çºçããŸãã ç§ãã¡ã¯ãã®äžéã«ããŸããåé¡ã蚺æããéã«ã¯ãç§ãã¡ãé¢äžããå¯èœæ§ãååã«ãããŸãã ãããã£ãŠãåé¡ãè¿
éã«åãåããããã«ãã¡ããªã¯ã¹ãå®çŸ©ãåéãåæããæ¹æ³ãæ確ã«ç解ããå¿
èŠããããŸãã
çæ³çã«ã¯ãããããçš®é¡ã®ã¡ããªã¯ã¹ãšãã£ã«ã¿ãŒã«ãªã¢ã«ã¿ã€ã ã§å®å šã«ã¢ã¯ã»ã¹ã§ããããšã§ãã ããããææšããããããããããã³ã¹ãã®åé¡ãçããŸãã ç§ãã¡ã®å Žåã次ã®ããã«ã¡ããªã¯ã¹ãšéçºããŒã«ãåé¢ããŸãã
åé¡ãæ€åºããŠåªå
é äœãä»ããããã«ãåœç€Ÿã¯ç¬èªã®ãªãŒãã³ãœãŒã¹ ãªã¢ã«ã¿ã€ã ã·ã¹ãã ã䜿çšããŠããŸãã
ãã®ã¢ãããŒãã¯éåžžã«é£ããããã§ãã ãã ããã¡ããªã¯ã¹ãšããŒã«ãéå±€çã«ç·šæããããšã§ãåé¡ãè¿ éã«åæããåé¡ã®çš®é¡ãç¹å®ãã詳现ãªã¡ããªã¯ã¹ãæãäžããããšãã§ããŸãã éåžžãæ éã®åå ãç¹å®ããã®ã«çŽ 1 ïœ 2 åããããŸãã ãã®åŸãç¹å®ã®ããŒã ãšååããŠãæ°ååããæ°æéãããŠèšºæãè¡ããŸãã
ããšã蚺æãè¿ éã«è¡ããããšããŠãããã®ãããªããšãé »ç¹ã«èµ·ããããšã¯æãŸãããããŸããã çæ³çã«ã¯ããµãŒãã¹ã«é倧ãªåœ±é¿ãããå Žåã«ã®ã¿é倧ãªã¢ã©ãŒããåä¿¡ããŸãã ã¯ãšãªé«éåã·ã¹ãã ã®å Žåãéç¥ããã¢ã©ãŒã㯠2 ã€ã ãã§ãã
- ã¯ã©ã€ã¢ã³ã ãã©ãŒã«ããã¯ç - 顧客ã®è¡åã®è©äŸ¡ã
- ãããŒããšã©ãŒã®å²å - ãããã¯ãŒã¯ã³ã³ããŒãã³ãã®å®å®æ§ããŒã¿ã
ãããã®éèŠãªã¢ã©ãŒãã¯ãã·ã¹ãã ã倧å€æ°ã®ãŠãŒã¶ãŒã«å¯ŸããŠæ©èœããŠãããã©ãããç£èŠããŸãã ãªã¯ãšã¹ãã®é«éåãå®çŸã§ããªãã£ãå Žåã«ãã©ãŒã«ããã¯ã䜿çšããã¯ã©ã€ã¢ã³ãã®æ°ã調ã¹ãŸãã ã·ã¹ãã å ã§å€§éã®å€æŽãè¡ãããŠããã«ãããããããé倧ãªã¢ã©ãŒã㯠1 é±éãããå¹³å XNUMX 件æªæºã§ãã ãªãããã ãã§ååãªã®ã§ãããã?
- ãããã·ãæ©èœããªãå Žåã¯ãã¯ã©ã€ã¢ã³ãã®ãã©ãŒã«ããã¯ããããŸãã
- ãã©ãã«ã«å¯Ÿå¿ããèªåæèµã·ã¹ãã ãããã
åŸè ã«ã€ããŠã¯ããã«è©³ãã説æããŸãã åœç€Ÿã®è©Šçšã·ã¹ãã ã§ã¯ãã¯ã©ã€ã¢ã³ãããã¯ã©ãŠããžã®ãªã¯ãšã¹ãã®æé©ãªçµè·¯ãèªåã§æ±ºå®ããã·ã¹ãã ã«ãããäžéšã®åé¡ã«ãèªåçã«å¯Ÿå¿ã§ããŸãã
ãµã³ãã«æ§æãš 3 ã€ã®ãã¹ ã«ããŽãªã«æ»ããŸãããã èªã¿èŸŒã¿æéã«å ããŠãé ä¿¡èªäœã®äºå®ã確èªã§ããŸãã ããŒã¿ãããŒãã§ããªãã£ãå Žåã¯ãããŸããŸãªãã¹ã«æ²¿ã£ãŠçµæã確èªããããšã§ãã©ãã§äœãå£ããã®ããå€æãããªã¯ãšã¹ã ãã¹ãå€æŽããããšã§èªåçã«ä¿®æ£ã§ãããã©ãããå€æã§ããŸãã
ÐÑОЌеÑÑïŒ
ãã®ããã»ã¹ã¯èªååã§ããŸãã ã¹ãã¢ãªã³ã°ã·ã¹ãã ã«çµã¿èŸŒã¿ãŸãã ãããŠãããã©ãŒãã³ã¹ãšä¿¡é Œæ§ã®åé¡ã«å¯ŸåŠããæ¹æ³ãæããŸãã äœããå£ãå§ããããããè¯ãéžæè¢ããããã©ããã«å¿ããŠãã ããã åæã«ãã¯ã©ã€ã¢ã³ããžã®ãã©ãŒã«ããã¯ã®ãããã§ãå³æã®åå¿ã¯éèŠã§ã¯ãããŸããã
ãããã£ãŠãã·ã¹ãã ãµããŒãã®ååã¯æ¬¡ã®ããã«å®åŒåã§ããŸãã
- æ éã®èŠæš¡ãæžããã
- ã¡ããªã¯ã¹ãåéããã
- å¯èœãªå Žåã¯æ éãèªåçã«ä¿®åŸ©ããŸãã
- ãããã§ããªãå Žåã¯ãéç¥ããŸãã
- ç§ãã¡ã¯ãè¿ éãªå¯Ÿå¿ã®ããã®ããã·ã¥ããŒããšåªå é äœä»ãããŒã«ã»ããã®éçºã«åãçµãã§ããŸãã
åŠãã æèš
ãããã¿ã€ãã®äœæã«ã¯ããã»ã©æéã¯ããããŸããã ç§ãã¡ã®å Žåã4ãæåŸã«æºåãæŽããŸããã ããã«ãã£ãŠæ°ããã¡ããªã¯ã¹ãåãåããéçºéå§ãã 10 ãæåŸã«æåã®éçšãã©ãã£ãã¯ãåãåããŸããã ãããããéå±ã§éåžžã«å°é£ãªäœæ¥ãå§ãŸããŸãããã·ã¹ãã ãåŸã ã«è£œååããŠæ¡åŒµããäž»èŠãªãã©ãã£ãã¯ã移è¡ããééãããåŠã³ãŸããã ãã ãããã®å¹æçãªããã»ã¹ã¯çŽç·çã§ã¯ãããŸãããããããåªåã«ããããããããã¹ãŠãäºæž¬ããããšã¯ã§ããŸããã è¿ éã«å埩ããŠæ°ããããŒã¿ã«å¯Ÿå¿ããæ¹ãã¯ããã«å¹æçã§ãã
ç§ãã¡ã®çµéšã«åºã¥ããŠã次ã®ããšããå§ãããŸãã
- èªåã®çŽæãä¿¡ããªãã§ãã ããã
ããŒã ã¡ã³ããŒã®è±å¯ãªçµéšã«ãããããããç§ãã¡ã®çŽæã¯åžžã«è£åãããŸããã ããšãã°ãCDN ãããã·ã®äœ¿çšã«ãã£ãŠäºæ³ãããé«éåããTCP ãšããŒãã£ã¹ãã®åäœã誀ã£ãŠäºæž¬ããŸããã
- æ¬çªç°å¢ããããŒã¿ãååŸããŸãã
å°ãªããšãå°éã®å®çšŒåããŒã¿ã«ã§ããã ãæ©ãã¢ã¯ã»ã¹ããããšãéèŠã§ãã å®éšå®€æ¡ä»¶ã«ãããåºæã®ã±ãŒã¹ãæ§æãèšå®ã®æ°ãååŸããããšã¯ã»ãšãã©äžå¯èœã§ãã çµæã«çŽ æ©ãã¢ã¯ã»ã¹ã§ãããããæœåšçãªåé¡ãããã«ç¥ãããããã·ã¹ãã ã¢ãŒããã¯ãã£ã§èæ ®ããããšãã§ããŸãã
- ä»ã®äººã®ã¢ããã€ã¹ãçµæã«åŸãã®ã§ã¯ãªããèªåèªèº«ã®ããŒã¿ãåéããŠãã ããã
ããŒã¿ã®åéãšåæã®ååã«åŸããŸãããä»äººã®çµæãçºèšãç²ç®çã«åãå ¥ããªãã§ãã ããã ãŠãŒã¶ãŒã«ãšã£ãŠäœã圹ç«ã€ããæ£ç¢ºã«ç¥ãããšãã§ããã®ã¯ããªãã ãã§ãã 貎瀟ã®ã·ã¹ãã ã顧客ã¯ãä»ã®äŒæ¥ãšã¯å€§ããç°ãªãå ŽåããããŸãã 幞ããªããšã«ãçŸåšã§ã¯åæããŒã«ãå©çšå¯èœã§ããã䜿ãããããªã£ãŠããŸãã åŸãããçµæã¯ãNetflixãFacebookãAkamaiããã®ä»ã®äŒæ¥ã䞻匵ããŠãããã®ãšç°ãªãå ŽåããããŸãã ç§ãã¡ã®å ŽåãTLSãHTTP2ããŸã㯠DNS ãªã¯ãšã¹ãã®çµ±èšã®ããã©ãŒãã³ã¹ã¯ãFacebookãUberãAkamai ã®çµæãšã¯ç°ãªããŸããããã¯ãããã€ã¹ãã¯ã©ã€ã¢ã³ããããŒã¿ ãããŒãç°ãªãããã§ãã
- äžå¿
èŠã«æµè¡ãè¿œãããå¹æãè©äŸ¡ããŠãã ããã
ã·ã³ãã«ã«å§ããŸãããã å¿ èŠã®ãªãã³ã³ããŒãã³ãã®éçºã«èšå€§ãªæéãè²»ããããããã·ã³ãã«ã§å®çšçãªã·ã¹ãã ãçæéã§äœæããæ¹ãè¯ãã§ãããã 枬å®ãšçµæã«åºã¥ããŠãéèŠãªã¿ã¹ã¯ãšåé¡ã解決ããŸãã
- æ°ããã¢ããªã±ãŒã·ã§ã³ã®æºåãããŸãããã
ãã¹ãŠã®åé¡ãäºæž¬ããããšãé£ããã®ãšåæ§ã«ãå©ç¹ãçšéãäºåã«äºæž¬ããããšãå°é£ã§ãã ã¹ã¿ãŒãã¢ããäŒæ¥ã®é¡§å®¢ã®ç¶æ³ã«é©å¿ããèœåãåèã«ããŠãã ããã ããªãã®å Žåãæ°ããªåé¡ãšãã®è§£æ±ºçãèŠã€ãããããããŸããã ç§ãã¡ã®ãããžã§ã¯ãã§ã¯ããªã¯ãšã¹ãã®ã¬ã€ãã³ã·ãççž®ãããšããç®æšãèšå®ããŸããã ãã ããåæãšè°è«ã®éçšã§ããããã· ãµãŒããŒã䜿çšã§ããããšãããããŸããã
- AWS ãªãŒãžã§ã³éã§ãã©ãã£ãã¯ã®ãã©ã³ã¹ããšããã³ã¹ããåæžããããã
- CDN ã®å®å®æ§ãã¢ãã«åããã
- DNS ãèšå®ããããã
- TLS/TCPãèšå®ããŸãã
ãŸãšã
ãã®ã¬ããŒãã§ã¯ãã¯ã©ã€ã¢ã³ããšã¯ã©ãŠãéã®ã€ã³ã¿ãŒããã ãªã¯ãšã¹ãã®é«éåã®åé¡ã Netflix ãã©ã®ããã«è§£æ±ºããŠãããã«ã€ããŠèª¬æããŸããã ã¯ã©ã€ã¢ã³ãäžã®ãµã³ããªã³ã° ã·ã¹ãã ã䜿çšããŠããŒã¿ãåéããåéãããå±¥æŽããŒã¿ã䜿çšããŠã¯ã©ã€ã¢ã³ãããã®å¶äœãªã¯ãšã¹ããã€ã³ã¿ãŒãããäžã®æéã®ãã¹ã«ã«ãŒãã£ã³ã°ããæ¹æ³ã ãã®ã¿ã¹ã¯ãéæããããã«ããããã¯ãŒã¯ ãããã³ã«ãCDN ã€ã³ãã©ã¹ãã©ã¯ãã£ãããã¯ããŒã³ ãããã¯ãŒã¯ãDNS ãµãŒããŒã®ååãã©ã®ããã«äœ¿çšãããã
ãã ããç§ãã¡ã®ãœãªã¥ãŒã·ã§ã³ã¯ãNetflix ããã®ãããªã·ã¹ãã ãã©ã®ããã«å®è£ ãããã®äžäŸã«ãããŸããã ç§ãã¡ã«ãšã£ãŠäœãããŸããã£ãã®ãã ç§ã®ã¬ããŒãã®å¿çšéšåã¯ãç§ãã¡ãåŸã£ãŠè¯ãçµæãéæããéçºãšãµããŒãã®ååã§ãã
ç§ãã¡ã®åé¡ã«å¯Ÿãã解決çã¯ããªãã«åããªããããããŸããã ãã ããç¬èªã® CDN ã€ã³ãã©ã¹ãã©ã¯ãã£ãæã£ãŠããªãå Žåãããããåœç€Ÿã® CDN ã€ã³ãã©ã¹ãã©ã¯ãã£ãšå€§ããç°ãªãå Žåã§ããçè«ãšèšèšååã¯å€ãããŸããã
ããžãã¹ãªã¯ãšã¹ãã®ã¹ããŒããåŒãç¶ãéèŠã§ãã ãŸããåçŽãªãµãŒãã¹ã§ãã£ãŠããã¯ã©ãŠã ãããã€ããŒããµãŒããŒã®å ŽæãCDN ãããã€ããŒãDNS ãããã€ããŒã®äžããéžæããå¿ èŠããããŸãã ããªãã®éžæã¯ã顧客ã«å¯Ÿããã€ã³ã¿ãŒããã ã¯ãšãªã®æå¹æ§ã«åœ±é¿ããŸãã ãããŠããã®åœ±é¿ã枬å®ããç解ããããšãéèŠã§ãã
ã·ã³ãã«ãªãœãªã¥ãŒã·ã§ã³ããå§ããŠã補åãã©ã®ããã«å€æŽãããã«æ³šæããŠãã ããã åŠã³ãªããã顧客ãã€ã³ãã©ã¹ãã©ã¯ãã£ãããžãã¹ããã®ããŒã¿ã«åºã¥ããŠã·ã¹ãã ãæ¹åããŸãã èšèšããã»ã¹äžã«äºæãã¬æ éãçºçããå¯èœæ§ã«ã€ããŠèããŠãã ããã ããããã°ãéçºããã»ã¹ãã¹ããŒãã¢ãããããœãªã¥ãŒã·ã§ã³ã®å¹çãåäžãããäžå¿ èŠãªãµããŒãã®è² æ ãåé¿ããå®ããã«ç ãããšãã§ããŸãã
ä»å¹Ž
äŒè°ã¯6æ10æ¥ããXNUMXæ¥ãŸã§éå¬ãããŸã ãªã³ã©ã€ã³åœ¢åŒã§ã DevOps ã®ç¶ã® XNUMX 人ã§ãã John Willis æ¬äººã«è³ªåããããšãã§ããŸãã
åºæïŒ habr.com