å€§èŠæš¡ãã©ãã£ãã¯ãæãããã® CloudFront 以å€ã®éžæè¢
ã å€§æŠæ¥ã«ç§é 1 äžãŠãŒã¶ãæãããã«ãã£ãããš (ããŒããã©ã³ãµãŒç·š) ã
ä»åãããŒããã©ã³ãµãŒã¯å
šé¢çã« AWS ã® Elastic Load Balancing (ELB) ã䜿çšããŸããã
Web API ãæäŸããã·ã¹ãã ã«ã¯ããšããš ELB ã䜿ãäºå®ã ã£ãã®ã§ãããéçãã¡ã€ã«ã®é
ä¿¡ãªã©ã¯ ClouldFront + S3 ãšããæ§æã§ããããšæã£ãŠããŸããã
ããæçµçã«ã¯éçãã¡ã€ã«ãé
ä¿¡ããã·ã¹ãã ã ELB + EC2 ãšããæ§æã«ãªããŸããã
ãã®ãžãã®çµç·¯ãšããAWS ã䜿ããšãã®ã·ã¹ãã ã®ããã³ãåšãã®è² è·åæ£ã«ã¯ã©ãããéžæè¢ãããã®ããšãã軜ããŸãšããŠã¿ãããšæããŸãã
éçãã¡ã€ã«ã®é
ä¿¡ã«ã¯ CloudFront ã䜿ã£ãã»ããããã®ã
CloudFront 㯠S3 ãšäœµçšããããšã§ãéçãªãã¡ã€ã«ã®é
ä¿¡ã®ããšã¯ã»ãšãã©èããªããŠããããšãããããç°¡åã«ãã¡ã€ã«é
ä¿¡ã®ä»çµã¿ãæ§ç¯ã§ããŸãã
ããããæ³å®ãããªã¯ãšã¹ãæ°ã転ééã«ãã£ãŠã¯ãä»ã®æ¹æ³ã§ãã¡ã€ã«é
ä¿¡ã·ã¹ãã ãæ§ç¯ããã»ããããããšããããŸãã
ãšãã«å€§èŠæš¡ãªãã©ãã£ãã¯ãæ³å®ãããå Žåã«ã¯ãäžåºŠ AWS ã®ãµããŒãã»ã³ã¿ãŒã«çžè«ããŠã¿ãããšãããããããŸãã
ä»åã¯ã1.3 MB ã»ã©ã®ããã倧ããã®åäžã®ãã¡ã€ã«ã«ãç§é 10,000 ãªã¯ãšã¹ããæŒãå¯ããŠããŠãèããããã·ã¹ãã ãæ§ç¯ããå¿
èŠããããŸããã
転ééã«ã㊠104 Gbps ã§ãã
ããã§ããµããŒãã»ã³ã¿ãŒã«çžè«ãããšãããCloudFront ã䜿ãã®ã§ã¯ãªã以äžã® 2 ã€ã®ããããã®æ¹æ³ããšãããšãå§ããããŸããã
S3 ã«ç°ãªãååã®åäžã®ãã¡ã€ã«ãè€æ°çœ®ããŠã©ã³ãã ã¢ã¯ã»ã¹ããã
EC2 ã€ã³ã¹ã¿ã³ã¹ãè€æ°å°ç«ã¡äžããŠãã㊠ELB ã§ã¢ã¯ã»ã¹ã忣ããã
S3 ã«ç°ãªãååã®åäžã®ãã¡ã€ã«ãè€æ°çœ®ããŠã©ã³ãã ã¢ã¯ã»ã¹ããã
ããã¯ãS3 ã«åããã¡ã€ã«ã倿°çœ®ããŠãããã¯ã©ã€ã¢ã³ãåŽããã¢ã¯ã»ã¹ãåãã¡ã€ã«ã«åæ£ããããã«ããŠããããšããæ¹æ³ã§ãã
ããããããšã§ãã¡ã€ã« 1 ã€ã ãã®å Žåããã S3 ã®ããã©ãŒãã³ã¹ããããããšãã§ããŸãã
ããŒãã£ã·ã§ãã³ã°ãããŸã䜿ã
S3 ãã±ããå
ã®ãªããžã§ã¯ãéã¯ãè² è·åæ£ã®ããããªããžã§ã¯ãåãããšã«ç©ççã«é¢ãããµãŒãã«ããŒãã£ã·ã§ãã³ã°ãããŠé
眮ãããããã«ãªã£ãŠããŸãã
ãã®ãããªä»çµã¿ã®äžã§ã¯ãããšãã° 1 ã€ã®ãªããžã§ã¯ããžã®ã¢ã¯ã»ã¹ãæ¥æ¿ã«äžæããå Žåããã®ãªããžã§ã¯ããé
眮ãããŠããåäžã®ããŒãã£ã·ã§ã³ã®ã¿ãã¢ã¯ã»ã¹ããããããšã«ãªããŸãã
ãªã®ã§ãç°ãªãååã®åäžã®ãã¡ã€ã«ã倿°çšæã㊠S3 ã«çœ®ããŠãããã¯ã©ã€ã¢ã³ãããã©ã³ãã ã¢ã¯ã»ã¹ããŠãããããã«ããããšã§ãåããŒãã£ã·ã§ã³ã«ã¢ã¯ã»ã¹ã忣ãããããšãã§ããããã©ãŒãã³ã¹ãäžããããšãã§ããŸãã
(ãã广çãªãªããžã§ã¯ãåã®ã€ãæ¹ã«ã€ããŠã¯ãAmazon S3ã®ããã©ãŒãã³ã¹ããããã³ã ãåèã«ãªããŸãã)
ã©ã®ãããã®æ°ã®ãã¡ã€ã«ãçšæããã°ããã®ã
ã§ãå®éã«ã©ã®ãããã®ãã¡ã€ã«æ°ãçšæããã°ããã®ããšããããšã«ã€ããŠã§ãããAmazon S3ã®ããã©ãŒãã³ã¹ããããã³ã ãèŠããããã«ãåãã¡ã€ã«ãžã®ãªã¯ãšã¹ãã 50 ~ 100 req/s ãããã«åãŸããããã®æ°ãçšæããã®ãããã®ããªãšæããŸãã
ä»åã¯ãå
ã»ã©ãè§Šãã 1.3 MB ã®åäžã®ãã¡ã€ã«ãé
ä¿¡ããã·ã¹ãã ã§ã10,000 req/s ãæãå¿
èŠããããŸããã
ãšããããã§ããµããŒãã»ã³ã¿ãŒãããåãã¡ã€ã« 50 req/s ãããã«ãªãããã« 200 ãã¡ã€ã«çšçœ®ããããããããšããã¢ããã€ã¹ãããããããŸããã
ä»åã¯ã¯ã©ã€ã¢ã³ããµã€ãã®éœåã§ã©ã³ãã ã¢ã¯ã»ã¹ãé£ããã£ãã®ã§ãã®æ¹æ³ããšããŸããã§ããããç¹å®ã®ãã¡ã€ã«ã«ã¢ã¯ã»ã¹ãéäžãããããªå Žåã«ã¯æå¹ãªæ¹æ³ã ãšæããŸãã
EC2 ã€ã³ã¹ã¿ã³ã¹ãè€æ°å°ç«ã¡äžããŠãã㊠ELB ã§ã¢ã¯ã»ã¹ã忣ããã
ãã¡ãã¯éçãã¡ã€ã«é
ä¿¡çšã® EC2 ã€ã³ã¹ã¿ã³ã¹ã倿°ç«ã¡äžããŠãããŠãELB ã§ãã©ã³ã·ã³ã°ãããæ¹æ³ã§ãä»åã¯ãã£ã¡ã§ãããŸããã
Auto Scaling Group ãªã©ã䜿ãããšã§ã€ã³ã¹ã¿ã³ã¹ã®ç®¡çãæ¯èŒçç°¡åã§ãã
ELB ã® Pre-warming ç³è«
ãã ããæ¥æ¿ãªãã©ãã£ãã¯å¢å ãæ³å®ãããå Žåã«ã¯ãäºåã« ELB ã® Pre-warming ç³è«ãããŠããå¿
èŠããããŸãã
ãæ¥æ¿ãªãã©ãã£ãã¯å¢å ããšã¯ã©ã®ãããã®å¢å ãªã®ãããšããããšã§ãããã5 ~ 10 åã§ 20% 以äžã®ãã©ãã£ãã¯å¢å ããšããã®ãç®å®ãããã§ãã
(Pre-warming ç³è«ãšã¯äœããïŒãšãã人ã¯ãåæå€§éã¢ã¯ã»ã¹ã«åã㊠ELB ã Pre-wariming ç¶æ
ã«ããŠãã ãåç
§)
ãªã®ã§ããããšåçšåºŠããã以äžã®å¢å çãæ³å®ãããå Žåã«ã¯ãPre-warming ç³è«ãããŠãããšå®å¿ã§ããŸãã
Pre-warming ç¶æ
ã® ELB ã§ã察å¿ã§ããªãå Žå
ãã ããæ³å®ãããªã¯ãšã¹ãæ°ã転ééã«ãã£ãŠã¯ãPre-warming ç¶æ
ã§ã 1 ã€ã® ELB ã§å¯Ÿå¿ã§ãããã©ãã£ãã¯ãè¶
ããŠããå ŽåããããŸãã
ãã®å Žåã¯ãPre-warming ç¶æ
ã® ELB ãè€æ°çšæããDNS ã©ãŠã³ãããã³ãèšå®ããŠãããšããæ¹æ³ããããŸãã ããã Route 53 ã䜿ãããšã§ç°¡åã«èšå®ã§ããŸãã
(èšå®æé ã¯ãPre-warming ããè€æ°ã® ELB ã Route 53 ã§ DNS ã©ãŠã³ãããã³ãã ã«ãŸãšããŸããã)
ä»åã¯ã1.3 MB çšåºŠã®åäžã®ãã¡ã€ã«ãé
ä¿¡ããããã®ã·ã¹ãã ã ELB 1 ã€ã§å¯Ÿå¿ã§ãã転ééãè¶
ããŠãããšããããšã§ããã®æ¹æ³ããšããŸããã
Pre-warming ç¶æ
ã® 1 ã€ã® ELB ã«å¯Ÿãããã©ãã£ãã¯ããHTTP ãªã¯ãšã¹ãæ°ã«ã㊠200,000 req/sã転ééã«ã㊠40 Gbps çšåºŠã«åãŸãããã«ãšããããšã§ããŽã¡ãŒãžãã¢ããªã¬ãŽã³ãã¢ã€ã«ã©ã³ãã®åãªãŒãžã§ã³ã«åæ£ãããŠé
眮ããŸããã
ã¡ãªã¿ã«ãWeb API ãæäŸããã·ã¹ãã ã¯ãHTTP ãªã¯ãšã¹ã 30,000 req/sã転éé 120 Mbps ã®æ³å®ã ã£ãã®ã§ãPre-warming ç¶æ
ã® ELB 1 ã€ã§åé¡ãããŸããã§ããã
ãšãããŸã§æžããšããŠãªãã§ãããå®éã«ã©ã®æ¹æ³ããšãããæ±ºããéã«ã¯ãAWS ã®ãµããŒãã»ã³ã¿ãŒã«çžè«ããŠã¿ãã®ãããããšæããŸãã
èªåã AWS ã®ãµããŒãã»ã³ã¿ãŒã«ããããå©ããŠããã£ããããã§ããæ£æã¯ç¬ã£ãŠéããããšãã§ããŸããã