IVRyã®SREã®åãçµã¿ 2022å€(åŸç·š)
ããã«ã¡ã¯ãIVRy ã®ãšã³ãžãã¢ã® yuri ( @yuri_ivry ) ã§ãã
ãã®èšäºã¯ããIVRyã®SREã®åãçµã¿ 2022å€ãã®åŸç·šã§ããåç·šã«ç¶ãã7æã«ãªãªãŒã¹ãã IVRy ã® SRE çãªåãçµã¿ã®äžããããã€ãã玹ä»ããŸãã
â» åç·šã¯ãã¡ãã§ãã
ãåæžã
<åç·š>
- éããã¯ãšãªãç¹å®ããindex ã貌ã
- ç£èŠã¢ãã¿ãªã³ã°ã®æŽå
<åŸç·š(ãã®èšäºã§ã)>
- DBã®ãªãŒãã¬ããªã«ã®å°å ¥
- ãã£ãã·ãã£ãã©ã³ãã³ã°
- ã³ã¢æ©èœã®åé¢
ãã®3: DBã®ãªãŒãã¬ããªã«ã®å°å ¥
èæ¯
ç¹å®ã®ã¯ã©ã€ã¢ã³ãããã°ã€ã³ãããš IVRy å šäœã®è² è·ãããã£ãŠããŸãç¶æ ã«ãªã£ãŠããŸããã
æ ¹æ¬çã«ã¯é話ãå€ãã¯ã©ã€ã¢ã³ãã«ãããŠããã®1ãã§åãäžããã¯ãšãªãæªããããŠãããåè¿°ã®å¯Ÿå¿ã§æ¹åããŸããã
æ ¹æ¬çãªåå ãšããŠã¯ã·ã³ãã«ã§ãæ€çŽ¢ã§åç §ããŠããããŒãã«ã®ã«ã©ã ã« index ã貌ãããŠããŸããã§ãã
IVRyã®SREã®åãçµã¿ 2022å€(åç·š) ãã
ãã ãç¹å®ã®(åç §)ã¯ãšãªã®ããã©ãŒãã³ã¹ã«ãã IVRy ã®å šãŠã®æ©èœã圱é¿ãåããŠããŸãæ§é ãè¯ããªãããããã®éšåã«ã€ããŠãèŠçŽããè¡ãããšã«ããŸããã
察å¿
RDS ã®ãªãŒãã¬ããªã«ãäœæããåç §ç³»ã®ã¯ãšãªã¯ãªãŒãã¬ããªã«ã§åŠçããããã«ã¢ããªã±ãŒã·ã§ã³ãä¿®æ£ããŸããã
åŸæ¥ãããªãŒãã¬ããªã«ã«é¢ããè°è«ã¯è¡ãããŠããŸããããåçŽã«ã€ã³ãã©ã³ã¹ã(ã®ãã¡å€§ããªå²åãå ãã DB ã®ã³ã¹ã)ãé«ããªããããåæã®ãã¡ã¯å©çšããŠããŸããã§ããã
ãŠãŒã¶ãå¢ããŠããŠãããããã䟡å€ãé«ãŸã£ãŠããã¿ã€ãã³ã°ã ãããšä»å倿ããŸããã
<äœè«>
ãããé¡ã«å¯ŸããŠä»¥åã®çµè«ãšã¯ç°ãªãçµè«ãåºãããšã¯ãæææ±ºå®ã®ããã®èæ¯ãæ¡ä»¶ãå€åããã¹ããŒããéãã¹ã¿ãŒãã¢ããã§ã¯ããããããšã ãšæã£ãŠããŸãã
IVRy ã§ã¯ããããã£ãå¶çŽæ¡ä»¶ã®å€åãé©åã«æããçµè«ãå€åããããšã«å¯ŸããŠãå
šå¡ã§å
±éèªèãæã¡ç¶ããŠããããšã倧åã«ããŠããŸãã
é話äŒé¡ã
Rails ã§ã®ãªãŒãã¬ããªã«ã®å©çšã¯äžèšã®èšäºãåèã«è¡ããŸããããªããã³ãã¯ã·ã§ã³ã®åãæ¿ãã«ã€ããŠã¯æ€èšŒç°å¢ã§ããŸãåãæ¿ãããªãã±ãŒã¹ããã£ãããšããããçŸç¶ã¯èªååãæ¿ãã§ã¯ãªã controller å ã§åå¥ã«æå®ãã圢ã«ããŠããŸãã
ãã¡ãã®ãªãªãŒã¹ã«ã€ããŠã®æžå¿µã¯ãã¬ããªã±ãŒã·ã§ã³ã«ãããæéãšããã®éã® master ã€ã³ã¹ã¿ã³ã¹ã®ããã©ãŒãã³ã¹å£åã§ããã
åè
ã«ã€ããŠã¯æ€èšŒç°å¢ã§10åçšåºŠã§ããããšãããã£ãŠãããåŸè
ã«ã€ããŠã¯ã¡ã¢ãªã®äœ¿çšéãé«ãŸãããšããããšããã£ãŠããŸããã
ãã®äºåæ
å ±ãå
ã«ããªãã¹ãé話éã®å°ãªãæé垯ã«ãªãªãŒã¹ã宿œããããšãšãããµãŒãã¹ã€ã³ããªãã圱é¿ã極å°åãããŸããã
ãã®4: ãã£ãã·ãã£ãã©ã³ãã³ã°
èæ¯
IVRy ã®ããŒã¯ã¿ã€ã ã¯é話ãå¢ãã AM 9æ~10æé ãªã®ã§ããããã®ããŒã¯ã¿ã€ã ååŸã§ ECS ã®ã¡ã¢ãªã CPU ã®ã¢ã©ãŒããéç¥ãããããšã飿¥ç¶ããŠããŸããã

