ãã¼ã©ãããã°ãªã¬ã¼2024 for Tech Advent Calendar 2024ã®17æ¥ç®ã®è¨äºã§ãã
Backlogã®ã½ããã¦ã§ã¢ã¨ã³ã¸ãã¢ã®æã§ãã
ãã®è¨äºã§ã¯ãBacklogã®Amazon Aurora MySQL 2 â 3ç§»è¡ã«ä¼´ã£ã¦è¡ã£ãAuroraã¹ãã¬ã¼ã¸ã®æé©åããã®ä»æ¹åã«ã¤ãã¦ããã®å
容ãç´¹ä»ãã¾ãã
ç®æ¬¡
æ¦è¦
Backlogã§ã¯ãµã¼ãã¹ãåããããã®RDBã¨ãã¦ãAmazon Aurora MySQL ã使ç¨ãã¦ãã¾ãã
å¯ç 24æï¼ MySQL 5.1 ãã Aurora ã¸ã®ç§»è¡100æ¥é ã Backlog ç·¨
ãã®Backlogã§ä½¿ç¨ãã¦ããAuroraã®ã¡ã¸ã£ã¼ãã¼ã¸ã§ã³ã«ã¤ãã¦è¿é ãã«ã¼ã°ãªã¼ã³ãããã¤ã«ãã2ç³»ãã3ç³»ã¸ã®ã¢ãããã¼ããè¡ã£ãã®ã§ããããã®éã«é·æéã®ãã¼ãã«ããã¯ãä¼´ãAuroraã¹ãã¬ã¼ã¸æé©åãåæã«è¡ãã¾ããã
èæ¯
縮å°ãããã¦ãã§ããªãè¨å¤§ãªAuroraã¹ãã¬ã¼ã¸å®¹é
Backlogã«ã¯ãã¡ã¤ã«ãæ·»ä»ã§ããããã¤ãã®æ©è½ãããã¾ãããããã¯2024å¹´ç¾å¨ã«ããã¦ã¯S3ãªã©ã«ãã¹ã¦ãã¡ã¤ã«å®ä½ããããã®ã®ãä¸é¨æ©è½ã¯ãã¤ã¦æ´å²ççµç·¯ã«ããDBã«ãã¤ããªãæã£ã¦ãããã¨ãããã¾ããã
DBä¿æã廿¢ããã¤ããªãS3ãªã©ã«éç´ãã対å¿ã以åè¡ãããéã«ã¯å½ç¶DBã®ãã¤ããªãã¯ãªã¢ããã®ã§ãããAuroraã®ã¹ãã¬ã¼ã¸èªåã¹ã±ã¼ãªã³ã°ã¯deleteãupdateã§ã¯é åãéæ¾ãããããã¼ãã«ãtruncateãforce alterãããªãã¨ç¸®å°ããªãã¨ããç¹æ§(â»1)ãããã¾ãããã®å¶ç´ã«ããããã¯ãå
¨ã使ç¨ãã¦ããªãé åãå¤åã«å«ã¾ããAuroraã¹ãã¬ã¼ã¸ã®æéãæãç¶ããªããã°ãªããªãç¶æ
ã«ãªã£ã¦ãã¾ããã
MySQL5.7ããã¯force alterã§ãã£ã¦ããªã³ã©ã¤ã³DDL(â»2)ã使ãããã®ã®ãMySQL5.6以éã«æ°è¨ãããã¯å使ããããã¼ãã«ã§ãªãã¨é©ç¨ãããªãããããããããã£ã¨åããéç¨ããã¦ããBacklogã§ãã®å®¹éã忏ããã«ã¯ã©ããããã¦ãæ°æéãæ°æ¥ã«ããããã¼ãã«ããã¯ã許容ããå¿
è¦ãããã¾ããããã¯SaaSã®é常éç¨ã®ä¸ã§ããã«ã¯ãªããªãã«å³ããå¶ç´ã§ããã¾ããã®ãªã³ã©ã¤ã³DDLã使ç¨ã§ããªãåé¡ã¯add indexã®alter tableãªã©ãåãã§ãã¦ããã®å¶ç´ã«ããã¤ã³ããã¯ã¹è¿½å ãã«ã¸ã¥ã¢ã«ã«æ¤è¨ã§ãããã¼ãã«ãããä¸é¨ã«éããã¦ããã¨ããå¥ã®åé¡ãå«ã¾ãã¦ãã¾ãã
Aurora2 (MyAQL5.7äºæ) ã®EOL対å¿
Backlogã§RDBã¨ãã¦ä½¿ç¨ãã¦ããAurora2 MySQLã®EOLã2024/11ã«è¿«ã£ã¦ãããAurora3 (MyAQL8.0äºæ)ã¸ã®ç§»è¡ãå¿ è¦ã¨ãªã£ã¦ãã¾ãããAWSããããã¼ã¸ããªãã«ã¼ã°ãªã¼ã³ãããã¤ãæä¾ããã¦ãããå ¬å¼ã§ã¯ã¡ãªãããå¤ããã®ç§»è¡ææ³ãæ¨å¥¨ããã¦ããã®ã§ãããBacklogã§ã¯ã¢ã¼ããã¯ãã£ã®é½åä¸äº«åãã§ããªãã¡ãªãã(æ©è½)ããç¡è¦ã§ããªãå¶ç´çããããä»£æ¿ææ®µã¨ãã¦
- ã¢ããªã®åèµ·åã¯è¡ãããµã¼ãã¹ã¨ãã¦ã¯åæ¢ã¡ã³ãã¨ãã
- ï¼ãã«ã¼ã°ãªã¼ã³ãããã¤ãè£å´ã§è¡ã£ã¦ããï¼ãã¤ããªãã°ã«ããã¯ã©ã¹ã¿éã¬ããªã±ã¼ã·ã§ã³ãããã¥ã¢ã«ã«æ§ç¯ããå®éã®ã¢ãããã¼ãã¯in-placeã¨ãã
ã¨ãã£ãç§»è¡æ¹æ³ãæ¡ç¨ãã¾ãããï¼ä¾¿å®ä¸ä»¥ä¸ããã«ã¼ã»ã°ãªã¼ã³ã¨ãã£ãå¼ç§°ãç¨ãã¾ãããä¸è¬åè©ã¨ãã¦ã®æ±ãã§ããAWSæä¾ã®ããã¼ã¸ããªç§»è¡ææ³ã¨ã¯é¢ä¿ããªããã¨ããçæãã ãããï¼
çºæ¡ã»è¨ç»
ãã¤ããªãã°ã®ç¹æ§ãå©ç¨
ãã¤ããªãã°ã«ãã£ã¦ã¯ã©ã¹ã¿éã¬ããªã±ã¼ã·ã§ã³ãè¡ããããã°ãªã¼ã³å´ã§èªååãè¾¼ã¿ãããæ¸ãè¾¼ã¿ãã°ã¨ã®éã«çç¾ãçºçããªãç¯å²ã«ããã¦ã¯ä¸è¨ã®ãããªæä½ããã«ã¼ã¯ãã®ã¾ã¾ã«ã°ãªã¼ã³ã«å¯¾ãã¦ã®ã¿ã§ãé©ç¨å¯è½ã§ãã
- ãã¼ãã«ã®å使ï¼optimize tableï¼
- ã¤ã³ããã¯ã¹ä½æ
ããã¦ããAuroraã¹ãã¬ã¼ã¸æéã®åæ¸ãè¡ãããã¨èãã¦ããBacklogã§ããä»åç§éã®ãã¼ã ãæ å½ããAurora3ç§»è¡ã«ä¼´ããã«ã¼ã°ãªã¼ã³ãããã¤(æå)ã¯å¥½æ©ã ã¨èããDBã¢ãããã¼ã使¥ã®è£å´ã§ã°ãªã¼ã³ç°å¢ã«å¯¾ãã¦ãã¤ããªã®æ®éª¸ãæ®ããã¼ãã«ã®optimizeãè¡ããã¨ã«ãã¾ãããã¾ãèæ¯ã®ã»ã¯ã·ã§ã³ã§è§¦ããã¨ããä»å¾ã®ã¤ã³ããã¯ã¹è¿½å ãããããã§éå£ãé¤å»ããã¨ããæå³ã§ããã¤ããªãå«ã¾ãªãä»ã®ãã¼ãã«ãå¤ãoptimize対象ã«å«ããå½¢ã§è¨ç»ãç«ã¦ã¾ããã
ã¡ã³ããã³ã¹ã¹ã±ã¸ã¥ã¼ã«
optimizeã«ã¯éå¸¸ã«æéãããããããä»åã®ã¢ãããã¼ãã§ã¯ã°ãªã¼ã³ç°å¢ã®ç«ã¡ä¸ããã§ãããåä½ç¢ºèªããã®ã¡éããã«ãã«ã¼ããåãæ¿ãâ¦ã¨ããããã«ã¯ããã¾ãããã°ãªã¼ã³ãoptimizeã«ããå®è³ªãããã¯ããã¦ããæéãèæ ®ããããã§åæ¢ã¡ã³ãã¨ã°ãªã¼ã³ç°å¢ç«ã¡ä¸ãã®ã¿ã¤ãã³ã°ãè¨ç»ããå¿ è¦ãããã¾ããã¾ãBacklogã§ã¯è¤æ°ã®éç¨ç°å¢ãããåããã¦ãããã¨ã«ããé害ã®å±éåãå容ã¦ã¼ã¶ã¼ã®èª¿æ´ãå³ã£ã¦ãããããåç°å¢ã«å¯¾ãã対å¿ã®ææããã©ããã¨ãã§ããã¨ãã¹ãã§ããä¸è¨ãå å³ãã¦ã¹ã±ã¸ã¥ã¼ã«ãçå®ãã¾ããã詳細ã¯å²æãã¾ãããä¸è¨ã®ãããªã¹ã±ã¸ã¥ã¼ã«æã§ããåæã«åæ¢ã¡ã³ããè¡ãããã®è£ã§å¥ç°å¢ã®æé©åã®ã¹ã¯ãªããã伿¥ã®éå®è¡ããç¶ãããããªæµãã«ãªãã¾ãã鱿ãã«ã¹ã¯ãªããã®å®äºã確èªãã¦ã¢ãããã¼ãã¨ã¬ããªã±ã¼ã·ã§ã³ãè¡ãã¾ãã
ãã£ã¦ã¿ãçµæ
ãã¼ãã«ã®optimizeã«ããã£ãæé
ä¸å³ã§ãç°å¢X Optimizeãã¨æ¸ãããç®æã®ã¿ã®æè¦æéã§ããåææ¥ã®åãæ¿ãã®ããã®åæ¢ã¡ã³ãã®æéçã¯å«ã¿ã¾ããã
- æãOptimizeã®æéãé·ãã£ãç°å¢ ⦠2 æ¥ 10 æé 12 å
- æãOptimizeã®æéãçãã£ãç°å¢ ⦠26å
- å ¨ç°å¢åè¨(8ç°å¢) ⦠8æ¥ 21 æé 48å
å ¨ä½çã«Auroraã¹ãã¬ã¼ã¸ã®å®¹éã¨Optimizeæè¦æéã¨ã®éã«ã¯ç·©ãæ¯ä¾é¢ä¿ãè¦ããã¾ããããæãæéãããã£ãç°å¢ã¯
- æãã¬ã³ã¼ãæ°ãå¤ã
- ãã¼ã¿éã¯8ç°å¢ä¸2çªç®ã«å¤§ããç°å¢
ã¨ãªãã¾ããããã¼ã¿éã®ã¿ãªãããã¼ã¿ä»¶æ°ãå°ãªãããé¢ä¿ãã¦ããããã§ãã
忏容éï¼æ¦ç®ï¼
VolumeBytesUsed å ¨ç°å¢åè¨ â¦ 89.2TB => 16.5TB
åæ¸è²»ç¨
詳細ãããã«æ¸ããã¨ã¯ã§ãã¾ããããã¯ã©ã¹ã¿ã¹ãã¬ã¼ã¸ã ãã§USD 0.12/GB/æã®å価ã§73TBã®åæ¸(=>ç´$8,900/æ)ãã§ããããã«ããã¯ã¢ããã®ã¹ãã¬ã¼ã¸ãUSD 0.023/GB/æã¨ã¤ã³ã¹ã¿ã³ã¹ã®ã¹ãã¬ã¼ã¸ã«æ¯ã¹ãã¨å°ãªãã§ããä¸ä»£æ°ãå¤ãã¨ãããªãã®ãé¡ãããã£ã¦ããã®ãã¯ã©ã¹ã¿ã¹ãã¬ã¼ã¸ã¨åçã®æ¸å°éã§ãã£ããããç·è²»ç¨ã¨ãã¦ãããªãã®åæ¸ã¨ãªãã¾ããã
ã¤ãã§ã«ãã£ããã¨
ç´è¿ã§ã¹ãã¼ã¯ã¨ãªã観測ããã¦ããä¸é¨ã®ãã¼ãã«ã«ã©ã ã«ã¤ã³ããã¯ã¹è¿½å
optimizeã®å¾ã®alter tableã§ãããããã£ã¦ãªã³ã©ã¤ã³DDLãå©ç¨å¯è½ã«ãªãã®ã§ããããæå³ã§ã¯å¾æ¥å¯¾å¿ã§ãããã®ã§ããã
- ãµã¼ãã¹ç¡åæ¢ã§ã®ãªã³ã©ã¤ã³DDLã§ãã¡ã¿ãã¼ã¿ããã¯ã«ããå½è©²ãã¼ãã«ã¸ã®ã¢ã¯ã»ã¹ç¬æãããããã®ã§ãã°ãªã¼ã³ç°å¢ã«å¯¾ãã¦å®æ½ã§ããä»ã®ãã£ã³ã¹ã§ããã®ã¯æªããªã
- å¦çã®æè¦æéã対å¿å·¥æ°ãåæ¡ããã¨ä»åã®å¯¾å¿ã¹ã³ã¼ãã«æ··ãè¾¼ãã§ããªã¹ã¯ã¯å¤§å·®ãªãã¨ãã¼ã ã§å¤æãã
ã¨ãã£ãçç±ãã宿½ãã¾ãããã¨ã¯è¨ããã®ã®ãªã³ã©ã¤ã³DDLã«ããä»å¾ããªãã®å±é¢ã§ç¡åæ¢ã鏿ã§ããããã«ãªãã®ã§ãMySQLã®é²åã¯ããããããªã¨æãã¾ãã
å¾ãããææã¨ãã¦ã¯ãæ°ä¸ä»¶ã®èª²é¡ãæããããã¸ã§ã¯ãã®ããã¸ã§ã¯ããã¼ã ã§å ´åã«ãã£ã¦æ°åç§ã»ã©æç»ã«ãããã±ã¼ã¹ããã£ãã¨ãããé·ãã¦ãæ°ç§ç¨åº¦ã«ç縮ãããã¨ãã§ãã¾ããã
ã¤ã³ã¹ã¿ã³ã¹ã¿ã¤ãã®ä¸ä»£ã夿´
åä¸ãµã¤ãºã§r5âr6gãr7gã«å¤æ´ãã¾ãããã°ãªã¼ã³ç°å¢ãGravitonã¤ã³ã¹ã¿ã³ã¹ã«ã¦ç«ã¡ä¸ããå¾ã«åãæ¿ããå½¢ã«ãªãã¾ãããã¼ã¿,ã¯ã¨ãªã®ç¶æ³ãçç®ããææ¨ã«ãããã¾ãããAASã ã¨10ã20%ç¨åº¦ã®æ¹åãè¦ããã¾ããã
ææ³
ä»åã®ã¢ãããã¼ãã§ã¯åã«ãã¼ã¸ã§ã³ãä¸ããã®ã¿ãªããããã®ä¸ã§ããã¯ã»ã¹ãã¬ã¼ã¸ãªã©ã®å¶ç´ã縫ããªããããã¤ãã®æ¹åãè¡ããã¨ã§ãã¼ã ãBacklogå ¨ä½ã¨ãã¦ãå¤ãã®ãã¬ãã¸èç©ãã§ãã¾ãããä»å¾ãæè¡çè² åµã®è§£æ¶ãå«ãæ§ã ãªæ¹åã宿½ããã¦ã¼ã¶ã¼ã«ã¨ã£ã¦ä½¿ããããBacklogãä½ã£ã¦ããããã¨æãã¾ãã
â»1 ãªãinsertçãã¼ã¿è¿½å ã«ããã¦ã¯ããã©ã¼ãã³ã¹ã«å½±é¿ãä¸ããç¡æ¡ä»¶ã«æ¡å¼µããã¾ã
â»2 ããã¯ã°ã©ã¦ã³ãã§æé»çã«ã³ãã¼ã使ãããç®çã®å¦çãã³ãã¼ã«å¯¾ãã¦é©ç¨å®äºããã¾ã§ã¯æ´æ°ãããã«ã©ã¤ããããä»çµã¿ãALTERã§ããã¼ãã«ããã¯ããããããæ¸å¿µç¹ã¯ä¸»ã«æ°æ§ã¹ã¤ããã³ã°æã®ã¡ã¿ãã¼ã¿ããã¯ã¨I/Oå¢å ã®ã¿ã«çµãããããç¡åæ¢ã¡ã³ããã³ã¹ãæ¤è¨å¯è½ã«ãªãã¾ãã