ããŒã¿ããŒã¹ã®ããŒãžã§ã³ã¢ãããã¡ã³ããã³ã¹äœæ¥ã«ãããŠãã·ã¹ãã ã®ããŠã³ã¿ã€ã ãäºæãã¬ãã©ãã«ãžã®å¯Ÿå¿ã«èª²é¡ãæããŠããæ¹ã¯å€ãã®ã§ã¯ãªãã§ããããã
ãäœæ¥äžã«äºæãã¬ãšã©ãŒãèµ·ãããã©ããããã
ãé·æéã®ã·ã¹ãã 忢ïŒããŠã³ã¿ã€ã ïŒã¯æ¥µåé¿ãããã
ãã®ãããªããŒã¿ããŒã¹ç®¡çè ã®èª²é¡ã解決ãã匷åãªæ©èœãšããŠãAWSã¯ãAmazon RDS Blue/Green DeploymentsïŒãã«ãŒã°ãªãŒã³ãããã€ïŒããæäŸããŠããŸãã
æ¬èšäºã§ã¯ãRDS Blue/Greenãããã€ãçšããã¡ãžã£ãŒã¢ããã°ã¬ãŒãäœæ¥ãè€æ°å宿œããç¥èŠãããšã«ãã¡ãªãããéçšäžã®æ³šæç¹ããããŠæ¬çªç°å¢ã§å®è·µã§ããéçšãã€ã³ãã解説ããŸãã
1. éåžžã®ã¢ããã°ã¬ãŒãïŒã€ã³ãã¬ãŒã¹ïŒãšã®éã
ããŒã¿ããŒã¹ã®æŽæ°ææ³ã«ã¯ã倧ããåããŠãã€ã³ãã¬ãŒã¹ã¢ããã°ã¬ãŒãããšãBlue/Green ãããã€ãã®2çš®é¡ãååšããŸãããŸãã¯ãã®2ã€ã®éããæŽçããŸãã
éåžžã®ã¢ããã°ã¬ãŒãïŒã€ã³ãã¬ãŒã¹ã¢ããã°ã¬ãŒãïŒ
çŸåšçšŒåããŠããæ¬çªããŒã¿ããŒã¹ïŒDBïŒã®ã·ã¹ãã ãçŽæ¥æžãæããææ³ã§ããäœæ¥äžã¯ã·ã¹ãã ãå®å šã«åæ¢ããå¿ èŠããããããŒã¿éã«ãã£ãŠã¯æ°ååããæ°æéã®ããŠã³ã¿ã€ã ãçºçããŸãããŸããäžãäžã¢ããã°ã¬ãŒãã«å€±æããå Žåãããã¯ã¢ããããå ã®ç¶æ ã«æ»ãïŒãªã¹ãã¢ããïŒã®ã«ãå€ãã®æéãèŠããŸãã
Blue/Green ãããã€
æ¬çªç°å¢ãšã¯å¥ã«ãå šãåãããŒã¿ãæã€æ°ããç°å¢ãæ§ç¯ããæºåãæŽã£ã段éã§åãå ãäžç¬ã§åãæ¿ããææ³ã§ãã
BlueïŒãã«ãŒïŒïŒçŸåšçšŒåããŠããæ¬çªç°å¢
GreenïŒã°ãªãŒã³ïŒïŒBlueãšå šãåãããŒã¿ãæã€ã³ããŒç°å¢ïŒãã¹ãã»æ°ç°å¢ïŒ
è£åŽã§ã¯BlueããGreenãžåžžã«ææ°ã®ããŒã¿ãåæããç¶ããŸãã管çè ã¯Greenç°å¢ã®ããŒã¿ããŒã¹ãå®å šã«ããŒãžã§ã³ã¢ãããããã¹ãã宿œããäžã§ãä»»æã®ã¿ã€ãã³ã°ã§ãåãæ¿ãïŒã¹ã€ãããªãŒããŒïŒããå®è¡ã§ããŸãã
以äžã«ãäž¡è ã®éããæ¯èŒè¡šãšããŠãŸãšããŸããã
| æ¯èŒé ç® | éåžžã®ã¢ããã°ã¬ãŒãïŒã€ã³ãã¬ãŒã¹ïŒ | RDS Blue/Green ããã〠|
| ç°å¢ã®åé¢ | ãªãïŒçšŒåäžã®ç°å¢ãçŽæ¥å€æŽïŒ |
ããïŒæ¬çªç°å¢ã®ã³ããŒãåé¢ããŠæ§ç¯ïŒ |
| ããŠã³ã¿ã€ã | æ°ååãæ°æé |
éåžž1åæªæº |
| äºåã®åäœãã¹ã | æ¬çªç°å¢ã§ã®ãã¹ãã¯äžå¯ |
æ¬çªããŒã¿ãçšããå®å šãªãã¹ããå¯èœ |
| åãæ»ãïŒããŒã«ããã¯ïŒ | ããã¯ã¢ããããã®åŸ©å ïŒæéããããïŒ |
æ§ç°å¢ãžã®åãæ¿ãïŒè¿ éã«å¯èœïŒ |
| ããŒã¿æå€±ã®ãªã¹ã¯ | 倱ææã«ããŒã¿ã倱ããããªã¹ã¯ãã |
ã¬ãŒãã¬ãŒã«æ©èœã«ããããŒã¿ãã¹ãªã |
| ã³ã¹ã | 远å ã®ã³ã³ãã¥ãŒãããã³ã¹ãã¬ãŒãžã³ã¹ãã¯çºçããªã |
Greenç°å¢ã®ããããžã§ãã³ã°äžãããã¯ã¢ããä¿åã«ãããŠã³ã¹ãã2åã«å¢å |
Â
2. RDS Blue/Green ãããã€ãå©çšãã3ã€ã®ã¡ãªãã
â ããŠã³ã¿ã€ã ããæ¥µå°ïŒ1åæªæºïŒã
åãæ¿ããå®è¡ãããšãAWSãè£åŽã§èªåçã«ããŒã¿ããŒã¹ã®åãå ïŒãšã³ããã€ã³ãïŒãå ¥ãæ¿ããŸããã¢ããªã±ãŒã·ã§ã³ãWebãµãŒããŒåŽã®èšå®ã倿Žããå¿ èŠã¯ãªããéåžžã¯1åæªæºã§ã·ãŒã ã¬ã¹ã«åãæ¿ããå®äºããŸãã
â¡ ããŒã¿ãã¹ã®å¿é ããªã
åãæ¿ãã®ç¬éãAWSã¯ãBlueãšGreenã®ããŒã¿ãå®å šã«äžèŽããŠããããã峿 Œã«ãã§ãã¯ããŸãïŒãããã¹ã€ãããªãŒããŒã»ã¬ãŒãã¬ãŒã«ãšåŒã³ãŸãïŒãããããŒã¿ã®åæã«é ãããã£ãããäœããã®åé¡ããã£ããããå Žåã¯ãåãæ¿ãåŠçãèªåã§ãã£ã³ã»ã«ãããŸãããã®ãããããŒã¿ãæ¬ æãããªã¹ã¯ã極éãŸã§æžããããšãã§ããŸãã
⢠æ¬çªããŒã¿ã䜿ã£ããå®å šãªãã¹ãããã§ãã
Greenç°å¢ã¯æ¬çªç°å¢ãšå šãåãããŒã¿ãæã£ãŠããŸãããã®ããããããŒãžã§ã³ã¢ããåŸã«ã¯ãšãªã®åŠçé床ãèœã¡ãªããããæ°æ©èœã§ãšã©ãŒãåºãªããããšãã£ãããã©ãŒãã³ã¹ãã¹ããããšã³ããŠãŒã¶ãŒã«äžå圱é¿ãäžããããšãªãå®å šã«å®æœã§ããŸãã
3. å©çšããåã«ç¥ã£ãŠããã¹ããèœãšã穎ã
Blue/Green ãããã€ã¯åŒ·åãªæ©èœã§ããããã®ä»çµã¿äžããã€ãã®å¶çŽãååšããŸããããããææ¡ããã«å°å ¥ãããšãæãã¬ãã©ãã«ã«ç¹ããå¯èœæ§ããããŸãã
泚æç¹1ïŒGreenç°å¢ã¯ãèªã¿åãå°çšãã§æžã蟌ã¿ã§ããªã
Greenç°å¢ã¯ãåžžã«Blueç°å¢ããææ°ã®ããŒã¿ãåãåãç¶ãã圹å²ãæã£ãŠããŸããããçŽæ¥Greenã«ããŒã¿ãæžã蟌ãã§ããŸããšãåŸããBlueããåæãããŠããããŒã¿ãšè¡çªããã·ã¹ãã ãç ŽæããŠããŸããŸãããã®ãããGreenç°å¢ã¯åŒ·å¶çã«ãèªã¿åãå°çšïŒæžã蟌ã¿çŠæ¢ïŒãã«èšå®ãããŠããŸãã
ã¢ããªã±ãŒã·ã§ã³ã®åäœç¢ºèªãè¡ãããšããéã«ãšã©ãŒãçºçããå Žåãã¢ããªã±ãŒã·ã§ã³ãè£åŽã§ããŒã¿ã®æžã蟌ã¿ãè¡ãããšããŠããã±ãŒã¹ãã»ãšãã©ã§ãã
泚æç¹2ïŒPostgreSQLã®ãã¡ãžã£ãŒã¢ããã°ã¬ãŒããã«ãããå¶çŽ
PostgreSQLã§ãããŒãžã§ã³14ãã15ãžãã®ãããªã¡ãžã£ãŒã¢ããã°ã¬ãŒãã䌎ãBlue/Greenãããã€ã宿œããå Žåãå éšã®ããŒã¿åææ¹åŒããè«çã¬ããªã±ãŒã·ã§ã³ããšãã仿§ã«å€æŽãããŸãããã®ç¶æ ã§ã¯ã皌åäžã«ããŒãã«ã®æ§é ã倿ŽããïŒåã远å ãããªã©ïŒãšãã£ãæäœãGreenç°å¢ã«åæãããªããªããã¬ããªã±ãŒã·ã§ã³ãç Žæããåå ãšãªããŸãã
4. Blue/Green ãããã€ããåããªããã±ãŒã¹
以äžã®ã±ãŒã¹ã§ã¯ãBlue/Greenãããã€ã®ã¢ãŒããã¯ãã£ãšçžæ§ãæªãããšã©ãŒããã©ãã«ã®åå ãšãªããããåŸæ¥éãã®ã¢ããã°ã¬ãŒããæ€èšããããšããå§ãããŸãã
â WordPressãµã€ãã®æ€èšŒïŒãã°ã€ã³äžå¯ã®åé¡ïŒ
WordPressãçšãããµã€ãã®äºåæ€èšŒã¯ã代衚çãªã¢ã³ããã¿ãŒã³ã®äžã€ã§ããGreenç°å¢ã§WordPressã®ç®¡çè ç»é¢ã«ãã°ã€ã³ããããšãããšãç¡éã«ãŒãã«é¥ããæ¥ç¶ãšã©ãŒãçºçããŸãã
çç±ã¯ãWordPressã®ä»æ§äžã管çè ãã°ã€ã³ç»é¢ããã®ãã°ã€ã³æã«è£åŽã§ããŒã¿ããŒã¹ã«å¯ŸããŠã»ãã·ã§ã³æ å ±ãã¢ã¯ã»ã¹ãã°ããæžã蟌ãããšãããããã§ããåè¿°ã®éãGreenç°å¢ã¯èªã¿åãå°çšã§ããããããã®æžã蟌ã¿åŠçã匟ãããã·ã¹ãã ãæ£åžžã«åäœããŸããã
â¡ ããŒã¿ã®æŽæ°ïŒæžã蟌ã¿ïŒã極ããŠæ¿ããã·ã¹ãã
åžžã«å€§éã®ãã©ã³ã¶ã¯ã·ã§ã³ïŒæžã蟌ã¿ã»æŽæ°åŠçïŒãçºçããŠããã·ã¹ãã ã®å ŽåãBlueããGreenãžã®ããŒã¿åæã远ãã€ãããåžžã«ãé å»¶ïŒã©ã°ïŒããçºçããç¶æ ã«ãªããŸããåæã®é å»¶ãè§£æ¶ãããªãéãå®å šè£ 眮ïŒã¬ãŒãã¬ãŒã«ïŒãåãããã€ãŸã§çµã£ãŠãåãæ¿ããå®è¡ããããšãã§ããŸããã
⢠RDS Proxyãå©çšããŠããç°å¢
ããŒã¿ããŒã¹ã®æ¥ç¶ã管çãããAmazon RDS Proxyããå©çšããŠããå ŽåãçŸç¶ã®ä»æ§ã§ã¯ã·ãŒã ã¬ã¹ãªåãæ¿ãããµããŒããããŠããŸãããåãæ¿ãã®åã«äžåºŠProxyã®ã¿ãŒã²ããèšå®ãè§£é€ããåãæ¿ãå®äºåŸã«æ°ããç°å¢ã«å¯ŸããŠå床ç»é²ãçŽããšããæäœæ¥ãå¿ èŠãšãªããçµæãšããŠæ°åçšåºŠã®ããŠã³ã¿ã€ã ãçºçããŸãã
5. æ¬çªå°å ¥ã®ããã®éçšãã¹ããã©ã¯ãã£ã¹
æåŸã«ãå®åã§RDS Blue/Greenãããã€ãæåãããããã®å ·äœçãªéçšãã€ã³ãã玹ä»ããŸãã
â åãæ¿ãã¯ãã¢ã¯ã»ã¹ãå°ãªãæéããçã
åãæ¿ãèªäœã¯1åæªæºã§å®äºããŸããããã®éã¯ããŒã¿ããŒã¹ãžã®éä¿¡ãäžæçã«ãããã¯ãããŸãããŸããç°å¢éã®ããŒã¿åæã®é å»¶ããªããããã«ããå€éãäŒæ¥ãªã©ãã·ã¹ãã ãžã®ã¢ã¯ã»ã¹ãæãèœã¡çããŠããæé垯ã«å®è¡ããŠãã ããã
â¡ PostgreSQLã¯åãæ¿ãçŽåŸã«ãANALYZEããå®è¡ãã
PostgreSQLã§ã¡ãžã£ãŒã¢ããã°ã¬ãŒãã宿œããå ŽåãããŒã¿ããŒã¹ãã¯ãšãªã®å®è¡èšç»ãç«ãŠãããã«äœ¿çšãããçµ±èšæ
å ±ãããªã»ãããããŠããŸããŸããåãæ¿ãçŽåŸã«ããã©ãŒãã³ã¹ã極端ã«äœäžããã®ãé²ããããåãæ¿ãå®äºåŸã¯éããã«æåã§ ANALYZE ã³ãã³ããå®è¡ããçµ±èšæ
å ±ãææ°åããæé ãçµã¿èŸŒãã§ãã ããã
⢠IAMãããã¯ã¢ããã®èšå®ïŒResource IDïŒãèŠçŽã
åãæ¿ãå®äºåŸãããŒã¿ããŒã¹ã®ãååãã¯å ã®ãŸãŸåŒãç¶ãããŸãããè£åŽã§å²ãåœãŠãããŠããã·ã¹ãã åºæã®IDïŒResource IDïŒã¯æ°ããç°å¢ã®ãã®ã«å€æŽãããŠããŸããã¢ã¯ã»ã¹æš©éïŒIAMããªã·ãŒïŒãAWS Backupã®å¯Ÿè±¡ãªãœãŒã¹ãIDã§æå®ããŠããå Žåã¯ãæ°ããIDãžãšå¿ ãæŽæ°ãè¡ã£ãŠãã ããã
⣠å®äºåŸã¯ãå€ãç°å¢ïŒBlueïŒããå¿ ãåé€ãã
åãæ¿ããæåããæ°ããæ¬çªç°å¢ã®çšŒåãå®å®ããããšã確èªããåŸã¯ãäžèŠãšãªã£ãæ§ç°å¢ïŒ-old1 ãªã©ã®ååãä»äžãããŸãïŒãæåã§åé€ããŠãã ãããå€ãç°å¢ãæ®ãããŸãŸã«ãããšãããŒã¿ããŒã¹2å°åã®æéãç¶ç¶ããŠçºçããŠããŸããããã³ã¹ã管çã®èгç¹ã§éåžžã«éèŠã§ãã
ãŸãšã
Amazon RDS Blue/Green Deploymentsã¯ãåŸæ¥ã®ã€ã³ãã¬ãŒã¹ã¢ããã°ã¬ãŒããæ±ããŠããããŠã³ã¿ã€ã ãšããŒã«ããã¯ã®ãªã¹ã¯ã軜æžã§ããæ©èœã§ãã
ãããããGreenç°å¢ã¯èªã¿åãå°çšã§ããããWordPressã®ãããªãã°ã€ã³æã®æžã蟌ã¿åŠçãšã¯çžæ§ãæªãããå€ãç°å¢ãæ¶ãå¿ãããšã³ã¹ããåå¢ããããšãã£ã仿§ãæ£ããçè§£ããŠããããšãäžå¯æ¬ ã§ãã
æ¬èšäºã§ç޹ä»ããç¹æ§ã泚æç¹ãèžãŸãããèªèº«ã®ã·ã¹ãã ã¢ãŒããã¯ãã£ã«åãããå®å šãªããŒã¿ããŒã¹ã®ã¢ããããŒããå®çŸããŠãã ããã