
- TOP
- ã¿ã°äžèЧ
- ãããã¯ãŒã¯
ãããã¯ãŒã¯
ã€ãã³ã
ãã¬ãžã³
æè¡ããã°
ã³ãŒãã§äœãAIãšãŒãžã§ã³ããæ¬çªéçšãŸã§ ~Microsoft Foundry Hosted Agents å
¥é~
ã¯ããã« AI ãšãŒãžã§ã³ãããªãŒãã³ãœãŒã¹ã®ãã¬ãŒã ã¯ãŒã¯ã§äœãããšãããšãå®è£
ã¯ãã¡ããã§ãããã³ã³ããåããWebãµãŒããŒæ§ç¯ããèªèšŒã»ã»ãã¥ãªãã£çµ±åããã¹ã±ãŒãªã³ã°ããç£èŠããããŒã«ããã¯ããšãã£ãéçšãŸããã®èª²é¡ã«çŽé¢ããããšãå€ãã®ã§ã¯ãªãã§ããããã Microsoft Foundry ã® Hosted Agents ã¯ããããã "ãšãŒãžã§ã³ããåããç¶ããããã®é¢åããš" ããã©ãããã©ãŒã åŽã«ä»»ããéçºè
ã ãšãŒãžã§ã³ãã®æ¯ãèããã®ãã®ã«éäžã§ãã ããã«ããããã®ãã«ãããŒãžã㪠AI ãšãŒãžã§ã³ãå®è¡åºç€ã§ãã Microsoft Foundry äžã§å®è¡
LifeKeeperã®ãå°ã£ããããã§ããïŒãã«å€ããïŒãµããŒãäºäŸããåŠã¶ãã©ãã«ã·ã¥ãŒãã£ã³ã°ïŒåçºé²æ¢ç ããã«ã¡ã¯ãSCSKã®åç°ã§ãã ãã€ã TechHarmony ãã芧ããã ãããããšãããããŸãã ã·ã¹ãã åºç€ã®äž»æŠå Žããªã³ãã¬ãã¹ãããããªãã¯ã¯ã©ãŠããžãšç§»ãå€ãããAWSãAzureäžã§HAã¯ã©ã¹ã¿ãæ§ç¯ããæ©äŒããã£ãšå¢ããŸãããã¯ã©ãŠãã§ã®ã€ã³ãã©èšèšã«ãããŠããããã«ã¯ã©ãŠããªãœãŒã¹ãæé©åããã³ã¹ããæ§ç¯ã®æéãæããããã¯åžžã«éèŠãªããŒãã§ãã ãã®ããããµãŒããŒã®NICãæå°éã«æãããããªã³ãã¬ãã¹ãšåãæèŠã§åäžãµããããå
ã«ãããã¯ãŒã¯ããŸãšããããšããããç£èŠçšã®ãµãŒããŒïŒWitnessïŒã®å°æ°ãç¯çŽããããšèããã±ãŒã¹ãããèŠãããŸãã ããããHAã¯ã©ã¹ã¿ãŒãœãããŠã§ã¢ã§ããLifeKeeperãã¯ã©ãŠãïŒç¹ã«Azureç°å¢ïŒã§æ§ç¯ããå Žåããã®ããªã³ãã¬ãã¹æèŠã®ãããã¯ãŒã¯èšèšãããã³ã¹ããæèããæ§æãããæãã¬æ§ç¯ã®å£ãšãªã£ãŠç«ã¡ã¯ã ããããšããããŸããä»®æ³IPïŒVIPïŒãæ£åžžã«æ©èœããªãã£ãããã¹ããªãããã¬ã€ã³å¯Ÿçã®æ§æèŠä»¶ãæºããããèšèšã®ææ»ããçºçããŠããŸãã®ã§ãã æ¬é£èŒäŒç»ãLifeKeeper ã®ãå°ã£ããããã§ããïŒãã«å€ããïŒãµããŒãäºäŸããåŠã¶ãã©ãã«ã·ã¥ãŒãã£ã³ã°ïŒåçºé²æ¢çãã§ã¯ããµããŒãã»ã³ã¿ãŒã«èç©ããããçã®ãã©ãã«äºäŸããå
ã«ãå®å®éçšã®ããã®å®è·µçãªç¥æµãå
±æããŠãããŸãã 1. ã¯ããã« ååã®ãã«ããŽãª3 第1匟ãã§ã¯ãAWSç°å¢ã«ãããèªååŸ©æ§æ©èœãšã®ç«¶åãåé¿çã«ã€ããŠè§£èª¬ããŸããã 第2匟ãšãªãä»åã¯ã Microsoft AzureïŒä»¥äžãAzureïŒç°å¢ ã«ãã©ãŒã«ã¹ããŸãã Azureç°å¢ã§ã®æ§ç¯ã»éçšã«ãããŠããµããŒãçªå£ã«ã¯ããªã³ãã¬ãã¹ã®æèŠã§IPã¢ãã¬ã¹ããµãããããèšå®ãããéä¿¡ãã§ããªãïŒããšãã£ããããã¯ãŒã¯åšãã®ãçžè«ãããã¹ããªãããã¬ã€ã³å¯ŸçïŒQuorumïŒã®æé©ãªæ§æã»ãã£ã¹ã¯ã®éžã³æ¹ãåãããªãããšãããåãåãããæ°å€ãããã ããŸãã ä»åã¯ãAzureç°å¢ã«ãããŠããããããããããã¯ãŒã¯èšèšïŒIPå²ãåœãŠã»å
éšããŒããã©ã³ãµãŒé£æºïŒã ã®çœ ãšãã¹ããªãããã¬ã€ã³ãé²ãã€ã€ãªãœãŒã¹ãæé©åããããã® ãQuorum/Witnessèšèšãã®æ£è§£ã«ã€ããŠãå®éã®ãµããŒãäºäŸã亀ããŠçŽè§£ããŠãããŸãããïŒ ð¡ ååã®èšäºïŒã«ããŽãª3 第1匟ïŒã¯ãã¡ãïŒ â¶ ãã¯ã©ãŠãç°å¢ç¹æã®èœãšã穎 #1ãè¯ãããšæã£ãèªå埩æ§ãä»ã«ïŒïŒAWSç°å¢ïŒEC2/Route53/S3ïŒã§ãããæ§æãšåé¿ç â TechHarmony 2. ä»åã®ãå°ã£ãïŒãäºäŸâ ïŒIPã»ãããã¯ãŒã¯èšèšã®èœãšã穎 â äºè±¡ã®æŠèŠïŒå°ã£ãïŒïŒ ãAzureäžã®WindowsãµãŒããŒ2å°ã§LifeKeeperãæ§ç¯äºå®ã§ããã³ã¹ããæ§ç¯ã®æéãçããããä»®æ³IPãªãœãŒã¹ãšDataKeeperã®ãã©ãŒãªã³ã°ã§å©çšããNICããåäžãµãããããã«é
眮ããããšèããŠããŸãããã ãä»®æ³IPèªäœã¯å¥ã»ã°ã¡ã³ãã«ããäºå®ã§ãããåäœããµããŒãèŠä»¶ã«åœ±é¿ã¯ãããŸããïŒã ð åå ç©¶æã®ããã»ã¹ãšå€æããæ ¹æ¬åå ãªã³ãã¬ãã¹ã§ããã°ãæè»ã«ã«ãŒãã£ã³ã°ãVLANãèšå®ããŠå¯Ÿå¿ã§ããã±ãŒã¹ããããŸãããAzureç°å¢ã§ã¯ãããã¯ãŒã¯ã®ä»çµã¿ãç°ãªããŸãããµããŒãã§ä»æ§ãšèŠä»¶ã確èªãããšãããAzureç°å¢ç¹æã®å³ããã«ãŒã«ã倿ããŸããã Azureäžã§ä»®æ³IPïŒVIPïŒãæ©èœãããããã«ã¯ãããŒããã©ã³ãµãŒïŒILBïŒå
éšããŒããã©ã³ãµãŒçïŒãçšãããããã¯ãŒã¯åãæ¿ããåæãšãªããŸãããã®ä»çµã¿ãæ£åžžã«åäœããããããLifeKeeperã®èŠä»¶ãšããŠãä¿è·ããNICããšã«ç°ãªããµãããããå²ãåœãŠãããšããå¿
é ïŒåäžãµããããã§ã®æ§æã¯æªãµããŒãïŒãšãªã£ãŠããã®ã§ãã ð¡ å
·äœçãªè§£æ±ºçïŒã§ããïŒïŒ Azureç°å¢ã§ãããã¯ãŒã¯ãæ§æããéã¯ã以äžã®å¯Ÿå¿ãè¡ãããšã§æ£åžžã«æ§ç¯ã»éçšãå¯èœã§ãã ç°ãªããµããããã®å²ãåœãŠ ä»®æ³IPãªãœãŒã¹ã§äœ¿çšããNICãšãDataKeeperã®ãã©ãŒãªã³ã°çã§äœ¿çšããNICã«ã¯ãå¿
ã å¥ã
ã®ãµãããã ãçšæããŠå²ãåœãŠãŸãã ãµãããããã¹ã¯ã¯ã/32ãã«èšå® IPãªãœãŒã¹ãäœæããéãã¯ã©ãŠãç¹æã®ã«ãŒãã£ã³ã°ç«¶åãé¿ããããããµãããããã¹ã¯ã¯å¿
ã 255.255.255.255 (/32) ã«èšå®ããŸãïŒããã¯ã¯ã©ãŠãç°å¢å
±éã®å¿
é èšå®ã§ãïŒã ããŒããã©ã³ãµãŒã®æŽ»çš VIPãæ©èœãããããã®ILBãé©åã«æ§æããLifeKeeperã®å¯çšæ§ãããã«é«ããããã«ãLB Health Check ãªãœãŒã¹ãã®å°å
¥ãæ€èšããŸãããã âŒãå³è§£ãAzureç°å¢ã«ããããããã¯ãŒã¯æ§æã®NG/OKäŸ 3. ä»åã®ãå°ã£ãïŒãäºäŸâ¡ïŒã¹ããªãããã¬ã€ã³å¯ŸçãšQuorumã®è¿·ã â äºè±¡ã®æŠèŠïŒå°ã£ãïŒïŒ ãAzureç°å¢ã§ã¹ããªãããã¬ã€ã³å¯Ÿçãè¡ãããã®ã§ãããStorageã¢ãŒããMajorityã¢ãŒããªã©éžæè¢ãå€ããã©ããéžã¹ã°ãããè¿·ã£ãŠããŸããAzureã®å
±æãã£ã¹ã¯ã¯äœ¿ããã®ã§ããããïŒ ãŸããè€æ°ã¯ã©ã¹ã¿ãããå ŽåãWitnessãµãŒããŒã¯ã¯ã©ã¹ã¿ããšã«å¿
èŠã§ããïŒã ð åå ç©¶æã®ããã»ã¹ãšå€æããæ ¹æ¬åå ã¹ããªãããã¬ã€ã³ïŒãããã¯ãŒã¯åæã«ããäž¡ããŒããã¢ã¯ãã£ãã«ãªã£ãŠããŸãçŸè±¡ïŒã®å¯Ÿçã¯ã¯ã©ã¹ã¿ãŒéçšã®èŠã§ãããã¯ã©ãŠãã§ã¯å
±æã¹ãã¬ãŒãžã®æ±ãããããã¯ãŒã¯æ§æããªã³ãã¬ãã¹ãšç°ãªããããæ§æã®éžæã«è¿·ãã客æ§ã倿°ããã£ããããŸãã ãµããŒãããã®åçã«ãããAzureç°å¢ã«ãããæé©ãªã¢ãããŒããæŽçãããŸããã ð¡ å
·äœçãªè§£æ±ºçïŒã§ããïŒïŒ ã客æ§ã®èŠä»¶ãç°å¢ã«åãããŠã以äžã®ããããã®ææ³ãéžæããã®ããã¹ããã©ã¯ãã£ã¹ã§ãã ãã¿ãŒã³AïŒå
±æãã£ã¹ã¯ãå©çšããå Žå v9.6.2以éïŒLinuxçã®å ŽåïŒãAzureå
±æãã£ã¹ã¯ãçšãããSCSI-3 Persistent Reservationsãã«ããI/Oãã§ã³ã·ã³ã°ããµããŒããããŠããŸããå
±æã¹ãã¬ãŒãžãå©çšã§ããæ§æã§ããã°ããããæšå¥šã®å¯Ÿçã®1ã€ãšãªããŸãã ãã¿ãŒã³BïŒãµãŒããŒæ§æïŒMajorityã¢ãŒãïŒãæ¡çšããå Žå ã¯ã©ã¹ã¿ãŒããŒããšã¯å¥ã®ãµãŒããŒããWitnessïŒç£èŠïŒãµãŒããŒããšããŠç«ãŠãŠå€æ°æ±ºããšãææ³ã§ããWitnessãµãŒããŒã¯ãã¯ã©ã¹ã¿ãŒããŒããšç°ãªãå¯çšæ§ãŸãŒã³ïŒAZïŒã«é
眮ããããšãæšå¥šãããŸãã â
å¬ãããã€ã³ãïŒè€æ°ã®LifeKeeperã¯ã©ã¹ã¿ãŒãååšããå Žåã 1å°ã®WitnessãµãŒããŒãè€æ°ã¯ã©ã¹ã¿ã§ãå
±çšïŒçžä¹ãïŒãããããšãå¯èœ ã§ããããã«ãããæ§ç¯ã³ã¹ããšéçšè² è·ã倧å¹
ã«åæžã§ããŸãïŒ âŒãå³è§£ãè€æ°ã¯ã©ã¹ã¿ã§ã®WitnessãµãŒããŒå
±çšïŒçžä¹ãïŒã€ã¡ãŒãž ã¯ã©ã¹ã¿ããšã« Witness ãµãŒããŒãç«ãŠãå¿
èŠãªãã 1 å°ã®WitnessãµãŒããŒã§è€æ°ã®ã·ã¹ãã ãç£èŠããŠã³ã¹ããåæžåºæ¥ãããïŒ 4. è£è¶³äºäŸïŒDataKeeperã®ããã©ãŒãã³ã¹èšèšïŒåæ vs éåæïŒãšæœããªã¹ã¯ Azureã®ãããªã¯ã©ãŠãç°å¢ïŒãããã¯é éå°ãžã®DRæ§æïŒã§DataKeeperãå©çšããéãé¿ããŠéããªãã®ããåæã¢ãŒãããšãéåæã¢ãŒããã®éžæã§ãã ããã§ã¯ãèšèšæã«å¿
ãè°è«ã«ãªãããªãŒãžã§ã³éã®è·é¢ïŒãããã¯ãŒã¯é
å»¶ïŒã ãšã ãé害çºçæã®ãªã¹ã¯ãã®2ã€ã®èгç¹ãã解説ããŸãã 1. ç©ççãªè·é¢ïŒã¬ã€ãã³ã·ïŒãæ§èœã«äžããåœ±é¿ DataKeeperã®åæã¢ãŒãã¯ã皌åç³»ã§æžã蟌ã¿ãçºçãããã³ã«ãã¿ãŒã²ããåŽãžããŒã¿ãéãããã®ãæžã蟌ã¿å®äºéç¥ïŒACKïŒããæ»ã£ãŠãããŸã§ã¢ããªã±ãŒã·ã§ã³ã®åŠçãäžæåŸ
æ©ãããŸãã åäžãªãŒãžã§ã³å
ïŒå¯çšæ§ãŸãŒã³ïŒAZéãªã©ïŒïŒ é
å»¶ãæ¥µããŠå°ãããããåæã¢ãŒãã§ãå®çšçãªããã©ãŒãã³ã¹ãåŸãããããšãå€ãã§ãã ãªãŒãžã§ã³éïŒæ±æ¥æ¬ïŒè¥¿æ¥æ¬éãªã©ïŒïŒ ãããã¯ãŒã¯ã®ãç©ççãªè·é¢ãã«å¿ããŠéä¿¡é
å»¶ïŒã¬ã€ãã³ã·ïŒã倧ãããªããŸããåæã¢ãŒããéžæããå Žåããã®é
å»¶ããã®ãŸãŸãã¢ããªã®æžã蟌ã¿ã¬ã¹ãã³ã¹äœäžããšããŠçŸããŸãã èšèšã®ãã€ã³ãïŒ æ±æ¥æ¬ãšè¥¿æ¥æ¬ãè·šããããªDRïŒçœå®³å¯ŸçïŒæ§æã§åæã¢ãŒããæ¡çšããå Žåã¯ããæ§èœäœäžã蚱容ããŠã§ãããŒã¿ä¿å
šãåªå
ããã ãšããæç¢ºãªåæãå¿
èŠã§ããããã©ãŒãã³ã¹ãæåªå
ãšãããªããè·é¢ã®åœ±é¿ãåãã«ãã ãéåæã¢ãŒããã第äžã®éžæè¢ãšãªããŸãã 2. é害çºçæã®ããŒã¿ãã¹ãšèªåãã§ã€ã«ãªãŒã㌠éåæã¢ãŒããéžæããéãããäžã€çè§£ããŠããã¹ããªã®ããé害æã®æåããšãèšç»çãªåãæ¿ãæã®æåãã®éãã§ãã åæã¢ãŒãïŒ åžžã«äž¡ããŒãã®ããŒã¿ãäžèŽããŠãããããé害æãããŒã¿ãã¹ãçºçããã æé«ã¬ãã«ã®ããŒã¿å質 ãä¿ãŠãŸãã éåæã¢ãŒãïŒ çšŒåç³»ã®æžã蟌ã¿ãåªå
ããåæã¯ããã¯ã°ã©ãŠã³ãã§è¡ããŸãã â ïž ãéèŠãéåæã¢ãŒãã®èœãšãç©ŽïŒ çšŒåç³»ãçªç¶ããŠã³ããå ŽåãåŸ
æ©ç³»ãžã® èªåãã§ã€ã«ãªãŒããŒèªäœã¯æ£åžžã«å®è¡ ãããŸããããŸã 転éãããŠããªãã£ããæªåæã®ããŒã¿ïŒãã¥ãŒïŒãã¯ããã§ã€ã«ãªãŒããŒæã« ãã¹ãŠç Žæ£ïŒããŒã¿ãã¹ïŒãããŸããããã«ããã埩æ§åŸã«ããŒã¿äžæŽåãçãããªã¹ã¯ãããç¹ã«æ³šæãå¿
èŠã§ãã ð¡ ãè£è¶³ãèšç»çãªåãæ¿ãã¯å®å
šïŒ ã¡ã³ããã³ã¹çã§ãæåã§ã®ã¹ã€ãããªãŒããŒããè¡ãå Žåã¯ãLifeKeeperãæªåæã®ããŒã¿ããã¹ãŠéãçµããŠããåãæ¿ãã åäœãããŸãããã®ãããéåæã¢ãŒãã§ãã£ãŠãæååãæ¿ãã§ããã°ããŒã¿ãã¹ãäžæŽåã¯çºçããŸããã ãçµè«ïŒã©ãéžã¶ã¹ããïŒã Azureç°å¢ã«ãããå€æåºæºã¯ä»¥äžã®ããã«ãªããŸãã é
ç® åæã¢ãŒãïŒæšå¥šïŒåäžãªãŒãžã§ã³/AZéïŒ éåæã¢ãŒãïŒæšå¥šïŒãªãŒãžã§ã³é/DRæ§æïŒ éèŠããç¹ ããŒã¿å質ã»å®å
šäžèŽïŒãã¹ãªãïŒ ã¢ããªã±ãŒã·ã§ã³ã®åŠçé床ïŒã¬ã¹ãã³ã¹ïŒ è·é¢ã®åœ±é¿ è·é¢ïŒæ±æ¥æ¬-è¥¿æ¥æ¬ãªã©ïŒããããšé
å»¶ãã è·é¢ã«é¢ãããæžã蟌ã¿é床ã«åœ±é¿ããªã é害æã®èªååãæã (ãã§ã€ã«ãªãŒããŒ) ãã¹ãªãã»äžæŽåãªã çŽåã®ããŒã¿ç Žæ£ã»äžæŽåã®ãªã¹ã¯ãã èšç»æã®æååãæ¿ã (ã¹ã€ãããªãŒããŒ) ãã¹ãªãã»äžæŽåãªã ãã¹ãªãã»äžæŽåãªãïŒåæå®äºãåŸ
ã€ããïŒ ð¡ ããã«æ·±æãïŒïŒéåæã¢ãŒãã§ãããŒã¿äžæŽåãã¯ã©ããŸã§èµ·ããïŒ ãéåæã¢ãŒãã§ããŒã¿ãç Žæ£ããããšããã¡ã€ã«ãå£ããŠOSãDBïŒOracleçïŒãèµ·åããªããªãã®ã§ã¯ïŒããšäžå®ã«æãæ¹ããããããããŸãããããããDataKeeperã«ã¯ãã®ãªã¹ã¯ãæå°éã«æãã**ãæžã蟌ã¿é åºã®æŽåæ§ïŒWrite Order FidelityïŒã**ãšããéèŠãªä»çµã¿ããããŸãã æžã蟌ã¿é åºã®ä¿èšŒïŒ DataKeeperã¯ãããã¯åäœã§åæãè¡ããŸããããœãŒã¹åŽã§æžã蟌ãŸããé åºãå³å¯ã«å®ã£ãŠã¿ãŒã²ããåŽãžè»¢éããŸãããã®ããããæ°ãããããã¯ã ããå
ã«å±ããå€ããããã¯ãæ¬ èœããããšãã£ãäžèªç¶ãªç¶æ
ã¯çºçããŸããã ãåé»çŽåŸããšåãç¶æ
ïŒã¯ã©ãã·ã¥äžè²«æ§ïŒïŒ é害çºçæã®ã¿ãŒã²ããåŽã®ãã£ã¹ã¯ã¯ãçè«äž**ããœãŒã¹åŽã®ãµãŒããŒãããäžç¬ã®æç¹ã§çªç¶åé»ããéã®ãã£ã¹ã¯ç¶æ
ã**ãšç䟡ã§ãã 埩æ§ã®ã¡ã«ããºã ïŒ ææ°ã®æ°ãããã¯ã倱ããããšããŠãããã£ã¹ã¯å
šäœãšããŠã¯ãéå»ã®ããæç¹ãã®æŽåæ§ãä¿ãããŠããŸãããã®ããããã§ã€ã«ãªãŒããŒåŸã®OSïŒNTFS/ReFSçïŒãããŒã¿ããŒã¹ïŒOracleçïŒã¯ãèªèº«ã®æšæºçãªãªã«ããªæ©èœïŒãã°ã®ããŒã«ããã¯çïŒã䜿ã£ãŠãäžæŽåãè§£æ¶ãæ£åžžã«èµ·åããããšãå¯èœãªèšèšãšãªã£ãŠããŸãã ãçµè«ã éåæã¢ãŒãã¯ãçŽåã®ããŒã¿ïŒæ°ç§åãªã©ïŒãã倱ãå¯èœæ§ã¯ãããŸããã ãã·ã¹ãã ãäºåºŠãšç«ã¡äžãããªããªããããªãã¡ã€ã«ç Žæããé²ãããã®é«åºŠãªè»¢éå¶åŸ¡ ãè¡ãããŠããŸããããã©ãŒãã³ã¹ãåªå
ãã€ã€ãå®çšçãªå¯çšæ§ã確ä¿ã§ããã®ããDataKeeperãéžã°ããçç±ã®äžã€ã§ãã 5. ãåçºãããªãïŒãããã®ãã§ãã¯ãªã¹ãïŒãã¹ããã©ã¯ãã£ã¹ ãããŸã§ã®äºäŸãèžãŸããAzureç°å¢ã§ã®æ§ç¯åã»èšå®æã«ç¢ºèªããŠããã ããããã§ãã¯ãªã¹ããäœæããŸããããã²æ¥ã
ã®éçšãæ°èŠæ§ç¯æã«ã圹ç«ãŠãã ããïŒ â
åçºé²æ¢çïŒAzureæ§ç¯åã»èšå®æã®ãã§ãã¯ãªã¹ãïŒ ããããã¯ãŒã¯ã»IPèšèšã ä»®æ³IPãªãœãŒã¹ã«å²ãåœãŠããµãããããã¹ã¯ã¯ 255.255.255.255 (/32) ã«èšå®ããŠãããïŒ åãµãŒããŒã®NICïŒIPãªãœãŒã¹çšãšãã©ãŒãªã³ã°çšãªã©ïŒã«ã¯ããããã ç°ãªããµãããã ãå²ãåœãŠãŠãããïŒïŒâ»åäžãµããããã¯æªãµããŒãïŒ ä»®æ³IPãæ©èœãããããã®ããŒããã©ã³ãµãŒïŒILBçïŒã¯é©åã«èšèšãããŠãããïŒ LB Health CheckãªãœãŒã¹ã®å°å
¥ãæ€èšãããã§ã€ã«ãªãŒããŒã®ç¢ºå®æ§ãé«ããŠãããïŒ ãQuorumã»ããŒã¿ä¿è·èšèšã ã¹ããªãããã¬ã€ã³å¯ŸçãšããŠãèªç€Ÿç°å¢ã«åã£ããã§ã³ã·ã³ã°ææ³ïŒSCSI-3 PRãMajorityã¢ãŒãçïŒãæ£ããéžå®ã§ããŠãããïŒ Majorityã¢ãŒãã®å ŽåãWitnessãµãŒããŒã¯ã¯ã©ã¹ã¿ããŒããšç°ãªãå¯çšæ§ãŸãŒã³ïŒAZïŒã«é
眮ããããèšèšããŠãããïŒ DataKeeperã®åæã¢ãŒãã¯èŠä»¶ã«åã£ãŠãããïŒïŒLANç°å¢/ããŒã¿å質éèŠïŒãåæããWANç°å¢/ã¬ã¹ãã³ã¹éèŠïŒãéåæãïŒ ð¡ ãã¹ããã©ã¯ãã£ã¹ Azureç¹æã®èšå®ããã¥ã¢ã«ãå¿
ãåç
§ãã Azureç°å¢ã¯ãªã³ãã¬ãã¹ãä»ã®ã¯ã©ãŠããšåäœåçãç°ãªãéšåããããŸããæ§ç¯æã¯å
¬åŒããã¥ã¢ã«ã®ãAzure ç¹æã®èšå®ã«ã€ããŠããå¿
ããäžèªããã ããOSïŒWindows/LinuxïŒããšã®å·®ç°ã確èªããŠãã ããã WitnessãµãŒããŒã®å¹ççãªæŽ»çš è€æ°ã¯ã©ã¹ã¿ãéçšããå ŽåãMajorityã¢ãŒãã®WitnessãµãŒããŒã¯1å°ã§å
±çšå¯èœã§ããç¡é§ãªãªãœãŒã¹ãçããã³ã¹ãã®æé©åãå³ããŸãããã ãã°ã®ç£èŠãã€ã³ããææ¡ãã ãã§ã€ã«ãªãŒããŒã®æåŠãã¹ããªãããã¬ã€ã³å¯Ÿçã®æåã¯ãLinuxã§ããã° /var/log/lifekeeper.log ã«èšé²ãããŸããéçšç£èŠããŒã«çãšé£æºãããã®ãã°ãé©åã«ç£èŠããä»çµã¿ãæŽããããšãå®å®çšŒåãžã®è¿éã§ãã 6. ãŸãšã ãããã§ããã§ãããããAzureç°å¢ã§LifeKeeperãå®å®çšŒåãããããã«ã¯ãã¯ã©ãŠãç¹æã®ãããã¯ãŒã¯ä»æ§ïŒILB飿ºããµããããèŠä»¶ïŒãšãã¹ãã¬ãŒãžä»æ§ïŒã¹ããªãããã¬ã€ã³å¯ŸçïŒãæ£ããçè§£ããããšãæåã®éµãšãªããŸãã ããªã³ãã¬ãšåãã§å€§äžå€«ã ããããšæã蟌ãŸããäºåã«å
¬åŒããã¥ã¡ã³ããæ¬èšäºã®ãã§ãã¯ãªã¹ããæŽ»çšããŠãèœãšã穎ãåé¿ããŠãã ãããïŒæ¥ã
ã®éçšã§ãããæèããã°ãäžèŠãªãã©ãã«ã¯ç¢ºå®ã«é²ããŸãã 7. 次åäºå 次åã®é£èŒããŒãã¯ãã«ããŽãª4ïŒDataKeeperã®èœãšã穎ïŒããŒã¿ä¿è·ãšããã©ãŒãã³ã¹ã®ãã©ã³ã¹ãã§ãã DataKeeperã®ãã©ãŒåæãã©ãã«ããæ§èœããã«ããã¯ãšé害æåäœã®ç¢ºèªãã€ã³ãã«ã€ããŠãå®éã®ãµããŒãäºäŸãããã£ãŒãã«è§£èª¬ããŸãããæ¥œãã¿ã«ïŒ ð æ¬é£èŒã®ããã¯ãã³ã㌠éå»ã®ãã©ãã«äºäŸãšè§£æ±ºçããã²ããããŠã芧ãã ããïŒ ã«ããŽãª1ïŒãªãœãŒã¹èµ·åã»ãã§ã€ã«ãªãŒããŒå€±æã®æ·±å±€ â¶ ããªãœãŒã¹èµ·åã»ãã§ã€ã«ãªãŒããŒå€±æã®æ·±å±€ #1ãEC2ãªãœãŒã¹ãèµ·åããªãïŒã¯ã©ãŠã飿ºã®ç²ç¹ãšãããã°è¡ â TechHarmony â¶ ããªãœãŒã¹èµ·åã»ãã§ã€ã«ãªãŒããŒå€±æã®æ·±å±€ #2ããã¡ã€ã«ã·ã¹ãã ã®æãã¬èœãšã穎ïŒãšã©ãŒã³ãŒãããåå ãèªã¿è§£ã â TechHarmony â¶ ããªãœãŒã¹èµ·åã»ãã§ã€ã«ãªãŒããŒå€±æã®æ·±å±€ #3ãèšå®ãã¹ã»éä¿¡é害ã»ããŒãžã§ã³éãã®æ·±å±€ãšåçºé²æ¢ç â TechHarmony ã«ããŽãª2ïŒOSã»LKããŒãžã§ã³ã¢ããã§æ³£ããªãããã« â¶ ãOSã»LKããŒãžã§ã³ã¢ããã§æ³£ããªãããã« #1ãOSããŒãžã§ã³ã¯å€ããŠããªãã®ã«ïŒïŒã«ãŒãã«æŽæ°ã®ãèœãšã穎ããšäºææ§ã®çå® â TechHarmony â¶ ãOSã»LKããŒãžã§ã³ã¢ããã§æ³£ããªãããã« #2ããèšå®ãæ¶ããïŒïŒãã亡éIPãèŠåïŒïŒããé²ãããŒããããïŒåçŽãªäžæžãæŽæ°ã«æœãèœãšã穎ãšåé¿ç â TechHarmony ã«ããŽãª3ïŒã¯ã©ãŠãç°å¢ç¹æã®èœãšã穎 â¶ ãã¯ã©ãŠãç°å¢ç¹æã®èœãšã穎 #1ãè¯ãããšæã£ãèªå埩æ§ãä»ã«ïŒïŒAWSç°å¢ïŒEC2/Route53/S3ïŒã§ãããæ§æãšåé¿ç â TechHarmony â¶ ãã¯ã©ãŠãç°å¢ç¹æã®èœãšã穎 #2ããªã³ãã¬æèŠã®ãåäžãµãããããã¯NG!?Azureç°å¢ã®ãããã¯ãŒã¯èŠä»¶ãšQuorumèšèšã®æé©è§£ 詳ããå
容ããç¥ãã«ãªãããããã¯ã以äžã®ãããŒããSCSK LifeKeeperå
¬åŒãµã€ããŸã§
ã¯ããã« æ¬çš¿ã¯ã2026 幎 03 æ 20 æ¥ã«å
¬éããã â Migrate Amazon CloudFront public origins to private VPC origins â ã翻蚳ãããã®ã§ãã ãã®èšäºã§ã¯ãããŸããŸãªæŠç¥ã䜿çšã㊠Amazon CloudFront ã®ãããªãã¯ãªãªãžã³ã Amazon Virtual Private Cloud (Amazon VPC) ãªãªãžã³ã«ç§»è¡ããæ¹æ³ã玹ä»ããŸãããŸãã ã¯ãã¹ã¢ã«ãŠã³ã ã§ VPC ãªãªãžã³ ã䜿çšããããšã§ãã»ãã¥ãªãã£ãæåªå
ãšããã¢ãŒããã¯ãã£ããµããŒãããããšãã§ããŸãã CloudFront ã¯ãŒã¯ããŒãã®ãããã¯ãŒã¯ã¢ãŒããã¯ãã£ãèšèšããéãéäžåã¢ãã«ãšåæ£åã¢ãã«ã®ãããããéžæããå¿
èŠããããŸããéäžåã¢ãŒããã¯ãã£ã§ã¯ãå°çšã®ãããã¯ãŒãã³ã°ã¢ã«ãŠã³ãããã¹ãŠã® CloudFront ãã£ã¹ããªãã¥ãŒã·ã§ã³ããã¹ãããè€æ°ã®ãªãœãŒã¹ã¢ã«ãŠã³ãã«ãŸããããªãªãžã³ã«æ¥ç¶ããŸããåãªãœãŒã¹ã¢ã«ãŠã³ãã¯ãApplication Load Balancer (ALB)ãNetwork Load Balancer (NLB)ãAmazon Elastic Compute Cloud(Amazon EC2) ã€ã³ã¹ã¿ã³ã¹ãªã©ã®ãªãªãžã³ã€ã³ãã©ã¹ãã©ã¯ãã£ããã¹ãããŸãã忣åã¢ãŒããã¯ãã£ã§ã¯ãåãªãœãŒã¹ã¢ã«ãŠã³ããç¬èªã® CloudFront ãã£ã¹ããªãã¥ãŒã·ã§ã³ãšãªãªãžã³ã€ã³ãã©ã¹ãã©ã¯ãã£ããããã管çãããããä»ã®ã¢ã«ãŠã³ãããç¬ç«ããã¯ãŒã¯ããŒãç°å¢ãæ§ç¯ãããŸãã VPC ãªãªãžã³ã¯ãéäžåãšåæ£åã®ã©ã¡ãã®ã¢ãŒããã¯ãã£ã¢ãã«ã§ã䜿çšã§ããŸããã¢ããªã±ãŒã·ã§ã³ããã©ã€ããŒãã«ããŠãããªãã¯ã€ã³ã¿ãŒãããããåé¢ããããšã§ãã»ãã¥ãªãã£äœå¶ã匷åãããŸãã VPC ãªãªãžã³ã䜿çšã㊠CloudFront ã¬ã€ã€ãŒã§ã¢ã¯ã»ã¹å¶åŸ¡ã管çããããšã§ãã¢ããªã±ãŒã·ã§ã³ããããªãã¯ã€ã³ã¿ãŒãããããåé¢ã§ããŸãããŸãããªãªãžã³ã€ã³ãã©ã¹ãã©ã¯ãã£ã«å¯Ÿãã DDoS æ»æã®ãªã¹ã¯ã軜æžãããŸããæ¢åã®ã¯ãŒã¯ããŒãã§ CloudFront VPC ãªãªãžã³ãæå¹ã«ããæ¹æ³ã¯ããã€ããããŸããé©åãªç§»è¡ã¢ãããŒãã®éžæã¯ãçŸåšã®æ§æãããžãã¹ããŒãºãéçšèŠä»¶ã«ãã£ãŠç°ãªããŸããããããã¯ãããŸããŸãªç§»è¡æŠç¥ã玹ä»ããã客æ§ã®ç°å¢ã«æé©ãªæ¹æ³ãéžæããããã®äž»èŠãªèæ
®äºé
ãšãã¹ããã©ã¯ãã£ã¹ã«ã€ããŠèª¬æããŸãã åææ¡ä»¶ CloudFront ã®ãããªãã¯ãªãªãžã³ããã©ã€ããŒã VPC ãªãªãžã³ã«ç§»è¡ããåã«ã以äžã®æºåãå¿
èŠã§ãïŒ AWS ã¢ã«ãŠã³ããšæš©é CloudFront ããã³ Amazon VPC ãªãœãŒã¹ã管çããããã«å¿
èŠãª Amazon Web Services (AWS) Identity and Access Management (IAM) æš©é AWS Resource Access Manager (AWS RAM) (ã¯ãã¹ã¢ã«ãŠã³ãå
±æã®å Žå) ãªãœãŒã¹ãé
眮ãããŠãã AWS ãªãŒãžã§ã³ãšã¢ãã€ã©ããªãã£ãŒãŸãŒã³ (AZ) ã§ VPC ãªãªãžã³ããµããŒããããŠãã ããšãç¢ºèª ãªãœãŒã¹èšå® ãã©ã€ããŒãã¢ããªã±ãŒã·ã§ã³ãªãœãŒã¹ã®ãããã¯ãŒã¯èŠä»¶ã確ç«ã CloudFront VPC ãªãªãžã³ã®åææ¡ä»¶ ã®ããã¥ã¡ã³ããåç
§ããŠãã ãããã»ãã¥ãªãã£ã°ã«ãŒãã䜿çšããŠãªãªãžã³ãä¿è·ããCloudFront ããã®ã€ã³ããŠã³ãæ¥ç¶ã®ã¿ã«å¶éããã®ã€ã³ããŠã³ãæ¥ç¶ã®ã¿ã«å¶é Amazon VPC ã®ãã©ã€ããŒããµããããå
ã«å¿
èŠãª ALBãNLBããŸã㯠EC2 ã€ã³ã¹ã¿ã³ã¹ãäœæããããã®ãªãœãŒã¹ã VPC ãªãªãžã³ãšããŠèšå® CloudFront ãšãªãªãžã³éã§ HTTPS éä¿¡ãè¡ãããã®ãæå¹ãª SSL/TLS èšŒææžãšé©åãªæå·åèšå®ã®æ§æ Amazon VPC Block Public Access (BPA) ã®èšå® BPA ã䜿çšããŠããå Žåã¯ãAmazon VPC å
šäœãŸãã¯ç¹å®ã®ãã©ã€ããŒããµããããã«å¯Ÿãã Amazon VPC BPA é€å€èšå®ã®äœæãèšå®æé ã«ã€ããŠã¯ã Amazon VPC BPA ã®åºæ¬ ã®ããã¥ã¡ã³ããåç
§ VPC ãªãªãžã³ã®èšå® CloudFront ã³ã³ãœãŒã« ãŸã㯠API ã䜿çšãã VPC ãªãªãžã³ã® äœæ ããã©ã€ããŒãã¢ããªã±ãŒã·ã§ã³ãªãœãŒã¹ãäœæãããªãœãŒã¹ãªãŒããŒã¢ã«ãŠã³ããäœ¿çš VPC ãªãªãžã³ã®ãããã€ã«ã¯æå€§ 15 åãããå Žåãã ãã¹ããšæ€èšŒ ãã©ã€ããŒãã¢ããªã±ãŒã·ã§ã³ãªãœãŒã¹ (ALBãNLBããŸã㯠Amazon EC2 ã€ã³ã¹ã¿ã³ã¹) ãæ¬çªç°å¢ãžã¢ã¯ã»ã¹å¯èœãªç¶æ
ã§ãããAmazon VPC å
ããã¢ã¯ã»ã¹å¯èœã§ããããšã®ç¢ºèª åã Amazon VPC å
ã®ãã¹ãã€ã³ã¹ã¿ã³ã¹ãããã©ã€ããŒããªãªãžã³ãžã®æ¥ç¶ããã¹ãããã¢ããªã±ãŒã·ã§ã³ãžã®ã¢ã¯ã»ã¹ã®ç¢ºèª ã¢ããªã±ãŒã·ã§ã³ãããã©ãŒãã³ã¹ãã³ãããŒã¯ãæºãããæåŸ
ã©ããã«ã³ã³ãã³ããé
ä¿¡ããŠããããšã®æ€èšŒ ã¢ãã¿ãªã³ã°ã¡ããªã¯ã¹ Amazon CloudWatch ã¡ããªã¯ã¹ ïŒ4xxErrorRateã5xxErrorRateãOriginLatency ã远跡ãããªãªãžã³æ¥ç¶ã®åé¡ãããã©ãŒãã³ã¹äœäžã®ç¹å® CloudFront ãã° ïŒã¢ã¯ã»ã¹ãã°ã確èªãããªãªãžã³æ¥ç¶ã®å€±æãã¿ã€ã ã¢ãŠããšã©ãŒãVPC ãªãªãžã³ããã®äºæããªãã¬ã¹ãã³ã¹ã³ãŒãã®ç¢ºèª Amazon VPC ãããŒãã° ïŒCloudFront ãã VPC ãªãªãžã³ãžã®ãã©ãã£ãã¯ãããŒã®ç¢ºèªãã»ãã¥ãªãã£ã°ã«ãŒãã«ãŒã«ã§å¿
èŠãªæ¥ç¶ãèš±å¯ãããŠããããšã®ç¢ºèª ã¢ããªã±ãŒã·ã§ã³ãã° ïŒãªãªãžã³ã¢ããªã±ãŒã·ã§ã³ãã°ãç£èŠããCloudFront ãšã®çµ±åã«åé¡ãããããšã瀺ããšã©ãŒãããã©ãŒãã³ã¹ã®åé¡ã®ç¢ºèª ç§»è¡æŠç¥ ãã®ã»ã¯ã·ã§ã³ã§ã¯ãCloudFront ã§ãããªãã¯ãªãªãžã³ãããã©ã€ããŒã VPC ãªãªãžã³ãžç§»è¡ããããã®æŠç¥ã«ã€ããŠèª¬æããŸãããããã®æŠç¥ã宿œããåã«ãåææ¡ä»¶ãå®äºããŠããå¿
èŠããããŸãã æŠç¥ 1ïŒCloudFront ç¶ç¶çãããã€ã®äœ¿çš (æšå¥š) CloudFront ç¶ç¶çããã〠ã䜿çšãããšãèšå®ã®å€æŽãå®å
šã«ãã¹ãã»æ€èšŒã§ããã¹ããŒãžã³ã°ç°å¢ãæ¬çªç°å¢ã«ææ Œãããåã«å€æŽå
容ããã¹ãã§ããŸãããã®ãã«ãŒ/ã°ãªãŒã³ãããã€ã¡ã³ãã¢ãããŒããæšå¥šãããç§»è¡æŠç¥ã§ããçç±ã¯ãããŠã³ã¿ã€ã ãŒãã®ç§»è¡ãšããŒã«ããã¯æ©èœãçµã¿èŸŒãŸããŠããããã§ãããŸããæ¬çªãã©ãã£ãã¯ã«åœ±é¿ãäžããåã«ãVPC ãªãªãžã³ã®æ¥ç¶æ§ãããã©ãŒãã³ã¹ãæ©èœãå®å
šã«ãã¹ãã»æ€èšŒã§ããŸãããã®æŠç¥ãå³ 1 ã«ç€ºããŸãã ç¶ç¶çãããã€ã¡ã³ãã§ã¯ãæ¬çª (ãã©ã€ããª) ãã£ã¹ããªãã¥ãŒã·ã§ã³ããã©ãŒãªã³ã°ããã¹ããŒãžã³ã°ãã£ã¹ããªãã¥ãŒã·ã§ã³ãäœæãããŸããã¹ããŒãžã³ã°ãã£ã¹ããªãã¥ãŒã·ã§ã³ã«æ°ãã VPC ãªãªãžã³ãèšå®ã§ããŸãããã©ã€ããªãã£ã¹ããªãã¥ãŒã·ã§ã³ã¯ãããªãã¯ãªãªãžã³ããã®ãã©ãã£ãã¯é
ä¿¡ãç¶ç¶ããŸããããããŒããŒã¹ãŸãã¯éã¿ããŒã¹ã®æ¹åŒã§ç¶ç¶çãããã€ã¡ã³ãããªã·ãŒãäœæããã¹ããŒãžã³ã°ãã£ã¹ããªãã¥ãŒã·ã§ã³ã«ãã©ãã£ãã¯ãæ¯ãåããããšãã§ããŸãã ãŸããç¹å®ã®ããããŒã§ãã©ãã£ãã¯ãã¿ã°ä»ãããŠãã¹ããè¡ãã«ã¯ãããããŒããŒã¹ã¿ã€ãã§ããªã·ãŒãæå¹ã«ããŸããããã«ããããã¹ããã§ãŒãºäžã«çºçããå¯èœæ§ã®ããåé¡ãè¿
éã«è§£æ±ºã§ããŸããAmazon VPCããããã¯ãŒã¯ãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ãæ€èšŒãããåé¡ã解決ããããããªã·ãŒãéã¿ããŒã¹ã¿ã€ãã«æŽæ°ããŸãã éã¿ããŒã¹ããªã·ãŒã§ã¯ãæ¬çªãã©ãã£ãã¯ã®ç¹å®ã®å²å (0%ã15%) ãã¹ããŒãžã³ã°ãã£ã¹ããªãã¥ãŒã·ã§ã³ã«ã«ãŒãã£ã³ã°ã§ããŸããæåã¯å°ããå²åããå§ããåŸã
ã«å¢ãããŠããããšãã§ããŸããéã¿ããŒã¹ããªã·ãŒã¿ã€ãã䜿çšããå Žåãã»ãã·ã§ã³ã®ç¶æãæå¹ã«ã§ããŸããããã«ãããç¹å®ã®ãŠãŒã¶ãŒã»ãã·ã§ã³ã¯ããã¥ãŒã¯ãŒã»ãã·ã§ã³ãéãããããŸã§ç¹å®ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã«ç¶æãããŸããæ€èšŒãå®äºãããã1 åã®æäœã§ã¹ããŒãžã³ã°èšå®ãæ¬çªç°å¢ã«ææ ŒãããŸããè©³çŽ°ãªæé ã«ã€ããŠã¯ãã Use CloudFront continuous deployment to safely validate CDN changes ããåç
§ããŠãã ããã å³ 1ïŒCloudFront ç¶ç¶çãããã€ã¡ã³ãæ©èœã䜿çšãããã©ã€ããŒã VPC ãªãªãžã³ãžã®ç§»è¡ æŠç¥ 1 ã®èæ
®äºé
ãã£ãã·ã¥ ïŒãã©ã€ããªãã£ã¹ããªãã¥ãŒã·ã§ã³ãšã¹ããŒãžã³ã°ãã£ã¹ããªãã¥ãŒã·ã§ã³ã¯ãã£ãã·ã¥ã¯å¥ç®¡çãCloudFront ãã¹ããŒãžã³ã°ãã£ã¹ããªãã¥ãŒã·ã§ã³ã«æåã®ãªã¯ãšã¹ããéä¿¡ããæç¹ã§ã¯ãã£ãã·ã¥ã¯ç©ºã§ãããããã€ãã¢èšå®ã«åºã¥ããŠãã£ãã·ã¥ãéå§ ãã©ãã«ã·ã¥ãŒãã£ã³ã° ïŒç§»è¡äžã«åé¡ãçºçããå Žåã¯ãç¶ç¶çãããã€ã¡ã³ãããªã·ãŒã§ãã©ãã£ãã¯ã®éã¿ã 0% ã«åæžãåé¡ã調æ»ã»è§£æ±ºããŠããããã©ãã£ãã¯ã®å²åãåŸã
ã«å¢å ã»ãã·ã§ã³ç¶æ
ïŒç¶ç¶çãããã€ã¡ã³ãããªã·ãŒãç¡å¹ãŸãã¯æå¹ã«ãããšãCloudFront ã¯ãã¹ãŠã®ã»ãã·ã§ã³ (ã¢ã¯ãã£ããªã»ãã·ã§ã³ãå«ã) ããªã»ãããããã¹ãŠã®ãªã¯ãšã¹ããæ°èŠãšããŠåŠçãã»ãã·ã§ã³ã¹ãã£ãããã¹ã®ç¡å¹åã»æå¹åæã«ãåæ§ ãããã³ã«ãµããŒã ïŒçŸåšãHTTP3 ã¯ç¶ç¶çãããã€ã¡ã³ãããªã·ãŒã§ã¯æªãµããŒã ããªã·ãŒ ïŒéã¿ããŒã¹ããªã·ãŒã䜿çšããå Žåãéã¿ã¯ 0ã15 ã®æ°å€ã§æå® æŠç¥ 2ïŒCloudFront ãšããžé¢æ°ã®äœ¿ç𠿢åã® CloudFront ãã£ã¹ããªãã¥ãŒã·ã§ã³ã«ãäœæãããã©ã€ããŒã VPC ãªãªãžã³ããªãªãžã³ãšããŠè¿œå ããŸããæ¬¡ã«ãviewer-request ããªã¬ãŒã䜿çšãã CloudFront Function (ãµã³ãã«ã³ãŒãã¯ä»¥äž) ãäœæããã«ã¹ã¿ã ããããŒãŸãã¯ãããªãã¯ãªãªãžã³ãšãã©ã€ããŒã VPC ãªãªãžã³éã®éã¿ä»ããã©ãã£ãã¯åå²ã«åºã¥ããŠããã©ãã£ãã¯ã VPC ãªãªãžã³ã«æ¯ãåããŸãããã®ä»ã®äŸã«ã€ããŠã¯ãGitHub ã® amazon-cloudfront-functions ãµã³ãã« ãåç
§ããŠãã ããã import cf from 'cloudfront'; const kvsHandle = cf.kvs(); // Configuration: Update these values to match your CloudFront distribution origins const PUBLIC_ORIGIN_DOMAIN = 'your-public-origin.example.com'; // Replace with your public origin domain const PRIVATE_ORIGIN_ID = 'your-private-origin-id'; // Replace with your private VPC origin ID async function handler(event) { const request = event.request; try { const config = await kvsHandle.get('routing_mode', { format: 'json' }); if (config.mode === 'header') { const routeHeader = request.headers['x-route-origin']; if (routeHeader && routeHeader.value === 'public') { cf.updateRequestOrigin({ domainName: PUBLIC_ORIGIN_DOMAIN }); } else if (routeHeader && routeHeader.value === 'private') { cf.selectRequestOriginById(PRIVATE_ORIGIN_ID); } } else if (config.mode === 'weighted') { const hash = simpleHash(event.viewer.ip); if (hash % 100 < config.weight_percentage) { cf.selectRequestOriginById(PRIVATE_ORIGIN_ID); } else { cf.updateRequestOrigin({ domainName: PUBLIC_ORIGIN_DOMAIN }); } } } catch (error) { console.log('Routing error: ' + error); } return request; } function simpleHash(str) { let hash = 0; for (let i = 0; i < str.length; i++) { hash = ((hash << 5) - hash) + str.charCodeAt(i); hash = hash & hash; } return Math.abs(hash); } ãªã¯ãšã¹ãã®ã«ãŒãã£ã³ã°ã¢ãŒã㯠KVS ã§å®çŸ©ããããŒããrouting modeããå€ã {"mode": "weighted", "weight_percentage": 70} ãŸã㯠{"mode": "header"} ã«èšå®ããŸãããã¹ããéå§ããã«ã¯ããããªãã¯ãªãªãžã³ã«ãã©ãã£ãã¯ã転éãã察象ã®ããã€ãã¢ã« CloudFront Function ãé¢é£ä»ããŸãã ãŸããKVS ã®å€ã {"mode": "header"} ã«èšå®ããŸããã«ã¹ã¿ã ããã㌠x-route-origin ã®å€ã public ãŸã㯠private ã«æå®ãããªã¯ãšã¹ãã CloudFront ã«éä¿¡ããŠãã¹ããéå§ããŸãããã¹ããã§ãŒãºäžã«çºçããå¯èœæ§ã®ããåé¡ãè¿
éã«è§£æ±ºã§ããŸãã èšå®ããããã¯ãŒã¯ãã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ã¡ããªã¯ã¹ãæ€èšŒããŸããæãããªåé¡ã解決ããåŸãKVS ãæŽæ°ããŠéã¿ä»ãã§ãã©ãã£ãã¯ãã«ãŒãã£ã³ã° {"mode": "weighted", "weight_percentage": 5} ããŸãããŸããã©ãã£ãã¯ã® 5% ããã©ã€ããŒããªãªãžã³ã«éä¿¡ãã weight_percentage ãåŸã
ã« 100% ãŸã§å¢å ãããŸãããã©ã€ããŒããªãªãžã³ããã©ãã£ãã¯ãåä¿¡ããæåŸ
ã©ããã«åäœããŠããããšã確èªãããããã£ãã·ã¥ããã€ãã¢ãæŽæ°ããŠãçŸåšã®ãããªãã¯ãªãªãžã³ã®ä»£ããã«ãã©ã€ããŒããªãªãžã³ã䜿çšããããã«å€æŽããŸãããã®åŸããã©ãã£ãã¯ããã©ã€ããŒã VPC ãªãªãžã³ã«ã«ãŒãã£ã³ã°ãããŠããããšãæ€èšŒããŸãããšã©ãŒããªãããšã確èªãããããã£ãã·ã¥ããã€ãã¢ãã CloudFront Function ãåé€ããŸããä»ã®ãã£ãã·ã¥ããã€ãã¢ã«ã€ããŠãåãããã»ã¹ãç¹°ãè¿ããŸãã å³ 2ïŒCloudFront ãšããžé¢æ°ã䜿çšãããã©ã€ããŒã VPC ãªãªãžã³ãžã®ç§»è¡ æŠç¥ 2 ã®èæ
®äºé
ãã£ãã·ã¥ ïŒãã£ã¹ããªãã¥ãŒã·ã§ã³ã¯ãèšå®ããããã£ãã·ã¥ããã€ãã¢ã«åºã¥ããŠãªã¯ãšã¹ãããã£ãã·ã¥ ãã©ãã«ã·ã¥ãŒãã£ã³ã° ïŒç§»è¡äžã«åé¡ãçºçããå Žåã¯ããã©ãã£ãã¯ã®éã¿ã 0% ã«åæžãåé¡ã調æ»ã»è§£æ±ºããŠããããã©ãã£ãã¯ã®å²åãåŸã
ã«å¢å ãªãªãžã³èšå® ïŒCloudFront Function ã§ãªãªãžã³åºæã®èšå®ã远å ããå Žåã¯ã ãªãªãžã³å€æŽã®ãã«ããŒã¡ãœãã ãåç
§ãç¹ã«æå®ããªãéãããã¹ãŠã®èšå®ã¯ãªãªãžã³èšå®ãŸãã¯é¢é£ãããã£ãã·ã¥ããã€ãã¢èšå®ããç¶æ¿ CloudFront Function ïŒããã€ãã¢ã«æ¢åã® CloudFront Function ãé¢é£ä»ããããŠããå Žåã¯ããªãªãžã³éžæããžãã¯ããµã颿°ãšããŠå®è£
ããã¡ã€ã³é¢æ°ããåŒã³åºã圢ã§çµ±å KVS ïŒé¢æ°ã³ãŒãã®è€éãã軜æžããã³ãŒã倿Žã®ãããã€ãªãã§ããŒã¿ãæŽæ°å¯èœãè©³çŽ°ãªæé ã«ã€ããŠã¯ãã CloudFront Functions çšã®äœã¬ã€ãã³ã·ãŒããŒã¿ã¹ãã¢ãAmazon CloudFront KeyValueStore ã®çŽ¹ä» ããåç
§ æŠç¥ 3ïŒæ¢åãã£ã¹ããªãã¥ãŒã·ã§ã³ã®æŽæ° (ã€ã³ãã¬ãŒã¹ç§»è¡) ãã®ã€ã³ãã¬ãŒã¹ã¢ããã°ã¬ãŒãæŠç¥ã¯ãæ¢åã® CloudFront ãã£ã¹ããªãã¥ãŒã·ã§ã³ãçŽæ¥å€æŽããŠããããªãã¯ãªãªãžã³ã VPC ãªãªãžã³ã«çœ®ãæããæ¹æ³ã§ãããã®ã¢ãããŒãã¯æãè¿
éãªç§»è¡æ¹æ³ã§ããããµãŒãã¹ã®äžæãæå°éã«æããããã«ãæ
éãªèšç»ãšã¡ã³ããã³ã¹ãŠã£ã³ããŠãå¿
èŠã§ãããã®æŠç¥ãå³ 3 ã«ç€ºããŸãã ãŸããæ¢åã® CloudFront ãã£ã¹ããªãã¥ãŒã·ã§ã³ã«æ°ãã VPC ãªãªãžã³ãäœæãããã£ãã·ã¥ããã€ãã¢ãæŽæ°ããŠãããªãã¯ãªãªãžã³ã®ä»£ããã«æ°ãããã©ã€ããŒããªãªãžã³ã«ãã©ãã£ãã¯ãã«ãŒãã£ã³ã°ããŸãããã¹ãŠã®ããã€ãã¢ã®æŽæ°ãšæ€èšŒãå®äºããããå€ããããªãã¯ãªãªãžã³ã®èšå®ãåé€ã§ããŸãããã®ã¢ãããŒãã¯ãããªãããã¯ã·ã§ã³ç°å¢ããã¹ãç°å¢ã§ VPC ãªãªãžã³ããã¹ãããå Žåã«æé©ã§ããæ¬çªç°å¢ã§ã¯ãæŠç¥ 1 ã«åŸãããšãæšå¥šããŸããæ¬çªãã£ã¹ããªãã¥ãŒã·ã§ã³ã«ã€ã³ãã¬ãŒã¹ã§å€æŽãè¡ãå Žåã¯ãã¢ããªã±ãŒã·ã§ã³ã«ååãªã¡ã³ããã³ã¹ãŠã£ã³ããŠã確ä¿ããŠãã ããããŸããåãæ¿ãäžã«ã¯ãŒã¯ããŒããäžæã«èš±å®¹ã§ããããšã確èªããŠãã ããã å³ 3ïŒãã£ãã·ã¥ããã€ãã¢ã®æŽæ°ã«ãããã©ã€ããŒã VPC ãªãªãžã³ãžã®ç§»è¡ (ã€ã³ãã¬ãŒã¹ç§»è¡) æŠç¥ 3 ã®èæ
®äºé
CloudFront ãã£ã¹ããªãã¥ãŒã·ã§ã³ã®æŽæ° ïŒæ°ããèšå®ãæŽæ°ããããšãCloudFront ã¯ãã¹ãŠã®ãšããžãã±ãŒã·ã§ã³ãžã®å€æŽã®äŒæãéå§ããšããžãã±ãŒã·ã§ã³ã§èšå®ãæŽæ°ãããåŸãCloudFront ã¯ãã®ãã±ãŒã·ã§ã³ããæ°ããèšå®ã«åºã¥ããŠã³ã³ãã³ãã®é
ä¿¡ãå³åº§ã«éå§ããããŸã§ã¯ãCloudFront ã¯å€ãèšå®ã§ã³ã³ãã³ããé
ä¿¡ ãµãŒãã¹ã®äžæ ïŒããã€ãã¢ã®æŽæ°ããã»ã¹äžã«ãæ°ããäœæãããªãœãŒã¹ã§ãããã¯ãŒã¯ãã¢ããªã±ãŒã·ã§ã³ã«é¢é£ããåé¡ãçºçããå¯èœæ§ãããããããã©ãã«ã·ã¥ãŒãã£ã³ã°çšã«ååãªã¡ã³ããã³ã¹ãŠã£ã³ããŠãç¢ºä¿ ããŒã«ããã¯ã®è€éã ïŒããŒã«ããã¯ã«ã¯ããã€ãã¢ã®å€æŽãå
ã«æ»ãå¿
èŠãããããããªãã¯ãªãªãžã³ã®åäœæãå¿
èŠã«ãªãå Žåããã倿Žãè¡ãåã«å
ã®èšå®ãèšé²ããŠããããšã ãã¹ãèŠä»¶ ïŒæ¬çªç°å¢ã§ã€ã³ãã¬ãŒã¹ã¢ããã°ã¬ãŒãã宿œããåã«ã鿬çªç°å¢ã§ VPC ãªãªãžã³ã®æ¥ç¶æ§ãååã«ãã¹ã ããã€ãã¢ã®äŸåé¢ä¿ ïŒè€éãªèšå®ãæã€è€æ°ã®ããã€ãã¢ãããå Žåã¯ãäœç³»çã«æŽæ°ããå倿Žãåå¥ã«æ€èšŒ æŠç¥ 4ïŒãã«ãããã³ããã£ã¹ããªãã¥ãŒã·ã§ã³ã®ãã©ã€ããŒã VPC ãªãªãžã³ãžã®ç§»è¡ ãã«ãããã³ã CloudFront ãã£ã¹ããªãã¥ãŒã·ã§ã³ã¯ããã¹ããŒã¹ãŸãã¯ãã¹ãããŒã¹ã®ã«ãŒãã£ã³ã°ã䜿çšããŠãåäžã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã§è€æ°ã®ã¢ããªã±ãŒã·ã§ã³ã顧客ããŸãã¯ããžãã¹ãŠãããã«ã³ã³ãã³ããé
ä¿¡ããŸãããããã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã VPC ãªãªãžã³ã«ç§»è¡ããã«ã¯ãåé¢ãšã»ãã¥ãªãã£å¢çãç¶æããªãããã©ã®ããã³ãã«ã圱é¿ãäžããªãããæ
éãªèšç»ãå¿
èŠã§ãããã®æŠç¥ãå³ 4 ã«ç€ºããŸãã ãã«ãããã³ããã£ã¹ããªãã¥ãŒã·ã§ã³ã§ã¯ãåããã³ãã¯èŠªãã£ã¹ããªãã¥ãŒã·ã§ã³ããèšå®ãç¶æ¿ããç¬èªã®ãã¡ã€ã³ãæã¡ãŸãããªãªãžã³ã¯ã¡ã€ã³ãã£ã¹ããªãã¥ãŒã·ã§ã³äžã§äœæã»èšå®ãããããã³ããžã®ãã©ãã£ãã¯ã«ãŒãã£ã³ã°ã®ãã³ãã¬ãŒããšããŠäœ¿çšãããŸãããã®ãããã€ã³ãã¬ãŒã¹ç§»è¡ãè¡ããšããªãªãžã³ãããã³ãéã§å
±æãããŠããããããã¹ãŠã®ããã³ãã«åœ±é¿ãäžããå¯èœæ§ããããŸãã æšå¥šãããã¢ãããŒãã¯ãVPC ãªãªãžã³ã䜿çšããæ°ãããã«ãããã³ããã£ã¹ããªãã¥ãŒã·ã§ã³ãäœæããåããã³ããæ°ãããã£ã¹ããªãã¥ãŒã·ã§ã³ã«é¢é£ä»ããããšã§ããããã«ãããåããã³ããåå¥ã«ãã¹ãããããã³ãã 1 ã€ã〠VPC ãªãªãžã³ã䜿çšããæ°ãããã£ã¹ããªãã¥ãŒã·ã§ã³ã«ç§»è¡ã§ããŸãã å³ 3ïŒãã£ãã·ã¥ããã€ãã¢ã®æŽæ°ã«ãããã©ã€ããŒã VPC ãªãªãžã³ãžã®ç§»è¡ (ã€ã³ãã¬ãŒã¹ç§»è¡) æŠç¥ 4 ã®èæ
®äºé
ããã€ãã¢ã®æŽç ïŒç§»è¡äžã®æ··ä¹±ãé¿ãããããããã³ãããšã«ããã€ãã¢ããã¹ãã¿ãŒã³ãŸãã¯ãã¹ãããããŒã§æç¢ºã«æŽçãããŠããããšãç¢ºèª ã¯ãã¹ã¢ã«ãŠã³ãã®è€éã ïŒç°ãªãããã³ãã®ãªãªãžã³ãç°ãªã AWS ã¢ã«ãŠã³ãã«ååšããå Žåã¯ãAWS RAM ã䜿çšããŠåã¢ã«ãŠã³ãéã§ VPC ãªãªãžã³å
±æãé©åã«èšå® ããã³ãããšã®ãã¹ã ïŒæ¬¡ã®ããã³ãã«é²ãåã«ãåããã³ãã®ç§»è¡ãåå¥ã«æ€èšŒ ããŒã«ããã¯èšç» ïŒä»ã®ããã³ãã«åœ±é¿ãäžããã«åå¥ã®ããã³ããããŒã«ããã¯ããå¿
èŠãããå Žåã«åããããã³ãããšã«ããŒã«ããã¯æé ãåå¥ã«ææžå ã³ãã¥ãã±ãŒã·ã§ã³ ïŒåããã³ããŸãã¯ã¢ããªã±ãŒã·ã§ã³ãªãŒããŒãšèª¿æŽããåžæããã¡ã³ããã³ã¹ãŠã£ã³ããŠäžã«ç§»è¡ãã¹ã±ãžã¥ãŒã« ãã®ä»ã®èæ
®äºé
Origin Shield ïŒãããªãã¯ãªãªãžã³ã§ Origin Shield ã䜿çšããŠããå Žåããã©ã€ããŒã VPC ãªãªãžã³ã§ãåŒãç¶ã䜿çšå¯èœã ãªãªãžã³ã°ã«ãŒã ïŒçŸåšã® CloudFront ãã£ã¹ããªãã¥ãŒã·ã§ã³ã§ãªãªãžã³ã°ã«ãŒãã䜿çšããŠããå Žåã¯ãæ°ãããªãªãžã³ã°ã«ãŒããäœæããããã€ãã¢ããªãªãžã³ã°ã«ãŒãã«ãããã³ã°ããããèšå®ãå¿
èŠ ã¬ã€ã€ãŒ 7 ã®ä¿è· ïŒAWS Shield Standard ã¯ãå¹
åºã DDoS æ»æãã CloudFront ãã£ã¹ããªãã¥ãŒã·ã§ã³ãä¿è·ãAWS ã§ã¯ããã©ã€ããŒã VPC ãªãªãžã³ãã¬ã€ã€ãŒ 7 ã®æšçåæ»æããä¿è·ããããã«ãAWS Shield Advanced ããã³ AWS WAF ã®ã€ã³ããªãžã§ã³ããªè
åšç·©åã¡ã«ããºã (ã¬ã€ã€ãŒ 7 DDoS ç·©åã«ãŒã«ãBot Control ãªã©) ã«ãããã£ã¹ããªãã¥ãŒã·ã§ã³ã®ä¿è·ãæšå¥š ã¯ã©ãŒã¿ ïŒCloudFront ã®ã¯ã©ãŒã¿ã確èªããå¿
èŠã«å¿ããŠç§»è¡åã« VPC ãªãªãžã³ã«é¢é£ããã¯ã©ãŒã¿ãåŒãäžã ã¯ãªãŒã³ã¢ãã ç¶ç¶çãªèª²éãé¿ããããããã©ãã£ãã¯ã«ãŒãã£ã³ã°ãšãã¹ãçšã«äœæããæªäœ¿çšã®ãªãœãŒã¹ãåé€ããŠãã ãããCloudFront ãã£ã¹ããªãã¥ãŒã·ã§ã³ãåé€ããåã«ããã¹ãŠã®ãã©ãã£ãã¯ãç§»è¡æžã¿ã§ãDNS ã¬ã³ãŒããæŽæ°ãããŠããããšã確èªããŠãã ãããç§»è¡ãã¹ãçšã«ãã¹ã ALBãNLBããŸã㯠EC2 ã€ã³ã¹ã¿ã³ã¹ãäœæããå Žåã¯ãäžèŠã§ããã°åé€ããŠãã ããã ç¶ç¶çããã〠(æŠç¥ 1) ã䜿çšããå Žåã¯ãã¹ããŒãžã³ã°èšå®ããã©ã€ããªãã£ã¹ããªãã¥ãŒã·ã§ã³ã«ææ ŒãããŸãããšããžé¢æ° (æŠç¥ 2) ã䜿çšããå Žåã¯ãCloudFront Function ãšãã® KVS ã®é¢é£ä»ããè§£é€ããŠåé€ããŸããã€ã³ãã¬ãŒã¹ç§»è¡ (æŠç¥ 3) ã䜿çšããå Žåã¯ãå€ããããªãã¯ãªãªãžã³ã®èšå®ãåé€ããŸãããã«ãããã³ãã¢ãŒããã¯ã㣠(æŠç¥ 4) ãç§»è¡ããå Žåã¯ããã¹ãŠã®ããã³ãã®ç§»è¡å®äºåŸã«å€ããã«ãããã³ããã£ã¹ããªãã¥ãŒã·ã§ã³ãç¡å¹åããŠåé€ããŸãã ã¯ãªãŒã³ã¢ãããå®äºããããšã確èªããã«ã¯ãCloudFront ã³ã³ãœãŒã«ã§ãã¹ã颿°ãšæªäœ¿çšã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ãåé€ãããŠããããšã確èªããŸããããã«ã AWS Cost Explorer ã 24ã48 æéã¢ãã¿ãªã³ã°ããäžæãªãœãŒã¹ãžã®èª²éã忢ããŠããããšã確èªããŸãã ãŸãšã VPC ãªãªãžã³ãžã®ç§»è¡ã¯ããããªãã¯ãšã³ããã€ã³ããæé€ããããšã§ã»ãã¥ãªãã£äœå¶ã匷åããŸããã¢ã¯ã»ã¹å¶åŸ¡ã¯ CloudFront ã¬ã€ã€ãŒã§ç®¡çã§ããŸããCloudFront ã®ãããªãã¯ãªãªãžã³ãããã©ã€ããŒã VPC ãªãªãžã³ãžç§»è¡ããããã® 4 ã€ã®ç§»è¡æŠç¥ã¯ãããããç§»è¡é床ããªã¹ã¯è»œæžãéçšã®è€éãã®éã§ç°ãªããã¬ãŒããªããæã£ãŠããŸããæé©ãªç§»è¡ã¢ãããŒãã¯ãæ¢åã®æ§æãããžãã¹ããŒãºãããã³éçšèŠä»¶ã«ãã£ãŠç°ãªããŸãã ç§»è¡ãå§ããæºåã¯ã§ããŸãããïŒ æåã®ã¹ãããã¯ãçŸåšã®ãã£ã¹ããªãã¥ãŒã·ã§ã³æ§æãååã«çè§£ããããšã§ããããã«ããããèªèº«ã®ç°å¢ã«æé©ãªæŠç¥ãéžæããããã«å¿
èŠãªç¥èãåŸãããŸãã詳现ãªèšå®ã¬ã€ãã³ã¹ãšãã¹ããã©ã¯ãã£ã¹ã«ã€ããŠã¯ã CloudFront VPC ãªãªãžã³ ã®ããã¥ã¡ã³ããã芧ãã ããã CloudFront ã®æ©èœããã¹ããã©ã¯ãã£ã¹ã«é¢ããææ°æ
å ±ã«ã€ããŠã¯ã AWS Networking and Content Delivery Blog ããã©ããŒããŠãã ããããã£ãŒãããã¯ãããå Žåã¯ãã³ã¡ã³ãã»ã¯ã·ã§ã³ã«ã³ã¡ã³ããéä¿¡ããŠãã ããã質åãããå Žåã¯ã Amazon CloudFront re:Post ã§æ°ããã¹ã¬ãããéå§ãããã AWS Support ã«ãåãåãããã ããã èè
Kartik Bheemisetty Kartik Bheemisetty 㯠US-ISV ã®ã客æ§ãæ
åœããã·ãã¢ãã¯ãã«ã«ã¢ã«ãŠã³ããããŒãžã£ãŒã§ãããã客æ§ã AWS ã¯ã©ãŠããµãŒãã¹ã掻çšããŠããžãã¹ç®æšãéæã§ããããæ¯æŽããŠããŸããAWS ã®ãããã¯ãŒã¯ããã³ã³ã³ãã³ãé
ä¿¡ãµãŒãã¹ã«é¢ããå°éç¥èãæã£ãŠããŸãããã¹ããã©ã¯ãã£ã¹ã«é¢ããå°éçãªã¬ã€ãã³ã¹ã®æäŸãåéå¥å°éå®¶ãžã®ã¢ã¯ã»ã¹ã®ä¿é²ãAWS ã®æ¯åºãã¯ãŒã¯ããŒããã€ãã³ãã®æé©åã«é¢ããå®çšçãªã€ã³ãµã€ãã®æäŸãè¡ã£ãŠããŸãã LinkedIn ã§åœŒãšã€ãªããããšãã§ããŸãã Ravi Avula Ravi ã¯ãšã³ã¿ãŒãã©ã€ãºã¢ãŒããã¯ãã£ã«æ³šåãã AWS ã®ã·ãã¢ãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã§ãããœãããŠã§ã¢ãšã³ãžãã¢ãªã³ã°ã«ãã㊠20 幎ã®çµéšãæã¡ãæ±ºæžæ¥çã§ãœãããŠã§ã¢ãšã³ãžãã¢ãªã³ã°ããã³ãœãããŠã§ã¢ã¢ãŒããã¯ãã£ã®è€æ°ã®ãªãŒããŒã·ããè·ãæŽä»»ããŠããŸããã 翻蚳㯠Solutions Architect ã®é·è°·å· çŽä¹ãæ
åœããŸããã







.png)


