ãšãã1æ¥ã® IVRy ãžã®åã·ã¹ãã ãžã®ãªã¯ãšã¹ãæ°ã®ãã¬ã³ã
調æ»ãšåå
ã¹ã¿ãŒãã¢ããåæããããããšã¯æãã®ã§ãããäžèšã®ãããªç¶æ ã«ãªã£ãŠããŸããã
- Rails ã® Web ãµãŒããšããŠå©çšããŠãã Puma ã®èšå®å€ãããã©ã«ãã®ãã
- ECS ã¿ã¹ã¯ã®ãµã€ãºãæ°ãåæã«èšå®ãããã®ã®ãã
- RDS ã®ã€ã³ã¹ã¿ã³ã¹ã¿ã€ããåæã«èšå®ãããã
ãã€ãã¯èŠçŽããªãããšããæãã¯ãã£ããã®ã®ãåé¡ãªããµãŒãã¹ãåããŠããç¶æ ãé·ããç¶ããŠãããããæ°ããæ©èœè¿œå ãªã©ä»ã®å¯Ÿå¿ãåªå ããŠå®æœããŠããŠããŸããã
察å¿
çŸç¶ã®ã¡ããªã¯ã¹ãããšã«ãæçŽã«èŠçŽãããããŠãããŸããã
-
Puma ã®èšå®ã®èŠçŽã
- åŒç€ŸãšäŒŒãæ§æã§ãã€ãã©ã¡ãŒã¿ãã©ã®ããã«èããããäžå¯§ã«èšèŒãããŠããäžèšã®èšäºãåèãããŠããã ããŸããã
- Amazon ECS+Fargateã§Railsãåããéã®æé©ãªãã©ã¡ãŒã¿ãŒãèããŠã¿ã - ãŠããã¡éçºè ããã°Â https://tech.unifa-e.com/entry/2020/08/28/161733
- äžèšãšåãã㊠DB ã®ã³ãã¯ã·ã§ã³æ°ã®èª¿æŽãªã©ã宿œããŠããŸã
- åŒç€ŸãšäŒŒãæ§æã§ãã€ãã©ã¡ãŒã¿ãã©ã®ããã«èããããäžå¯§ã«èšèŒãããŠããäžèšã®èšäºãåèãããŠããã ããŸããã
-
ECS ã¹ã±ãŒã«ã¢ãŠãã»ã¹ã±ãŒã«ã¢ãã
- Puma ã®èšå®ãšåãããŠã§ãããåºæ¬çã«ã¯1ã¿ã¹ã¯ãå©çšããã + ã¹ã±ãŒã«ã¢ãŠãã«ãããã£ãã·ãã£ã¢ãããšããè·¯ç·ã«ããŸãã
-
RDS ã®ã¹ã±ãŒã«ã¢ãã
- 倧ããªå£°ã§ã¯èšããªãã®ã§ãããæ¬çªã§ã T ç³»ã€ã³ã¹ã¿ã³ã¹ãå©çšããŠããã®ãæ¢ããŸããâŠ
- åç·šã§ãè§ŠããéããDB ã®åèµ·åããããåŠçã®ãã宿œã¿ã€ãã³ã°ãã³ãã¥ãã±ãŒã·ã§ã³ã«ã€ããŠã¯çæããŠé²ããŸãã
è² è·ãã¹ãçã宿œããããšã§ããäžé·æçãªãã£ãã·ãã£ãã©ã³ãã³ã°ãè¡ã£ããããªãŒãã¹ã±ãŒãªã³ã°ã®èšå®ãè¡ã£ãããããšãããŸã§ã¯è³ã£ãŠãããããŸã ãŸã 察å¿ã®äœå°ãããããã§ãã
ãã®5: ã³ã¢æ©èœã®åé¢
èæ¯
æ§ã
ãªèŠå ã«ããã·ã¹ãã è² è·ãããã£ãéãIVRy ã®é話ãå«ãå
šãŠã®æ©èœã«åœ±é¿ãåºãŠããŸãããšããããŸããã
èšå®ç»é¢ã«é害ãçºçããå Žåã§ããIVRy ã®ã³ã¢æ©èœã§ããé話ãå©çšã§ããç¶æ
ããªãã¹ãæ
ä¿ã§ããªããããšèããŸããã
IVRy ã¯ãªãªãŒã¹ä»¥éãç¶ç¶çã«æ©èœè¿œå ã宿œããŠããŸããã
ããŸæç¹ã§ IVRy ãæã€æ©èœã®äžã«ã¯ãã¯ã©ã€ã¢ã³ãã®æ¥åãªãã¬ãŒã·ã§ã³ã®èгç¹ããã¿ãŠãµãŒãã¹ã¬ãã«ãæç¢ºã«éããã®ãã§ããŠããŠããŸãã
å
·äœçã«ã¯ããé話ããšãèšå®ãã§ã¯ãµãŒãã¹ã¬ãã«ã倧ããéããŸããããèšå®ãã®äžã§ãé»è©±å±¥æŽã®ç¢ºèªãšã«ãŒã«ã®èšå®ã§ã¯éãããããŸãã
第äžåªå ã§å®ãã¹ãæ©èœã¯ãé話ã ã§ããããèšå®ãã®æ©èœè¿œå ãé²ãã§ããããšããããã·ã¹ãã çã«ãèšå®ããåããããšã«ãã£ãŠãé話ããå ±åããããæ§é ã«ãªã£ãŠããŸããã
察å¿
API ãµãŒãã«ãããŠé話ã«é¢é£ãã API ãšããã§ãªã API ãå¥ã
ã® ECS ã§åŠçããããã«ããŸããã
ãããã Bulkhead Pattern ã«ãªãããšæããŸãã
å
·äœçã«ã¯ã ECS ã®ã¿ãŒã²ããã°ã«ãŒããé話é¢é£ãšãã以å€ã®2ã€ã«åå²ããALB ãã path ããŒã¹ã§åŠçããã¿ãŒã²ããã°ã«ãŒããæå®ããããã«ããŸããã
ãŸããããã³ãåŽã®åŠçãèŠçŽããé話ã«å¿
é ã§ã¯ãªãåŠçãçä¿¡ãçºä¿¡ãšãã£ãé話æ©èœããããã¯ããããšããªãããã«ããŸããã

