ã¡ãã£ã´ãDiveDeepããAWSã®æé AWS Dev Day 2023 Tokyo 延é·æ¦ å®è·µãã¼ã¿ç§»è¡ ãã¯ã¦ãªãã¤ã¢ãªã¼ãéæ³ã®iããã©ã®äºä¾ã¨å ±ã«ã
ããã«ã¡ã¯ï¼ãµã¼ãã¼ãµã¤ãã¨ã³ã¸ãã¢ã®kurisuã§ãã 2024å¹´06æã«ãB/43ãã¨ã°ãããã£ã¼ã¸ã®è£å´ã§ãµã¼ãã¹æä¾ãã¦ããã ãã¦ããäºæ¥è ã®ç§»è¡ãè¡ãã¾ããããã®éãè¿æ¸ãã¼ã¿ã®ãªã³ã³ãµã¤ã«ãããã®è¨è¨ã¨å®è£ ãæ å½ãã¾ããã å¤é¨ãµã¼ãã¹ã¨ã®ãã¼ã¿é£æºã«ãããä¸æ´åã¯ãå¤ãã®ã·ã¹ãã ã§é¿ããããªãåé¡ã§ãã æ¬è¨äºã§ã¯ãB/43ã®ãã¨ã°ãããã£ã¼ã¸æ©è½ã§ã®äºä¾ããã¨ã«ããªã³ã³ãµã¤ã«ã®éè¦æ§ã¨å®è£ æã®æ¤è¨ãã¤ã³ãããç´¹ä»ãã¾ãã ãªã³ã³ãµã¤ã«ã¨ã¯ å¤é¨ãµã¼ãã¹é£æºã«ããã課é¡ã¨ä¸æ´åã®è¦å 1. èªç¤¾ããå¤é¨ãµã¼ãã¹ã¸ã®éä¿¡ã¨ã©ã¼ 2. Webhookéç¥ã®ä¸éãé 延 å¤é¨ãµã¼ãã¹ã«ããããªã³ã³ãµã¤ã«ãã§ããæ¡ä»¶ ãªã³ã³ãµã¤ã«ãããã®å®è£ æã®æ¤è¨ãã¤ã³ã åæ 1. å¤é¨ãµã¼ãã¹ã¨ã®ãã¼ã¿ã®ä¸æ´åç®æã®æ´ãåºã 2. ãã¼ã¿éã¨å¦çæé/å®è¡é »åº¦ 3. ä¸æ´åæ¤ç¥æã®å¯¾å¿ 4. ã¨
æ¦è¦ DBMS ã§åºãå©ç¨ããã¦ãã B+ tree ã«ã¯æ§ã 㪠variant ãåå¨ããããB-link tree ããã®1ã¤ã ã·ã³ãã«ãªã©ãããããã³ã«ã§ä¸¦è¡ã¢ã¯ã»ã¹ããã°ããããããªã¼ããã¼ã以å¤ã®ãã¼ãã«ãå³ã®é£æ¥ãã¼ãã¸ã®ãã¤ã³ã¿ãæãããæ§é ã¨ãªã£ã¦ãããPostgreSQL ã§ä½¿ããã¦ãããã¨ã§ãæåã ãã®è¨äºã§ã¯ä¸»ã«ãã® B-link tree ã«ç¦ç¹ãå½ã¦ãã B+ tree å ¨è¬ããã®ä»ã¤ã³ããã¯ã¹æè¡èªä½ã«èå³ãããå ´åã¯ãæå¼·DBè¬ç¾© #10 ãã¾ã©ãã®ãã¼ã¿ãã¼ã¹ç´¢å¼æè¡ï¼ç³å·ä½³æ²» ææï¼ãã®è¬ç¾©è³æãèªãã®ãããããã B-link tree ç解ããä¸ã§å¿ é ãªç¥èãã©ããã ãã©ãããã¨ããã®ã¯ããããããã¯ã®ãã¨ã ããDB ã«ããã¦ã¯ãããã¯ãã¨ããã¨ãã©ã³ã¶ã¯ã·ã§ã³åé¢ã®ããã®é«ä¾¡ãª(æ°åCPUãµã¤ã¯ã«ãè¦ãã)å¦çãæããã¨ãå¤ãããã©ãããã¨ãã
ãã®ãã¼ã¸ã§ã¯ PostgreSQL ã®ãã©ã³ã¶ã¯ã·ã§ã³(Transaction)ãMulti Version Concurrency Control(MVCC)ãã¹ãããã·ã§ãã(Snapshot)ã®ä»çµã¿ã説æããã PostgreSQL ã®ä»ã®è¨äºã¸ã®ã¤ã³ããã¯ã¹ã¯ããã æ´æ°å±¥æ´ (2016.04.30) ä½æã (2016.09.16) ãã¼ã¿å®ç¾©è¨èª(DDL)ã®ãã©ã³ã¶ã¯ã·ã§ã³ã追å ã (2016.09.28) ãã¼ã¿å®ç¾©è¨èª(DDL)ã® MVCC ã¢ã³ã»ã¼ãåä½ã追å ã (2017.04.07) Combo Command ID ã®èª¬æãééã£ã¦ããã®ãä¿®æ£ã ç®æ¬¡ 1. ã¯ããã« 2. ãã©ã³ã¶ã¯ã·ã§ã³åé¢ã¬ãã«(Transaction Isolation Level) 3. Serializable 以å¤ã®åé¢ã¬ãã«ã®å®ç¾æ¹æ³ 3.1 ãã©ã³ã¶ã¯ã·ã§ã³ã¨ã¨å¯è¦æ§(Visi
2022å¹´7æ13æ¥ã«ã«ã©ã¼ãã¼ã·ã§ããã§æä¾éå§ãããå¯ç®¡çè æ©è½ãã®ã¢ãããã¼ãã«ããã£ã¦ãå¾åã®æåãå¤ããã«ãã¼ã¿ãã¼ã¹ã¹ãã¼ãã®æ§é ãå¤ããå¿ è¦ãããã¾ãããã¾ãããµã¼ãã¹ã®æä¾ãåæ¢ãããã¨ãªããã¹ãã¼ãã®æ§é ã®å¤æ´ãé²ããå¿ è¦ãããã¾ããã ãã®è¨äºã§ã¯ããµã¼ãã¹ãåæ¢ããã«ãã¼ã¿ãã¼ã¹ã®æ§é ãå¾ã ã«å¤æ´ãããã¼ã¿ãã¼ã¹ãªãã¡ã¯ã¿ãªã³ã°ãã©ã®ããã«é²ãããã«ã¤ãã¦ç´¹ä»ãã¾ãã ããã¼ã¿ãã¼ã¹ãªãã¡ã¯ã¿ãªã³ã°ãã¨ã¯ ãã¼ã¿ãã¼ã¹ãªãã¡ã¯ã¿ãªã³ã°ã«ã¤ãã¦ä½ç³»çã«è¿°ã¹ãæ¸ç±ã¨ãã¦"Refactoring Databases"ãããã¾ãããã®æ¬ã§ã¯ããã¼ã¿ãã¼ã¹ãªãã¡ã¯ã¿ãªã³ã°ã®ãã¾ãã¾ãªãã¿ã¼ã³ã«ããã¦ãã¹ãã¼ãã®å¤æ´ããã¼ã¿ãã¤ã°ã¬ã¼ã·ã§ã³ï¼æ¢åãã¼ã¿ã®ç§»è¡ï¼ãã¢ããªã±ã¼ã·ã§ã³ã®å¤æ´ãããããã©ã®ããã«é²ããã¹ããã«ã¤ãã¦è§£èª¬ãã¦ãã¾ããããã§ã¯ã"Refactoring Dat
ã¯ããã« ãã®è¨äºã¯å®éã®æ¥åã§çºçãã MySQL ã®ãããããã¯ã¨ãã®ããã¤ãã®åé¿æ¹æ³ã対å¿æ¹æ³ãï¼ãã¼ãã¯å¤ãã¦ï¼æå ã§å®è¡ã§ããã³ã¼ããç¨ãã¦è§£èª¬ããè¨äºã§ããå ·ä½çã«ã¯ããã©ã³ã¶ã¯ã·ã§ã³å¼µã£ã¦ããã°å¤§ä¸å¤«ãã¨æã£ã¦ã¾ãããï¼ ãã°ã®æ¸©åºã«ãªããããããå®è£ ãã¿ã¼ã³ã®è¨äºã§ç´¹ä»ããã¦ããã1on1 ãã£ãããµã¼ãã¹ãã§ç´¹ä»ããã¦ãããããããã¯ã¨ãã¼ã¿ãã¼ã¹ã¬ã¤ã¤ã§ã¯åãç¶æ³ã ã£ãã®ã§ãããè¨äºã§ç´¹ä»ããã¦ããæ¹æ³ã¨ã¯å¥ã®æ¹æ³ã§ãããããã¯ãåé¿ããå¿ è¦ããã£ããããåãç¶æ³ã«ééãã人ã®å©ãã«ãªãã°ã¨ããæãã§è¨äºãæ¸ãã¾ãããã¾ãããã¡ãã®è¨äºãç¡ããã°ç§èªèº«ãç¾è±¡ãç解ããã®ã«ãã£ã¨è¦å´ããã¨æãã®ã§ããã®å ´ãåãã¦ã礼ç³ãä¸ãã¾ãï¼ åºéãµã¼ãã¹å±¥æ´ç»é²ãµã¼ãã¹ãä¾ã«èãã ã³ã¼ãã¨èª¬æã https://github.com/shuntagami/withdrawal_
èªè 対象 ããç¨åº¦ãã¼ã¿ãã¼ã¹ã«é¢ããç¥èãæã£ã¦ããï¼çµé¨å¹´æ° 1 年以ä¸ã®ããã¯ã¨ã³ãã¨ã³ã¸ã㢠ç¹å®ã®ããã°ã©ãã³ã°è¨èªã«ä¾åããé¨åã¯å«ããªãããï¼ãã¹ã¦ã® SQL 使ç¨è ã対象ã¨ãã ã¾ãï¼ã¼ãããã®ä¸å¯§ãªèª¬æã¨ããããã¯ï¼ãªãã¡ã¬ã³ã¹æè¦ã§ä½¿ããè¨äºã¨ããå½¢ã«ã¾ã¨ããã RDBMS ã®å¯¾è±¡ãã¼ã¸ã§ã³ PostgreSQL: 9.4 以é MySQL: 8.0.28 以é id ï¼ãã¼ã¿å㨠INSERT æã®ããã©ã«ãåãï¼ å°å ¥ ä¸è¬çã«æ¡ç¨ããããããã©ã¤ããªãã¼ç¨ã®å¤ã¨ãã¦ï¼ä»¥ä¸ãèããã é£çªæ´æ° MySQL ã§ã¯ AUTO_INCREMENTï¼ Postgres ã§ã¯ IDENTITY ã SERIAL ã¨å¼ã°ãããã® UUID v1: ãã¼ãã¦ã§ã¢ãã¨ã«ã¦ãã¼ã¯ãªå調å¢å å¤ UUID v4: ã©ã³ãã å¤ UUID v7ï¼ãã©ããï¼: å調å¢å ã§ããã¿ã¤ã ã¹ã¿ã³ãã¨ã©
MongoDBãæå·åããã¾ã¾ã®ãã¼ã¿ãã¼ã¹ãæ¤ç´¢ãQueryable Encryptionãçºè¡¨ããã¼ã¿æ ¼ç´æãã¡ã¢ãªä¸ããã¼ã¿è»¢éããã°ãããã¯ã¢ããã®ãã¹ã¦ãæå·åãã¼ã¿ã®ã¾ã¾ MongoDBã¯ã6æ7æ¥ãã9æ¥ã«ããã¦ç±³ãã¥ã¼ã¨ã¼ã¯ã§éå¬ãããã¤ãã³ããMongoDB World 2022ãã§ããã¼ã¿ãæå·åããã¾ã¾æ¤ç´¢ã§ããMongoDBã®æ°æ©è½ãQueryable Encryptionããçºè¡¨ãã¾ããã ç¾ä»£ã®ä¸»è¦ãªãã¼ã¿ãã¼ã¹ã§ããã°ããã¼ã¿ãã¼ã¹å ã«ãã¼ã¿ãæå·åãã¦æ ¼ç´ããæ©è½ãåãã¦ãã¾ããããã¼ã¿æ ¼ç´æã«æå·åãã¦æ ¼ç´ãï¼Encryption at Restï¼ãæ¤ç´¢æã«ã¯ã¡ã¢ãªä¸ã§ãã¼ã¿ã復å·ãã¦æä½ããå®è£ ãä¸è¬çã§ãã ä»åã®MongoDBãå®è£ ãçºè¡¨ããQueryable Encryptionã¯ããã¼ã¿æ ¼ç´æã«æå·åããã ãã§ãªãã復å·ãããã¨ãªãæå·åããã¾ã¾
Configuring sql.DB for Better Performance ã¨ããè¨äºãç¥ãã¾ããã ã³ãã¯ã·ã§ã³ãã¼ã«ã®å¤§ãããå¶å¾¡ãã3ã¤ã®è¨å®ãä¸å¯§ã«è§£èª¬ãããã¨ã¦ãè¯ãè¨äºã§ãã ãããããã®è¨äºã§æ¨å¥¨ããã¦ããè¨å®ã«ã¤ãã¦ã¯åæãããã¨ãã§ãã¾ãããç§ãæ¨å¥¨ããè¨å®ã¨ãã®çç±ã解説ãã¦ããããã¨æãã¾ãã Limit ConnMaxLifetime instead of MaxIdleConns Allowing just 1 idle connection to be retained and reused makes a massive difference to this particular benchmark â it cuts the average runtime by about 8 times and reduces memory usage by ab
æ ªå¼ä¼ç¤¾ã©ã¯ã¼ã³ãã¼ã«ãã£ã³ã°ã¹ã®ã¨ã³ã¸ãã¢/ãã¶ã¤ãã¼ããæè¡æ å ±ãã¯ãããä¸ã®ä¸ã®ããã«ãªããã¨ã社å ã®ãã¨ãªã©ãçºä¿¡ãã¦ã¾ãã bashããã©ã¼ãã³ã¹MySQLInnoDBDBè¨è¨ã¤ã³ããã¯ã¹ ããã«ã¡ã¯ã羽山ã§ãã ä»å㯠MySQL ã®ãã©ã¤ããªãã¼ã« UUID ãæ¡ç¨ããå ´åã«èµ·ããããã©ã¼ãã³ã¹ã®åé¡ãä»çµã¿ãã解説ãã¾ãã MySQL(InnoDB) & UUID ã®ããã©ã¼ãã³ã¹ã«ã¤ãã¦ã¯åæã§ããããè°è«ã»æ¤è¨¼ããã¦ãã¾ãããè«ççã«è§£èª¬ããè¨äºãå°ãªãã£ããä¸é¨ã«ã¯èª¤è§£ãæããããªãã®ãããããããã£ããã¨çç±ããç解ããããã®æ å ±ã¨ãã¦å½¹ç«ã¤ãã¨ãã§ããã°ã¨æã£ã¦ãã¾ãã UUID ã¨æ¯è¼ãããå¤ãè¯ãæé /éé ã®ãã©ã¤ããªãã¼ã¯ã¨ããã¨ã MySQL ã® InnoDB ã«ããã¦è¯ãããã©ã¼ãã³ã¹ãåºãããã«ç¸ã®ä¸ã®åæã¡ã®ãããªåãããã¦ããã¦ããã±ã¼ã¹ãå®ã¯å°ãª
æè¿ãMySQLã®ãã©ã¡ã¼ã¿ã®èª¿æ´ãããæ©ä¼ããã£ãã®ã§ãããç¹å®ã®ãã©ã¡ã¼ã¿ãå¤æ´ããéã«ãã¡ã¢ãªã®æ¶è²»éã«ã©ãå½±é¿ããã®ããã¨ããã®ã調æ»ããéã«ãã¤ã³ã¿ã¼ãããã彷徨ã£ãã¨ããããµã¤ãã«ãã£ã¦æ¸ãã¦ãããã¨ã«ãã©ã¤ãããã£ãã®ã§ãèªåã§ãã¾ã¨ãã¦ã¿ããã¨ã«ããã çµè«ããæ¸ãã¨ãåèã«ããã®ã¯ä»¥ä¸ã®ãªã©ã¤ãªã¼ã®æ¸ç±ãMySQLãã©ãã«ã·ã¥ã¼ãã£ã³ã°ãã§ãè¨è¿°ãä¸çªããããããæ¸ããã¦ããã ãã®ã¨ã³ããªã¯ããã®æ¸ç±ã® ã3.9.3 ãªãã·ã§ã³ã®å®å ¨å¤ãè¨ç®ããã ã«ã¦è¨è¼ãããå 容ãã¾ã¨ãããã®ã«ãªãã MySQLãã©ãã«ã·ã¥ã¼ãã£ã³ã° ä½è :Sveta Smirnovaãªã©ã¤ãªã¼ã¸ã£ãã³Amazon èè ã«ã¤ã㦠Sveta Smirnova(ã¹ã´ã§ã¼ã¿ã»ã¹ãã«ãã´ã¡): Oracle社MySQLãµãã¼ãã°ã«ã¼ãã»ãã°æ¤è¨¼ã°ã«ã¼ãã®ä¸»å¸ãã¯ãã«ã«ãµãã¼ãã¨ã³ã¸ãã¢ã¨ãã¦æ¯æ¥MySQ
2021/05/24 ãµã¤ãã¦ãºééç ä¿® åç»ã以ä¸ã®ãµã¤ããããªã³ã¯ããã¦ãã¾ã - https://blog.cybozu.io/entry/2021/07/20/100000 - ããã«ç¢å°ãæ¸ããªãããããããã£ã¦ãããããªã®ã§ãè³æåä½ã ã¨ãããã¥ããã¨æãã¾ãâ¦
GoogleãORMãçæããSQLãé ãã¨ãã®èª¿æ»ã容æã«ãããsqlcommenterãããªã¼ãã³ã½ã¼ã¹ã§å ¬éãRailsãSpringãDjangoãªã©ä¸»è¦ãªãã¬ã¼ã ã¯ã¼ã¯ã«å¯¾å¿ SQLæãç´æ¥æ¸ããªãã¨ããèªåçã«SQLæãçæãå®è¡ãã¦ãããORMï¼Object-Relational Mapperï¼ã¯ãããã°ã©ãã³ã°ã容æã«ãã¦ãããæè¡ã¨ãã¦RailsãHibernateãSpringãªã©ãã¾ãã¾ãªãã¬ã¼ã ã¯ã¼ã¯ãªã©ã§æ´»ç¨ããã¦ãã¾ãã ä¸æ¹ã§ãORMãçæããSQLæã¯ã¨ãã«è¤éã«ããããã¯éå¹çãªãã®ã¨ãªãããã¼ã¿ãã¼ã¹å¦çã®é ãã«ã¤ãªãããã¨ãããã¾ãã ãã®ã¨ããSQLæã®çæã¨å®è¡ãæ示çã«ã³ã¼ãã¨ãã¦è¨è¿°ããå¿ è¦ããªãã¨ããORMã®ç¹å¾´ãããªããã¼ã¿ãã¼ã¹å¦çãé ããªã£ãã®ããã©ã®ãããªSQLæãçæããããã®ã©ãã«åå ãããã®ããã¨ãã£ã調æ»ãé£ããã¦ããé¢ããã
ããã«ã¡ã¯ãã¯ã©ã¦ãéç¨ãã¼ã 㧠SRE ããã¦ãã飯å¡ã§ãã ä»åã¯ãMySQL ã®ã¬ããªã±ã¼ã·ã§ã³æ©è½ãç´10å¹´ãã®éãã£ã¨ä½¿ã£ã¦ããªãã£ãç§ãã¡ããã¬ããªã±ã¼ã·ã§ã³ã使ã£ãé«å¯ç¨æ§æ§æã«ç§»è¡ããããã®åãçµã¿ã®ä¸ã§å¦ãã ãã¨ã«ã¤ãã¦ç´¹ä»ãã¾ãã èæ¯ å·¨å¤§ãªãã¼ãã«ã¸ã® primary key ã®ä»ä¸ ãã©ã³ã¶ã¯ã·ã§ã³ãµã¤ãºã大ããå ´åã«ã¯ tmpdir ã«æ³¨æ mysqldump ã§çµµæåãæ¶ãã¦ããªããè¦ãã§ã㯠mysqldump ã Error 1412: Table definition has changed... ã§å¤±æãã mysqldump ãããã¼ã¿ã®ãªã¹ãã¢ã Duplicate entry 'xxx-yyy-PRIMARY-n_diff_pfx01' for key 'PRIMARY' ã§å¤±æãããã¨ããã mysqldump ãããã¼ã¿ã®ãªã¹ãã¢æã®ãã£ã¹ã¯
IDçæã«ã¤ãã¦èããããã¨ãå¤ãã®ã§ãç¬èªã®è¦³ç¹ã§ã¾ã¨ãã¦ã¿ã¾ããã¿ã¤ãã«ã¯é©å½ã§ãâ¦ã DBã¯MySQL(InnoDB)ãæ³å®ãã¦ãã¾ãããããããã IDçæãç¥ããããªã IDçæã«é¢ãã¦ã¯ä»¥ä¸ã®è¨äºãããã¾ã¨ã¾ã£ã¦ããã®ã§åèã«ãã¦ã¿ã¦ãã ãããå¤å½¢å¼ãªã©è©³ããæ¸ããã¦ãã¾ãã IDçæå¤§å ¨ Facebook, Twitter, Instagramçãã©ããã£ã¦IDãçæãã¦ããã®ã ã¾ã¨ã IDçææ¹æ³ 以ä¸ã®IDçææ¹æ³ã¯ããæ軽ã«æ¡ç¨ãããããã®é ã§åæãã¾ãã DBæ¡çª/é£çªå AUTO_INCREMENT DBã®AUTO_INCREMENTã§æ¡çªããæ¹æ³ã Pros æ°å¤åã§æ±ãã æ®éã¯64ãããã®æ´æ°åãæ¡ç¨ãããã¨ãå¤ã å調å¢å ããé£çªã§ãã®ã§ãã½ã¼ãå¯è½ã§ãã¤ã¤ã³ããã¯ã¹ã®ç©ºéå¹çããã å調å¢å ããã®ã§ããã£ãã·ãã£ãäºæ¸¬ãããã 64ãããããã°ãã¾ãæ°ã«
æ ªå¼ä¼ç¤¾ã©ã¯ã¼ã³ãã¼ã«ãã£ã³ã°ã¹ã®ã¨ã³ã¸ãã¢/ãã¶ã¤ãã¼ããæè¡æ å ±ãã¯ãããä¸ã®ä¸ã®ããã«ãªããã¨ã社å ã®ãã¨ãªã©ãçºä¿¡ãã¦ã¾ãã ããã©ã¼ãã³ã¹åå¼·ä¼Oracleãã¼ã¿ãã¼ã¹MySQLInnoDB ããã«ã¡ã¯ã羽山ã§ããä»åã¯Oracleãã¼ã¿ãã¼ã¹ã®ãã¥ã¼ãã³ã°ã§å°ãè¸ã¿è¾¼ãã å 容ã§ããéä¸ã§æ¯è¼å¯¾è±¡ã¨ãã¦MySQLãç»å ´ãã¾ãã æ¥é ããSQLãã¥ã¼ãã³ã°ã®æ©ä¼ããã£ã¦ãããªãã«å¾æã¨ãã¦ããã®ã«ãããã§ããªããããã©ã¼ãã³ã¹ãã§ãªãSQLã«æ©ãã çµé¨ã¯ããã¾ãããï¼ è¬ã®é ãç¾è±¡ã¯ç¹ã«å¤§è¦æ¨¡ãã¼ã¿ãã¼ã¹ã«ãªã£ã¦ããã¨çºçããã¡ãªã®ã§ãããéãå ´åãé ãå ´åãå¿ ãçç±ãããã¾ããããã§æ¬è¨äºã§ã¯ãã¼ã¿ãã¼ã¹ã®ãã¥ã¼ãã³ã°ã«ããã¦æå¤ã¨è¦è½ã¨ãããã¡ãªãã¼ã¬ãã«ãªé¨åã«çç®ãã¦ãããã«ä¸æ©ä¸ã®ããã©ã¼ãã³ã¹ãã¥ã¼ãã³ã°ã«å¿ è¦ãªç¥èã解説ãã¾ãã ãã®è¨äºãæ¸ããã£ããã¨ãªã£ãã®ã¯ç§ã
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}