æ¯å¹Žãéåžžã«å€ãã®æ°ãããã¯ãããžãŒïŒ KubernetesãHabitatãªã© ïŒããããç£æ¥çšã·ã¹ãã ãéãã«ãããŠéãã«ãµããŒãããããŒã«ãå¿ããã¡ã§ãã Stripeã§æ°å¹Žé䜿çšããŠããããŒã«ã®1ã€ãConsulã§ãã Consulã¯ããµãŒãã¹ã®æ€åºã«åœ¹ç«ã¡ãŸãïŒã€ãŸããæ°åã®ç°ãªããµãŒãã¹ãå®è¡ãããŠããæ°åã®ãµãŒããŒãæ€çŽ¢ãã䜿çšå¯èœãªãµãŒããŒãç¹å®ããã®ã«åœ¹ç«ã¡ãŸãïŒã ãã®å¹æçã§å®çšçãªã¢ãŒããã¯ãã£ãœãªã¥ãŒã·ã§ã³ã¯ããŸã£ããæ°ãããã®ã§ã¯ãªããç¹ã«æ³šç®ã«å€ãããã®ã§ã¯ãããŸããã§ããããäžçäžã®ãŠãŒã¶ãŒã«ä¿¡é Œæ§ã®é«ããµãŒãã¹ãæäŸãããšããç®çãå¿ å®ã«æãããŠããŸãã
ãã®èšäºã§ã¯ã次ã®ããšã«ã€ããŠèª¬æããŸãã
- ãµãŒãã¹çºèŠãšé äºãšã¯äœã§ããã
- éèŠãªãœãããŠã§ã¢è£œåãå®è£ ããéã«çºçãããªã¹ã¯ãã©ã®ããã«ç®¡çãããã
- ç§ãã¡ãçŽé¢ãã課é¡ãšããããã®èª²é¡ãžã®å¯Ÿå¿ã
ã©ããããããéæ³ã®ããã«æ©èœãããã¹ãŠã®åé¡ã解決ããããšãæåŸ ããŠãæ°ãããœãããŠã§ã¢ãååŸããŠã€ã³ã¹ããŒã«ããããšã¯ã§ããªãããšã¯ããç¥ãããŠããŸãã æ°ãããœãããŠã§ã¢ã®äœ¿çšã¯ããã»ã¹ã§ãã ãŸãããã®èšäºã§ã¯ãç£æ¥éçšã§æ°ãããœãããŠã§ã¢ã䜿çšããããã»ã¹ãã©ã®ããã«ç§ãã¡ã«ãšã£ãŠæçã§ãã£ããã«ã€ããŠã®äŸã説æããŸãã
ãµãŒãã¹æ€åºãšã¯äœã§ããïŒ
ãã質åã§ãïŒ ã¹ãã©ã€ãããŒããã©ã³ãµãŒãæ³åããŠãã ããã æ¯æãã®ãªã¯ãšã¹ããåãåããŸããããã¯APIãµãŒããŒã«ãªãã€ã¬ã¯ãããå¿ èŠããããŸãã ããŒã¹API
æ°åã®ãµãŒããŒãããŸããŸãªãµãŒãã¹ãå®è¡ããŠããŸãã ãããã®ãã¡ãAPIãµãŒããŒã¯ã©ãã§ããïŒ APIãµãŒãã¹ã¯ã©ã®ããŒãã§å®è¡ãããŠããŸããïŒ Amazon Web Servicesã®ãçŽ æŽããããæ©èœã®1ã€ã¯ãã€ã³ã¹ã¿ã³ã¹ããã€ã§ã倱æããå¯èœæ§ãããããšã§ãããã®ãããæºåãå¿ èŠã§ãã
- APIãµãŒããŒã倱ããŸãã
- è¿œå ã®å®¹éãå¿ èŠãªå Žåã¯ãæ°ãããµãŒããŒãæµéã«è¿œå ããŸãã
ãããã¯ãŒã¯ãµãŒãã¹ã®å¯çšæ§ã¹ããŒã¿ã¹ã®å€åã®è¿œè·¡ã¯ããµãŒãã¹æ€åºãšåŒã°ããŸãã ãããè¡ãã«ã¯ã HashiCorpã«ãã£ãŠéçºãããConsulãšããããŒã«ã䜿çšããŸãã
ã€ã³ã¹ã¿ã³ã¹ããã€ã§ã倱æããå¯èœæ§ããããšããäºå®ã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£ãåžžã«å®è¡ãããå®æçã«ã€ã³ã¹ã¿ã³ã¹ã倱ãããã®ãããªç¶æ³ãèªåçã«è§£æ±ºãããããå®éã«éåžžã«åœ¹ç«ã¡ãŸãã ãããã£ãŠãäºæããªãç¶æ³ãçºçããŠããæªãããšã¯äœãèµ·ãããŸããã ããã¯äžè¬çãªããšã§ããã«ãŒãã³ã§ãã ããã«ãé害ãé »ç¹ã«çºçããå Žåãé害ãæ£ãã解決ããã®ãã¯ããã«ç°¡åã§ãã
é äºã®çŽ¹ä»
Consulã¯ããµãŒãã¹ãä»ã®ãµãŒãã¹ãç»é²ããã³æ€çŽ¢ã§ããããã«ãããµãŒãã¹æ€åºããŒã«ã§ãã Consulã¯ç¹å¥ãªã¯ã©ã€ã¢ã³ãã䜿çšããŠãå®è¡äžã®ãµãŒãã¹ã«é¢ããæ å ±ãããŒã¿ããŒã¹ã«æžã蟌ã¿ãŸãããä»ã®ã¯ã©ã€ã¢ã³ããœãããŠã§ã¢ã¯ãã®ããŒã¿ããŒã¹ã䜿çšããŸãã ããã«ã¯å€ãã®ã³ã³ããŒãã³ãããããŸã-äœãæãå ããå¿ èŠããããŸãã
Consulã®æãéèŠãªéšåã¯ããŒã¿ããŒã¹ã§ãã ã api-service㯠IP 10.99.99.99ãããŒã12345ã§å®è¡ãããŠããŸããå©çšå¯èœã§ããããªã©ã®ãšã³ããªãå«ãŸããŠããŸãã
åã ã®è»ãé äºã«èšãïŒãããã«ã¡ã¯ïŒ ããŒã12345ã§APIãµãŒãã¹ãå®è¡ããŠããŸãïŒ ç§ã¯çããŠããïŒã
ãã®åŸãAPIãµãŒãã¹ã«ã¢ã¯ã»ã¹ããå¿ èŠãããå ŽåãConsulã«ãã©ã®apiãµãŒãã¹ãå©çšå¯èœã§ããïŒããšå°ããããšãã§ããŸããããã«å¿ããŠã察å¿ããIPã¢ãã¬ã¹ãšããŒãã®ãªã¹ããè¿ãããŸãã
Consulèªäœãåæ£ã·ã¹ãã ã§ãïŒConsulãå«ãããã€ã§ããã·ã³ã倱ãå¯èœæ§ãããããšã«æ³šæããŠãã ããïŒããããã£ãŠãããŒã¿ããŒã¹ãåæç¶æ ã«ä¿ã€ããã«ãConsulã¯RaftãšåŒã°ããã³ã³ã»ã³ãµã¹ã¢ã«ãŽãªãºã ã䜿çšããŸãã
Consul ã§ã®ã³ã³ã»ã³ãµã¹æ§ç¯ã«ã€ããŠã¯ã ãã¡ããã芧ãã ãã ã
ã¹ãã©ã€ãã®é äºïŒã¯ããã«
æåã®æ®µéã§ã¯ãConsulã¯ã©ã€ã¢ã³ããæèŒããããã·ã³ããµãŒããŒãžã®å¯çšæ§ã«é¢ããã¬ããŒããäœæããæ§æã«éå®ããŸããã ãã®æ å ±ã¯ããµãŒãã¹ã®æ€åºã«ã¯äœ¿çšãããŸããã§ããã ãã®ãããªã·ã¹ãã ãã»ããã¢ããããããã«ã Puppetæ§æãäœæããŸããããããã»ã©é£ãããªãããšãããããŸããïŒ
ãã®ãããConsulã¯ã©ã€ã¢ã³ãã®æœåšçãªåé¡ãç¹å®ããæ°åå°ã®ãã·ã³ã§äœ¿çšããçµéšãç©ãããšãã§ããŸããã åæ段éã§ã¯ãConsulã䜿çšããŠãµãŒãã¹ãçºèŠããŸããã§ããã
ããã§äœãééã£ãŠããã®ã§ããããïŒ
ã¡ã¢ãªãªãŒã¯
ã€ã³ãã©ã¹ãã©ã¯ãã£ã®ãã¹ãŠã®ãã·ã³ã«äœããã®ãœãããŠã§ã¢ãé 眮ãããšãééããªãåé¡ãçºçããå¯èœæ§ããããŸãã ã»ãŒããã«ãConsulçµ±èšã©ã€ãã©ãªã§ã¡ã¢ãªãªãŒã¯ãçºçããŸããã ãã·ã³ã®1ã€ã100 MBãè¶ ããRAMãå æããæ¶è²»éãå¢å ããŠããããšã«æ°ä»ããŸããã æ¬ ç¹ã¯Consulã®ééãã§ããã ä¿®æ£ããŸãã ã
100 MBã¯å°ããªãªãŒã¯ã§ãããæ¥éã«å¢å ããŠããŸãã äžè¬ã«ãã¡ã¢ãªãªãŒã¯ã¯æ·±å»ãªå±éºããããããŸããã¡ã¢ãªãªãŒã¯ãåå ã§ãå®è¡äžã®ãã·ã³ãå®å šã«éº»çºãããããšãã§ããããã»ã¹ã¯1ã€ã ãã ããã§ãã
ãšãŠãè¯ãã®ã§ãæåããConsulã䜿çšããŠãµãŒãã¹ãçºèŠããŸããã§ããïŒ ã¡ã¢ãªæ¶è²»ãç£èŠããªãããæåã«Consulãè€æ°ã®ããã«ãµãŒããŒã§åäœãããããšã«ãããæ·±å»ãªåé¡ãåé¿ããã»ãšãã©çã¿ã䌎ããã«èŠã€ãã£ããšã©ãŒãæé€ããããšãã§ããŸããã
Service Discoveryã®éå§
ãµãŒããŒã§Consulãå®è¡ããŠãåé¡ã¯ãªããšç¢ºä¿¡ããŠãããããConsulãããŒãªã³ã°ããã¯ã©ã€ã¢ã³ããè¿œå ãå§ããŸããã ãªã¹ã¯ã軜æžããããã«ã次ã®ããšãè¡ããŸããã
- æåã¯ãéãããç¯å²ã§Consulã䜿çšãå§ããŸããã
- Consulã®åæ¢äžãæ©èœãç¶ããããã«ããã¯ã¢ããã·ã¹ãã ãä¿åããŸããã
çºçããããã€ãã®åé¡ã以äžã«ç€ºããŸãã ããã§ã¯ãConsulã«ã€ããŠæå¥ãèšãã€ããã¯ãããŸããããæ°ãããã¯ãããžãŒã䜿çšãããšãã¯ãã·ã¹ãã ããã£ãããšå±éãã泚æããããšãéåžžã«éèŠã§ããããšã匷調ããããšæããŸãã
èšå€§ãªæ°ã®ã¹ã€ããRaftã Consulã¯ã³ã³ã»ã³ãµã¹ãããã³ã«ã䜿çšããŠããããšãèŠããŠããŸããïŒ Consulã¯ã©ã¹ã¿ãŒå ã®1ã€ã®ãµãŒããŒãããã¹ãŠã®ããŒã¿ããã®ã¯ã©ã¹ã¿ãŒå ã®ä»ã®ãµãŒããŒã«ã³ããŒããŸãã ãã©ã€ããªãµãŒããŒã«ã¯å€ãã®å ¥å/åºåã®åé¡ããããŸããããã£ã¹ã¯ã¯ååã«é«éã§ã¯ãªããConsulã®ãã¹ãŠã®èŠæãæºããæéããªãããããã©ã€ããªãµãŒããŒå šäœãããªãŒãºããŸããã Raftæ°ã¯ããããããã©ã€ããªãµãŒããŒã¯åã³å©çšã§ããŸããïŒããæ°ãããã©ã€ããªãµãŒããŒãéžæãããšããã®æªåŸªç°ãç¹°ãè¿ãããŸããã Consulã¯æ°ãããã©ã€ããªãµãŒããŒã®éžæã«å¿ããã£ãããããŒã¿ããŒã¹ã®æžã蟌ã¿ãšèªã¿åãããããã¯ããŸããïŒäžè²«æ§ã®ããèªã¿åããããã©ã«ãã§èšå®ãããŠããããïŒã
ããŒãžã§ã³0.3ã§ã¯ãSSLã¯å®å šã«å£ããŠããŸããã ããŒãéã§ããŒã¿ãå®å šã«äº€æããããã«ãConsul SSLæ©èœïŒæè¡çã«ã¯TLSïŒã䜿çšããŸããããããã¯æ¬¡ã®ãªãªãŒã¹ã§æ£åžžã«å£ããŸããã ä¿®æ£ããŸããã ããã¯ãã®çš®ã®åé¡ã®äŸã§ãããæ€åºããã®ã¯é£ãããªããæããã¹ãã§ã¯ãããŸããïŒQAãµã€ã¯ã«ã§ã¯ãSSLãå£ããŠããŠãåã«æ°ãããªãªãŒã¹ã«åãæ¿ããªãã£ãããšã«æ°ä»ããŸããïŒããéçºã®åæ段éã«ãããœãããŠã§ã¢ã§ã¯éåžžã«äžè¬çã§ãã
ãªãŒã¯ã«ãŒãã³ã ConsulãªãŒããŒéžæã®äœ¿çšãéå§ããŸãããGoroutineãªãŒã¯ãçºçãããããConsulã¯äœ¿çšå¯èœãªã¡ã¢ãªããã¹ãŠäœ¿ãæãããŸããã ConsulããŒã ã®äººã ããã®åé¡ã®è§£æ±ºã«å€§ãã«å©ããŠãããã®ã§ãããã€ãã®ã¡ã¢ãªãªãŒã¯ïŒæ¢ã«èŠã€ãã£ããã®ã§ã¯ãªãããã§ã«ä»ã®ãã®ïŒãã¯ãªãŒã³ã¢ããããŸããã
ãã¹ãŠã®åé¡ãä¿®æ£ããããšããç§ãã¡ã¯ãã§ã«ã¯ããã«è¯ãäœçœ®ã«ããŸããã ãæåã®Consulã®ã客æ§ãããããã¹ãŠã®çç£äžã®åé¡ãä¿®æ£ããããŸã§ã®éã®ãã¯ãããã¯ã°ã©ãŠã³ãã®äœæ¥ãµã€ã¯ã«ãå®äºããã®ã«1幎匱ããããŸããã
å©çšå¯èœãªãµãŒãã¹ãçºèŠããããã®Consulã®ã¹ã±ãŒãªã³ã°
ãã®ãããConsulã§ããã€ãã®ãšã©ãŒãèŠã€ããŠä¿®æ£ããŸããã ãã¹ãŠããã£ãšè¯ããªãå§ããŸããã ããããæåã«è©±ããã©ã®ã¹ããããèŠããŠããŸããïŒ Consulã«å°ããå ŽæïŒããããã©ã®ãããªçš®é¡ã®ãã·ã³ãapi-serviceã§å©çšã§ããŸããïŒããã®ãããªãªã¯ãšã¹ãã«ã¯å®æçã«åé¡ããããŸãããConsulãµãŒããŒã®å¿çãé ããããŸã£ããå¿çããŸããã§ããã
ããã¯äž»ã«ãã©ããã®åãæ¿ãäžãŸãã¯äžå®å®ãªæéã«çºçããŸããã Consulã¯å³å¯ã«äžè²«æ§ã®ããã¹ãã¬ãŒãžã䜿çšããããããã®å¯çšæ§ã¯ããã®ãããªå¶éã®ãªãã·ã¹ãã ã®å¯çšæ§ãããåžžã«å£ããŸãã ç§ãã¡ã«ãšã£ãŠãæåã¯ç¹ã«å°é£ã§ããã
ç§ãã¡ã¯ãŸã åãæ¿ããŠããã®ã§ãConsulã®ä»äºã®äžæã¯ç§ãã¡ã«ãšã£ãŠéåžžã«èŠçã«ãªããŸããã ãã®ãããªç¶æ³ã§ã¯ãããŒãã³ãŒãã£ã³ã°ãããDNSåã®ã»ããïŒããšãã°ããapibox1ãïŒã«åãæ¿ããŸããã æåã«Consulãå±éãããšãããã®ã¢ãããŒãã¯ããŸãæ©èœããŸããããã¹ã±ãŒãªã³ã°ãšæ¡åŒµã«äŒŽãã次第ã«å®è¡å¯èœæ§ãäœäžããŸããã
é äºã®ãã³ãã¬ãŒã
ConsulããïŒHTTP APIãä»ããŠïŒãµãŒãã¹ã®å¯çšæ§ã«é¢ããæ å ±ãåãåãããšã«é Œãããšã¯ã§ããŸããã§ããã ããããä»ã®ãã¹ãŠã«ãããŠã圌ã¯ç§ãã¡ã«å®å šã«åã£ãŠããŸããïŒ
APIãä»ããã«å©çšå¯èœãªãµãŒãã¹ã«é¢ããæ å ±ãConsulããåãåããããšèããŸããã ãããããããè¡ãæ¹æ³ã¯ïŒ
OKãConsulã¯ååïŒäŸïŒ monkey-srv ïŒãåãã1ã€ä»¥äžã®IPã¢ãã¬ã¹ã«å€æããŸãïŒãããã¯monkey-srvãååšããå ŽæãïŒã å ¥åã§ååãååŸããIPã¢ãã¬ã¹ãè¿ãä»ã®äººãç¥ã£ãŠããŸããïŒ DNSãµãŒããŒïŒ äžè¬çã«ãConsulãDNSãµãŒããŒã«çœ®ãæããŸããã æ¹æ³ã¯æ¬¡ã®ãšããã§ããConsul Templateã¯ãConsulããŒã¿ããŒã¹ã«åºã¥ããŠéçæ§æãã¡ã€ã«ãçæããGoããã°ã©ã ã§ãã
Consulãã³ãã¬ãŒãã䜿çšããŠãConsulãµãŒãã¹ã®DNSã¬ã³ãŒããçæãå§ããŸããã monkey-srvãIP 10.99.99.99ã§å®è¡ãããŠããå ŽåãDNSã¬ã³ãŒããçæããŸããã
monkey-srv.service.consul IN A 10.99.99.99
ã³ãŒãã¯æ¬¡ã®ããã«ãªããŸãã ãŸããããã§ã¯ã Consul Templateã®å®éã®æ§æãèŠã€ããããšãã§ããŸãã ãããã¯ããå°ãè€éã§ãã
{{range service $service.Name}} {{$service.Name}}.service.consul. IN A {{.Address}} {{end}}
ãåŸ ã£ãŠãDNSã¬ã³ãŒãã«ã¯IPã¢ãã¬ã¹ãããããŸããããããŒããå¿ èŠã§ãïŒããšèšãå Žåãããªãã¯çµ¶å¯Ÿã«æ£ããã§ãããïŒ DNS Aã¬ã³ãŒãïŒæãäžè¬çã«èŠãããã¿ã€ãïŒã«ã¯ãIPã¢ãã¬ã¹ã®ã¿ãå«ãŸããŠããŸãã ãã ããDNS SRVã¬ã³ãŒãã«ã¯ããŒããå«ããããšãã§ãããããConsulãã³ãã¬ãŒãã¯SRVã¬ã³ãŒããçæããŸãã
Consulãã³ãã¬ãŒããcronã§60ç§ããšã«å®è¡ããŸãã Consulãã³ãã¬ãŒãã«ã¯ãããã©ã«ãã®ãç£èŠãã¢ãŒãããããŸãããã®ã¢ãŒãã§ã¯ãããŒã¿ããŒã¹ã«æ°ããæ å ±ãå°çãããšãæ§æãã¡ã€ã«ãåžžã«æŽæ°ãããŸãã æåã«è¿œè·¡ã¢ãŒãããªã³ã«ãããšãã圌ã¯ConsulãµãŒããŒã«éå°ãªæ°ã®ãªã¯ãšã¹ããéä¿¡ãããããæåŠããããšã«ããŸããã
ãããã£ãŠãConsulãµãŒããŒã¯äœ¿çšã§ããŸããããå éšDNSãµãŒããŒã«ã¯å¿ èŠãªãã¹ãŠã®ã¬ã³ãŒãããããŸãïŒ ããããæ°é®®ã§ã¯ãªããããããŸããããããã¯å€§äžå€«ã§ãã DNSãµãŒããŒã«ã¯1ã€ã®åªããæ©èœããããŸããããã¯ãæ°ãã倧èŠæš¡ãªåæ£ã¡ã¬ã·ã¹ãã ã§ã¯ãªãããã®æ¯èŒçåçŽãªæ©èœã«ãããçªç¶ã®æ éãèµ·ããã«ãããªããŸãã ã€ãŸããnslookup monkey-srv.service.consulãå®è¡ã ãIPãååŸããŠãæçµçã«APIãµãŒãã¹ã®äœ¿çšãéå§ã§ããŸãã
DNSã¯åå²äžå¯èœãªãæçµçã«äžè²«ããã·ã¹ãã ã§ããããããã£ãã·ã¥ãšè€è£œãäœåºŠãè¡ãããšãã§ããŸãïŒ5ã€ã®æšæºDNSãµãŒããŒããããåDNSãµãŒããŒã«ã¯ããŒã«ã«DNSãã£ãã·ã¥ãšä»ã®5ã€ã®æšæºãµãŒããŒã«é¢ããæ å ±ããããŸãïŒã ãããã£ãŠãããã¯ã¢ããDNSã·ã¹ãã ã¯ãå®çŸ©äžãConsulãããã¯ããã«ä¿¡é Œæ§ãé«ããªã£ãŠããŸãã
ããŒããã©ã³ãµãŒãè¿œå ããŠã¹ããŒã¿ã¹ãã§ãã¯ãé«éåãã
ç§ãã¡ã¯ãConsulããã®ããŒã¿ã«åºã¥ããŠ60ç§ããšã«DNSã¬ã³ãŒããæŽæ°ããããšã«ã€ããŠè©±ããŸããã ã§ã¯ãAPIãµãŒããŒã倱ããšã©ããªããŸããïŒ DNSãæŽæ°ããããŸã§çŽ45ç§éããã®IPã«ãªã¯ãšã¹ããéä¿¡ãç¶ããŸããïŒ ããïŒ ãã®ç©èªã«ã¯ãã1人ã®ããŒããŒã HAProxyãããŸãã
HAProxyã¯ããŒããã©ã³ãµãŒã§ãã é©åãªãã§ãã¯ãèšå®ãããšããªã¯ãšã¹ãã®è»¢éå ã®ãµãŒãã¹ã®ã¹ããŒã¿ã¹ãç£èŠã§ããŸãã äºå®äžã®APIãªã¯ãšã¹ãã¯ãã¹ãŠHAProxyãçµç±ããŸãã ä»çµã¿ã¯æ¬¡ã®ãšããã§ãã
- Consulãã³ãã¬ãŒãã¯ã60ç§ããšã«HAProxyæ§æãã¡ã€ã«ãäžæžãããŸãã
- ãããã£ãŠãHAProxyã«ã¯åžžã«ã䜿çšå¯èœãªå éšãµãŒããŒã®ã»ãŒæ£ãããªã¹ãããããŸãã
- ãã·ã³ããªãã©ã€ã³ã«ãªããšãHAProxyã¯ããã«ã€ããŠååã«è¿ éã«åŠç¿ããŸãïŒ2ç§ããšã«ãã§ãã¯ãå®è¡ããŸãïŒã
60ç§ããšã«HAProxyãåèµ·åããããšãããããŸããã ããããããã¯åæã«åæããŠãããšããããšã§ããïŒ ãã åèµ·åäžã«æ¥ç¶ããªã»ãããããªãããã«ãHAProxyã°ã¬ãŒã¹ãã«ãªã¹ã¿ãŒãæ©èœã䜿çšããŸã ã åæã«ãäžå®éã®ãããã¯ãŒã¯ãã©ãã£ãã¯ã倱ããããªã¹ã¯ããããŸãïŒ ãã®èšäºã«ãããš ïŒãããã©ãã£ãã¯ã¯ããã»ã©å€§ãããªãã®ã§ãããåé¡ã«ãªããŸãã
ãµãŒãã¹ã®ã¹ããŒã¿ã¹ããã§ãã¯ããããã«æšæºã®ãšã³ããã€ã³ãã䜿çšããŸãã ã»ãšãã©ãã¹ãŠã®ãµãŒãã¹ã«ã¯ãšã³ããã€ã³ã/ãã«ã¹ãã§ãã¯ãããããã¹ãŠãæ£åžžã«æ©èœããŠããå Žåã¯200ãè¿ããäœãåé¡ãçºçããå Žåã¯ãšã©ãŒãè¿ããŸãã æšæºãæã€ããšã¯éåžžã«éèŠã§ããHAProxyã§ãµãŒãã¹ã¹ããŒã¿ã¹ãã§ãã¯ãç°¡åã«æ§æã§ããããã§ãã
Consulãèœã¡ãå ŽåãHAProxyã®æ§æã¯ããç¡é¢ä¿ã§ãããéåžžã«æ©èœçã§ãã
äžè²«æ§ãå¯çšæ§ã«å€æŽãã
ã¹ããŒãªãŒã泚ææ·±ãèªãã§ãããšãéå§ããã·ã¹ãã ïŒå³å¯ã«äžè²«ããããŒã¿ããŒã¹ã§ããã¹ãŠã®æŽæ°ãä¿èšŒãããŠããïŒããå°çããã·ã¹ãã ïŒãã°ããé ããå¯èœæ§ã®ããDNSãµãŒããŒïŒãšã¯éåžžã«ç°ãªãããšã«æ°ã¥ãããããããŸãã1åã«éãããŸã§ïŒã Consulã®äœæ¥ã®äžæã¯ããµãŒãã¹ãæ€åºããèœåã«å®è³ªçã«åœ±é¿ããªããããäžè²«æ§ã®æåŠã«ãããããå¿çæ§ã®é«ãã·ã¹ãã ãäœæã§ããŸããã
æçšãªæèšã¯ããããåŠã¶ããšãã§ããŸãïŒäžè²«æ§ã«ã¯ä»£åã䌎ããŸãïŒ å¯çšæ§ã®é«ãã·ã¹ãã ã«æéãæ¯æãæºåãããå¿ èŠããããŸãã ãŸããå³å¯ãªäžè²«æ§ã䜿çšããå Žåã¯ãå¿ èŠãªããšã確èªããããšãéèŠã§ãã
ãªã¯ãšã¹ããäœæãããšã©ããªããŸãã
ãã®èšäºã§ã¯ããã§ã«å€ãã®ããšã話ããŠããã®ã§ãã©ã®ããã«æ©èœããããç解ããã®ã§ãèŠæ±ãé²ãçµè·¯ãèŠãŠã¿ãŸãããã
https://stripe.com/ããªã¯ãšã¹ããããšã©ããªããŸããïŒ ãã®ãªã¯ãšã¹ãã¯ã©ã®ããã«ããŠé©åãªãµãŒããŒã«å±ããŸããïŒ ä»¥äžã«ãç°¡åãªèª¬æã瀺ããŸãã
- ãŸãããªã¯ãšã¹ãã¯HAProxyãå®è¡ãããŠãããããªãã¯ããŒããã©ã³ãµãŒã®1ã€ã«å±ããŸãã
- Consulãã³ãã¬ãŒãã¯ãstripe.comã«ãµãŒãã¹ãæäŸãããµãŒããŒã®ãªã¹ããæ§æãã¡ã€ã«/etc/haproxy.confã«ãã§ã«æžã蟌ãã§ããŸãã
- HAProxyã¯ã60ç§ããšã«æ§æãåèªã¿èŸŒã¿ããŸãã
- HAProxyã¯ãªã¯ãšã¹ããstripe.comã«è»¢éããå©çšå¯èœã§ããããšã確èªããŸãã
å®éã«ã¯ãããã»ã¹ã¯ããã»ã©åçŽã§ã¯ãããŸããïŒè¿œå ã®å±€ããããPCIæšæºã«æºæ ããã·ã¹ãã ããããããStripe APIãªã¯ãšã¹ãã¯ããè€éã§ãïŒããå®è£ ã¯ãã®èšäºã§èª¬æãããŠããã¢ã€ãã¢ã«åŸã£ãŠå®è¡ãããŸãã
ã€ãŸãããµãŒããŒãè¿œå ãŸãã¯åé€ãããšãConsulã¯HAProxyæ§æãã¡ã€ã«ãèªåçã«æŽæ°ããŸãã æã¯äœãããå¿ èŠã¯ãããŸããã
1幎以äžã®å¹³åãªç掻
æ¹åããããµãŒãã¹ãçºèŠããããã®ã¢ãããŒãã«ã¯ãŸã å€ãã®ããšããããŸãã ãããè¡ãã«ã¯ãäœãããç©æ¥µçãªéçºãå¿ èŠã§ãããèšç»ã€ã³ãã©ã¹ãã©ã¯ãã£ãšã¯ãšãªã«ãŒãã£ã³ã°ã€ã³ãã©ã¹ãã©ã¯ãã£ã®çµ±åã®åé¡ããšã¬ã¬ã³ãã«è§£æ±ºããæ©äŒããããŸãã
ããããåçŽãªè§£æ±ºçããã°ãã°æãæ£ãããšå€æãããšããçµè«ã«éããŸããã ãã®èšäºã«èšèŒãããŠããã·ã¹ãã ã¯ã1幎以äžãåé¡ãªã確å®ã«ãµãŒãã¹ãæäŸããŠããŸããã Stripeã¯ãåŠçããããªã¯ãšã¹ãã®æ°ã®ç¹ã§TwitterãFacebookããéåžžã«é ããšããäºå®ã«ãããããããæ倧éã®ä¿¡é Œæ§ãéæããããšããŸãã æãæå©ãªãœãªã¥ãŒã·ã§ã³ã¯é©æ°çã§ã¯ãªããå®å®ããåªãããœãªã¥ãŒã·ã§ã³ã§ããããšããããŸãã