瀟å
ã® LT äŒã§ãããã®åçµãå
±æãããšãã«äœ¿ã£ããè¶
ç°¡ç¥åããå³è§£
ããã«ãããäŸãã°èšå®ç»é¢ã§ã¢ããªã±ãŒã·ã§ã³ã¬ãã«ã®è² è·ãé«ãŸã£ãéã«ããé話æ©èœéšåã¯åœ±é¿ãåãã«ããç¶æ
ãäœãããšãã§ããŸããã
ãã¡ããããŒã¿ããŒã¹ã¯1ã€ãªã®ã§ãè² è·ã®å
容次第ã§ã¯å®å
šã§ã¯ãããŸããããäžå®ã®å¹æãèŠèŸŒãããšèŠèŸŒãã§ããŸãã
ãŸãšã
IVRy ã¯é»è©±èªåå¿çã® SaaS ã§ãããæéåž¯ãææ¥çã®ç·©æ¥ç¡ããµãŒãã¹ã¬ãã«ãé«ãä¿ã¡ç¶ããããšãæ±ããããŸãã
ãµãŒãã¹ã¬ãã«ã®åäžãšããã®ã¯ç°¡åã§ã¯ãªãããããªãããã®ã¯åœç¶ãšããŠããããããŠããŸãããšããŸããµãŒãã¹æé·ã劚ããŠããŸããã®ã§ãã
é©åãªãµãŒãã¹ã¬ãã«ãç®æããŠããããã«ã¯ãèªåãã¡ã®ãµãŒãã¹ã®çŸç¶ãå°æ¥ã®æ§åããµãŒãã¹ç¹æ§ãã¯ã©ã€ã¢ã³ãã®æ¥åçè§£ãæ·±ããããšãå¿
èŠäžå¯æ¬ ã ãšæã£ãŠããŸãã
ãŸã ãŸã åºæ¬çãªå¯Ÿå¿ããå§ããŠãããšããã§ã¯ãããŸãããä»åŸããããã®çè§£ãã¿ããªã§æ·±ããªãããç¶ç¶çã«ãµãŒãã¹ã¬ãã«ã®æ¹åã«ç¹ããéçºãè¡ã£ãŠãããŸãã
ãã㪠IVRy ã®éçºã«èå³ãæã£ãŠããã ããæ¹ããã²äžåºŠã話ããŸãããïŒ
IVRy ã¯å¯æ¥ããã§ã倧æè¿ã§ãã
åç·šã¯ãã¡ã:
Discussion