Netflix ã®ã¹ã±ã¼ã«
ç¾å¨æ¥æ¬ã§ãµã¼ãã¹ãæä¾ãã¦ããªãããç®ã«ãããã¨ã¯å°ãªãã§ãã、AWS ã®ãã¹ããã©ã¯ãã£ã¹ã¨å¼ã³åãé«ã Netflix ã®ã¹ã±ã¼ã«ãã¡ã¢。ãã¹ããã©ã¯ãã£ã¹ã¨è¨ãããã ããã£ã¦、è¨äºã解説ãè±å¯ã§ã。ã¾ã¼è¦æ¨¡ãæ¡éãéããã®ã§èªã¿é£ã°ãã¦ããã£ã¦ã®ãæ£ç´ãªã¨ããã§ãã、V å çããªãã³ã§è³æãèªã¿ç´ãã¾ãã。AWS ã® How-to è¨äºã¯æ¥æ¬èªã§ãå±±ã»ã©ãã£ãã®ã§、èªç¤¾ãã¼ã¿ã»ã³ã¿ã¼ãã AWS ã¸ç§»è¡ããéç¨ãä¸å¿ã«æ¸ãããã¨æãã¾ã。Netflix ã®ãã¯ããã¸ã¼ã«ã¤ãã¦ã¯ä»¥ä¸ãåèã«ãã¾ãã。
>>> ãµã¼ãã¹ã®è¦æ¨¡
Netflix ã¯ä¸»ã«å米㧠VOD 㨠DVD éµéã¬ã³ã¿ã«ãµã¼ãã¹ãæä¾ãã¦ããä¼ç¤¾ã§ã。ã»ã¨ãã© VOD ã§、ä»å¾ DVD éµéã¬ã³ã¿ã«ã¯ç¸®å°ããããã。AWS ã®è³æã VOD ãã¡ã¤ã³ã§ã。ãµã¼ãã¹è¦æ¨¡ãæç² (ã¹ã©ã¤ã) ããã¨、
- ä¼å¡æ°ã¯ 2500 ä¸äººå¼±
- ãã¼ã¯æã¯åç±³ã¤ã³ã¿ã¼ããããã©ãã£ãã¯ã® 30% è¶ ãå æ
- 800 種é¡ä»¥ä¸ã®ããã¤ã¹ããã¢ã¯ã»ã¹ = åããã¤ã¹ç¨ã«ã¨ã³ã³ã¼ãã£ã³ã°
- æé (2012/6æç¹) ç·è¦è´æé㯠10 åæéè¶ = ã¦ã¼ã¶ 1 人å½ãã、1 æ¥ç´ 1 æéè¦è´
- API ãªã¯ã¨ã¹ãæ° ã¯ 420 å RPM = ç´ 15,000 RPS
ä»ç¾å¨ãæ¥æé·ä¸ã¨ã®ãã¨ã§ã。æ¡éãã§ãã。ã¯ã。
>>> AWS 移è¡åã®èª²é¡
AWS ã«ç§»è¡ããåã® Netflix ã¯、
- åä¸ã® Web ã¢ããªã±ã¼ã·ã§ã³: Java/Tomcat = war ãã¡ã¤ã«
- åä¸ã®ãã¼ã¿ã¹ãã¢: Oracle rac
- åä¸ã®ãã¼ã¿ã»ã³ã¿ã¼
- ããã¯ã¢ãããªã (Wow
ã¨ããæ§æã ã£ãããã§ã。The ã¨ã³ã¿ã¼ãã©ã¤ãº!ã£ã¦æãã§ãã。2008 å¹´ã« DB ã®é害㧠DVD ã¬ã³ã¿ã«ãµã¼ãã¹ã 3 æ¥éåæ¢ãããªã©、ãã®éç¨ã¯ä»¥ä¸ã®ãããªåé¡ããã£ãããã§ã。
- ãã¼ã¿ã»ã³ã¿ã SPOF
- ãã¼ã¿ãã¼ã¹ã SPOF 。åä¸ãã¼ã¿ãã¼ã¹ã®éç。ã¹ãã¼ãå¤æ´çãµã¼ãã¹ã®ãªãã¬ã¤ã¹æã«ãµã¼ãã¹ãåæ¢ãã
- Web ã¢ããªã±ã¼ã·ã§ã³ã®ä¸é¨ã®ãã°ãå ¨ä½ã«å½±é¿ãã
ãµã¼ãã¹ã®æé·ã¯åã°ããã§ãã、ããã«ä¼´ãã¤ã³ãã©ã®æé·ã¯å¤§å¤ã§ã。æé·ãæ¥æ¿ãªå ´åã¯ç¹ã«。
>>> ã¤ã³ãã©ã®åæ¤è¨ / AWS ã¸ã®ç§»è¡
Netflix æ°ã "æã ã¯ãã¼ã¿ã»ã³ã¿ã®æ§ç¯ããã¸ãã¹ãªããã§ã¯ãªã"。ã¨ãããã¨ã§、ã¤ã³ãã©ã®åæ¤è¨ã§ã。What is cloud...
IaaS = Ops without Hardware; PaaS = Devs without Ops; SaaS = Business without Devs; by
- Fabian Lange (@CodingFabian) March 8, 2012@adrianco
Netflix ãå®ããã´ã¼ã«。
- Faster: ãã¼ã¿ã»ã³ã¿ãããä½ãã¬ã¤ãã³ã·ã¸
- Scalable: ãã¼ã¿ã»ã³ã¿ã®ãã£ãã·ãã£ã«ã¨ããããªã
- Available: å¯ç¨æ§ã®åä¸ (è¤æ°ã®ãã¼ã¿ã»ã³ã¿ã¼ã¸
- Productive: èªååããã¼ã«ã使ã£ãã¢ã¸ã£ã¤ã«éçºã¸
ãã®ã´ã¼ã«ãå®ç¾ããããã«è©¦è¡é¯èª¤ããçµæ、ãã¼ã¿ã»ã³ã¿ã AWS ã¸ä¸¸æã (abandon) ãããã¨ã«。ãã®çç±ãããã¯ã¢ããããã¨、
- æ©æ¥ã«ãã¼ã¿ã»ã³ã¿ã¼ãè¦ç´ãå¿ è¦ããã£ã (é害、ãµã¼ãã¹ã®æ¡å¤§、SPOF ããªãã、、、
- ä»ã«ã CDN ã¯ãããã©、AWS ã»ã©ã¹ã±ã¼ã«ãã¦æ©è½ãè±å¯ãªãµã¼ãã¹ããªã
- ã¦ã¼ã¶ãããã¤ã¹ã®æé·ã¯äºæ¸¬ã§ããªã
- ã¯ã©ã¦ãã³ã³ãã¥ã¼ãã£ã³ã°ã«ã¯æªæ¥ããã
çã 。AWS ãªã "å ç¢ãªã¤ã³ãã©ãçæéã§ä½ãã" ã£ã¦ãã¨ã§ãã。Netflix ã®ãã¼ã¿ã»ã³ã¿ã¨ã¯ã©ã¦ãä¸ã«æ§ç¯ããéã®ã¢ã¼ããã¯ãã£ã®æ¯è¼。ãããåèã«ãªãã¾ã。
éä¸ããåæ£ã¸。èçµåããç¥çµåã¸。SPOF ããªããã¦ãã。
>>> AWS ä¸ã«ãµã¼ãã¹ãæ§ç¯ãã¦ãã
AWS ã¸ã®ã·ã¹ãã ã®æ§ç¯ã移è¡ã«ããã、ã¢ã¼ããã¯ãã£ã®åèã«ãªããªãã¡ã¬ã³ã¹ãå ¬å¼ãµã¤ãã«å ¬éããã¦ãã¾ã。ãã®ãªãã¡ã¬ã³ã¹ãåèã«ãµã¼ãã¹ãããã¯ãã¦ããã®ãããã¨æãã¾ã。Netflix ã§ã¯æä¾ããã¦ãããµã¼ãã¹ (PaaS) ã§ã¯å®ç¾ã§ããªããã®ã«ã¤ãã¦ã¯、AWS ã® IaaS ä¸ã«ãã©ã¤ãã¼ã PaaS ã追å ãã¦ããã¨ããã¢ããã¼ã。Netflix service = AWS PaaS + Netflix PaaS (on AWS IaaS) ã§ãã。
ä¾ãã°、Oracle ãã SimpleDB (PaaS) ã¸ä¸åº¦ç§»è¡ãã¾ããã、ã¬ã¤ãã³ã·ãé«ã、èªåã·ã£ã¼ãã£ã³ã°ãå®ç¾ã§ããªã、ããã¯ã¢ããçã®åé¡ããã£ããã EC2, S3 (IaaS) ä¸ã« Cassandra ã§åæ£ KVS (ãã©ã¤ãã¼ã PaaS) ãæ§ç¯ããããã§ã。
Netflix ã®ã·ã¹ãã ã¢ã¼ããã¯ãã£ã®å³。
2009 年以é、å·¦å´ããé ã«ã·ã¹ãã ã AWS ã«ã¹ããããè¸ãã§ç§»è¡ããã¨ã®ãã¨。æ§ç¯åã³éç¨ã®ã¨ã³ã¸ãã¢ã¯ 50+α 人。ã©ããå°æ°å éã§ãã。æåã« AWS ã®ãµã¼ãã¹ã ãã§å®ç¾ã§ã、ãã¤åãé¢ãããã、ã³ã³ãã³ãã¨ãã°è§£æãã¯ã©ã¦ãã¸。次ã«、Cassandra çã®ãã©ã¤ãã¼ã PaaS ãæ§ç¯ã、ãã¬ã¤ã¤ã¼、web ãµã¤ã、巨大㪠API ãé ã«ç§»è¡。ã£ã¦æãã§ããã。
>>> Netflix ã®ãã¯ããã¸ã¼
Netflix ã AWS ä¸ã§å©ç¨ãã¦ãããã¯ããã¸ã¼ã®æç²。
- 主㪠OS: CentOS 5
- 主ãªè¨èª/WAF: Java 6 or 7/Tomcat
- RDB: MySQL
- åæ£ KVS: Cassandra (é«å¯ç¨æ§ã«ããã、ã¹ã±ã¼ã©ãã«ã ã£ããã
-
- Jenkins + Jmeter ã§ããã©ã¼ãã³ã¹ãã¹ã
- Cassandra ç¨ãã«ãã¼ Priam ã OSS ã¨ãã¦å
Ž
ããã¯ã¢ãã・ãªã«ããª、è¨å®、AWS ãµãã¼ã (è¤æ°ãªã¼ã¸ã§ã³, S3 ããã¯ã¢ãã, ...)、JVM ã®ç®¡ç, ç£è¦ãªã© (@github) - Cassandra ã¯ã©ã¤ã¢ã³ã Astyanax ã OSS ã¨ãã¦å ¬é (@github)
- Why Cassandra
- ãã°è§£æ: Hadoop with Hive (Amazon EMR
-
- 50 ãã¼ã㧠0.6T bytes / day ã®ãã°ã解æ
- ã³ã¼ãã£ãã¼ã·ã§ã³: Zookeeper
- ãããã¤/ãã¹ãç: Jenkins (1600 jobs, 2000 builds / day, 2TBytes build datas
-
- Jenkins ã®å©ç¨ç¨é
-
- ãã«ããã¤ãã©ã¤ã³ã®æ§ç¯
- Cassandra ã®ã¡ã³ããã³ã¹
- èªååããããã¹ã、ãããã¤
- ã¤ã³ãã© ã®ãã¦ã¹ãã¼ãã³ã°
- Job ã Grooby ãã¼ã¹ ã® DSL ã§æ¸ãããã©ã°ã¤ã³ã OSS ã¨ãã¦å ¬é (@github)
>>> AWS ã«ãããã¹ã±ã¼ã«ã¢ã¦ã / ã¤ã³ã®ãªã¼ãã¡ã¼ã·ã§ã³å
AWS auto scaling (@github) TODO: å¾ã§ :)
- æ©ãã¹ã±ã¼ã«ã¢ãã、é ãã¹ã±ã¼ã«ãã¦ã³
- AWS ã®ãªã¼ãã¹ã±ã¼ã«ã¯å¼·åã ãã©、ããåã®å£
- æ£ããè¨å®ã¨ãã¹ããå¿ è¦
>>> ç£è¦
AWS ã«ãããã¤ãããµã¼ãã¹ã®ç£è¦æ¹æ³。ã¬ã¤ã¤ã¼æ¯ã«ç£è¦。
- å¤é¨ããã® URL ç£è¦: Keynote
- ELB ãã¤ã³ã¹ã¿ã³ã¹ã®ç£è¦: Amazon CloudWatch
- ãªã½ã¼ã¹ç£è¦: AppDynamics (Java, .Net ã¨ã
- ãªã½ã¼ã¹ç£è¦: Epic (RRD ãã¼ã¹ã®å 製ãã¼ã«
- ãã°: Hadoop
>>> AWSãå©ç¨ãã¦å¾ã5ã¤ã®æè¨
ãã®ããã°è¨äºãã。å®éã«ç§»è¡、éç¨ãã¦ã¿ã¦ããã£ããã¨。
- èªç¤¾ãã¼ã¿ã»ã³ã¿ã¨ã¯ã©ã¦ãã¯å ¨ãéã (Dorothy, you're not in Kansas anymore)
-
- ãã¼ã¿ã»ã³ã¿ã«ãããè¨è¨ãããããã¤ã¾ã§ã®ããã»ã¹ã¯å ¨ãéã
- ä»ã¾ã§ã®ç¥èãæ¨ã¦、ã¯ã©ã¦ãç°å¢ã§ã®ãªãã¬ã¼ã·ã§ã³ã«åãæ¿ããå¿ è¦ããã
- ä¾ãã°、ãã¼ã¿ã»ã³ã¿ã§ã¯ãã¼ãã¦ã§ã¢é害ãã»ã¨ãã©ãªãã£ãã®ã§、ã»ãã·ã§ã³ãã¨ã®ã¡ã¢ãªç®¡çããã¹ãã¢ããã¼ãã ã£ã。ããã AWS ã§ã¯åä¸ã¤ã³ã¹ã¿ã³ã¹ (ä»®æ³ãã¼ãã¦ã§ã¢) ã®é害çºççãé«ã
- ä¾ãã°、ãã¼ã¿ã»ã³ã¿ã§ã¯å¯è±ªã¤ã³ãã© (大容é、è¶ é«é、é«ä¿¡é ¼æ§ãªãããã¯ã¼ã¯ã¨ã) ãå½ããåã ã£ããã©、AWS ã®ãããã¯ã¼ã¯ã¯ã¬ã¤ãã³ã·ãä½ã
- å ±ç¨ã¯é£ãã
-
- ã¯ã©ã¦ãä¸ã«é¡§å®¢ã«å©ç¨ãã¦ãããã·ã¹ãã ãè¨è¨ããé、ã¬ã¹ãã³ã¹ã®ã¬ã¤ãã³ã·ãèæ ®ããã
- ããã AWS ã®ã¢ãã«ã¯ãã¼ãã¦ã§ã¢、ãããã¯ã¼ã¯、ã¹ãã¬ã¼ã¸çãªã½ã¼ã¹ã®å ±æã§ãããã、å ±ç¨ã«å·¦å³ããã
- ãããããã、ä¾ç¨ããªããã AWS ãªã½ã¼ã¹ã管çãã (ãããã、ããé«éãªãã©ã³ã¯、ãããªã½ã¼ã¹é åã大ãããã、ä½ã¬ã¤ãã³ã·ãæ±ãããªã、ããç¨åº¦é«ããã©ã³ã«ããã£ã¦ãã¨?
- é害ãåé¿ããæåçã¯、常ã«é害ãçºçããã (Dropbox ã«å¼ãç¶ã。。
-
- ãã¹ã¦ã®ã·ã¹ãã ã¯ççµåã§ããå¿ è¦ããã
- é害ãçºçãã¦ãããããã«åæ£ããã¦ãã
- ä¾ãã°æ¤ç´¢æ©è½ãé害ã§è½ã¡ã¦ã、ã¹ããªã¼ãã³ã°ã¯è½ã¨ããªã
- é害æã®åãããã£ãã¨ãã¦ã、ããã常æãã¹ããã¦ããªãã¨、ããã¨ããæã«åä½ããªããããããªã
- å®éã®ã¹ã±ã¼ã«ããå¦ã¶
-
- AWS ã«ç§»è¡ããå、ãã®ãã©ãããã©ã¼ã ãç 究ã、ãã¹ãã·ã¹ãã ãæ§ç¯。ç¾å®çãªãã©ãã£ãã¯ãã¿ã¼ã³ã®ã·ãã¥ã¬ã¼ã·ã§ã³ã試ã¿ã
- AWS ãé¸æããã«ã¯å½¹ã«ç«ã£ããã©、ã¢ã¼ããã¯ãã£ã®é¸æã«ã¯å½¹ã«ç«ããªãã£ã
- æ§ç¯ã®åæ段éã§、ã¦ã¼ã¶ã®å ¨ã¦ã®ãªã¯ã¨ã¹ããã©ãã£ãã¯ãè¤è£½ã、åç´ã«ç¹°ãè¿ãã。ããã«ããããã«ããã¯ãè¨è¨ãã¹ãç¹å®ã§ãã
- ããç¶ãã
-
- è¨å¤§ãªã¿ã¹ã¯ã¨、ãã¼ã¿ã»ã³ã¿ã¨ AWS ã¨ãªãã¬ã¼ã·ã§ã³ãã¾ã£ããéããã¨ã§è·¯é ã«è¿·ã£ãæããã£ã
- ãã¼ãã«ã«ã¶ã¤ãã£ãã¨ãã«、ããã¨æ¦ã ããã®æ ¹æ§ã¨ä¿¡å¿µã大äº
Netflix ã¯ãããã®æè¨ãã、 2011/4 æã® AWS 大è¦æ¨¡é害ã®éã«ããµã¼ãã¹ãç¶ç¶ãããã¨ãã§ããããã§ã。WIRED ã¯、ãã®è¨äºãå¼ç¨ã、ãµã¼ãã¹åæ¢ã¯ Amazon ã®ããã§ã¯ãªã、å©ç¨è ã®ããã¨è¿°ã¹ã¦ãã¾ã。ã§ãã©ãã ãåé·åãã¦、é害対çããã£ã¦ããã¨ãã¦ãæ³å®å¤ã®ãã¨ã¯çºçãã¾ã。å¦ç¿ãã¦、å®è¡ãã¦、ãã¹ããã¦、ããç¶ããã®ãéè¦ã ãªã¼ã¨。
>>> OSS
Netflix 㯠AWS ã® Know-How çã OSS ã¨ãã¦å ¬éãã¦ãã£ãããã¾ã。
- Chaos Monkey: ç¡ä½çºã«ã¤ã³ã¹ã¿ã³ã¹ãè½ã¨ãã¦、ã¯ã©ã¦ãç°å¢ã®èé害æ§ããã¹ããããã¼ã«
- Asgard: AWS Management Console +α ã¯ã©ã¹ã¿ãªã³ã° (ãªã¼ãã¹ã±ã¼ã« 㪠Web ã³ã³ã½ã¼ã«
>>> TIPS (ã£ã¦ãããæ°ã«ãªã£ããã®
- AWS ã¢ã«ã¦ã³ãã¯ç®çæ¯ã« 4 種é¡ä½¿ãåãã¦ãã
-
- paastest: éçº・ãã¹ãç¨ (ãããã¤
- paasprod: ãããã¯ã·ã§ã³ç¨ (èªåã¹ã±ã¼ã«
- paasaudit: ã»ã³ã·ãã£ããµã¼ãã¹ç¨ (SOX, PCI ç
- paasarchive: ãã£ã¶ã¹ã¿ãªã«ããªç¨ (ããã¯ã¢ãã ç
- AWS with SSD ã§ã®ãã³ããã¼ã¯
- SSD hi1.4xlarge × 15 ã¤ã³ã¹ã¿ã³ã¹ ã§
Disk m2.4xlarge × 48 ã¤ã³ã¹ã¿ã³ã¹ + Memcached m2.xlarge × 38 ã¤ã³ã¹ã¿ã³ã¹ ã¨åæ§ã®ã¹ã«ã¼ããããåºãã - ããã«ã¬ã¤ãã³ã·ã 1/5 ç¨åº¦ç縮ãã、ã³ã¹ããååã«æãããã¨ãåºæ¥ã
ãã©ã³ CPU ã¡ã¢ãª ã¹ãã¬ã¼ã¸ ãããã¯ã¼ã¯ IOPS ã¹ã«ã¼ããã ã³ã¹ã m2.4xlarge
26 ECU
68GB RAM
2 × 840GB / Disk
1 Gbit
500
100M bps
$1.8/h
hi1.4xlarge
35 ECU
60.5GB RAM
2 × 1,000GB / SSD
10 Gbit
100,000
1G bps
$3.1/h
ã¹ã±ã¼ã«ã¢ããã«ããåé¡è§£æ±ºã¨ã¹ã±ã¼ã«ã¢ã¦ãã«ããåé¡è§£æ±ºãæè»ã«ã§ããã®ã AWS ã®é åã§ãã。
話ã¯å¤ããã¾ãã、以å DeNA ããã®ã¤ã³ãã©åå¼·ä¼ã«ãæå¾ é ããæã«、"ã¹ã¬ã¼ã㯠RAID 0 ã§ã¹ã«ã¼ããããåä¸ããã¦ãã" ã¨æãã¦ããã ãã¾ãã。High I/O ã¤ã³ã¹ã¿ã³ã¹ã®ç»å ´ã§å¹¸ãã«ãªãããµã¼ãã¹ãå¤ãã®ã§ã¯ãªããã¨æãã¾ã。 - SSD hi1.4xlarge × 15 ã¤ã³ã¹ã¿ã³ã¹ ã§
- IT ãªãã¬ã¼ã·ã§ã³é¨éããªããªã
-
- ãªãã¬ã¼ã·ã§ã³ã¯ AWS API ãæ å½。é²ã®åããå´ã§ãä»äº
- ãã¼ã¿ã»ã³ã¿ã®éç¨ã«å¿ è¦ãªã¹ã¿ããããã©ãã。æµ·å¤ã«ãã¼ã¿ã»ã³ã¿ãæ§ç¯ããã®ã
- éçºè ããããã¯ã·ã§ã³ã«ç´æ¥ãããã¤、å®è¡ã§ããããã«ãªã
è¦æ¨¡ã§ããã®ã¨、ç解ä¸è¶³ãªã®ã¨、è³æããã£ã±ããã®ã¨ã§ã¾ã¨ããã®é£ããã£ãã§ã。。。ç®ã«çã¾ã£ããã®ãé§ã æ¸ãããæã。Netflix æ¥æ¬ã«æ¥ãªãããªã¼。é±æ«ã¯æ§ã¶å²³ :)
ã³ã¡ã³ã
ã³ã¡ã³ããæ稿