
- TOP
- ã¿ã°äžèЧ
- ã»ãã¥ãªãã£
ã»ãã¥ãªãã£
ã€ãã³ã
ãã¬ãžã³
æè¡ããã°
ã¯ããã« ããã«ã¡ã¯ãã¬ãã¬ãžãŒãºæ ªåŒäŒç€Ÿã§æ®æ®µã¯ãšã³ãžãã¢ãããŠããã¹ã¬ãã§ãã ä»åã ãããã¯ãã§ã¹2026å¬ãéå¶å§å¡é· ãåããããŠããã ããŸããã æ¬èšäºã§ã¯ãã¬ãã¬ãžãŒãºã°ã«ãŒãå
šäœã®ãšã³ãžãã¢ãäžå ã«äŒãã ãããã¯ãã§ã¹ 2026 å¬ã ã®æ§åã玹ä»ããŸãã ä»åã®ããã¯ãã§ã¹ã¯ã ã»ãã¥ãªã㣠ã ã軞ã«ã åºèª¿è¬æŒãç·å¢100å以äžãåå ããããã¯ããã«ãã»ãã¥ãªãã£ã«ãŸã€ãããã³ãºãªã³ãã»ãã·ã§ã³ãªã©ãããŸããŸãªã³ã³ãã³ãã宿œããŸããã ç¹ã«ããã¯ããã«ããã³ãºãªã³ã¯ãã»ãã¥ãªãã£å°éããŒã ãäž»å°ããããã¯ãã§ã¹çšã®ãªãªãžãã«ã³ã³ãã³ããšããŠäœæããŸããã ãã®äžæ¥ãéããã»ãã¥ãªãã£ãžã®åŠã³ã»æ¥œããã¯ãã¡ãããæšªãšã®ç¹ããã宿ã§ããå ŽãšãªããŸããïŒ ããã¯ãã§ã¹ãšã¯ ããã¯ãã§ã¹ã¯ãã¬ãã¬ãžãŒãºã°ã«ãŒãã«æå±ãããšã³ãžãã¢ã察象ã«ãå幎ã«äžåºŠéå¬ããã瀟å
æå€§çŽã®æè¡ã€ãã³ãã§ãã ãšã³ãžãã¢ãæ°ããæè¡ã«èå³ãæã¡ãã¿ããªã§åŠã³åãããšãç®çã«ã çµç¹å
šäœã®æè¡åãšäº€æµãé«ãã â瀟å
ã®æè¡ç¥â ãšããŠç¶ããŠããŸãã ãã®ã€ãã³ãã®ç¹åŸŽã¯ã äºæ¥éšã®å£æ ¹ãè¶
ã㊠âæå¿ã®ãšã³ãžãã¢ãã¡â ãèªãéå¶ããŠããããš ã æ®æ®µã¯ç°ãªãéçºããŒã ã«æå±ããã¡ã³ããŒãå
šéšçœ²ããæšªæçã«éãŸããããŒãèšèšããäŒç»ã»åºå ±ã»åœæ¥ã®éå¶ãŸã§ãèªåãã¡ã®æã§äœãäžããŠããŸãã 2026幎2æã«éå¬ããã ã ããã¯ãã§ã¹2026 å¬ ã ã®ããŒãã¯ã ã æ¥æé·ã®ãã®å
ãžãã»ãã¥ãªãã£ã§ä¿¡é Œãšæªæ¥ãåµã ãã ãã®ããŒãã®èæ¯ã«ã¯ãäŒç€ŸãšããŠæ²ããŠãã â1å
åèŠæš¡ã®äŒæ¥ãç®æãâ ãšãã倧ããªç®æšããããŸãã ãã®æªæ¥ãæ¯ãããšã³ãžãã¢çµç¹ãšããŠãæ»ããšå®ãã䞡軞ã«ã次ã®2ã€ã®åŽé¢ããé²åããŠããå¿
èŠããããšèããŸããã â åŠã¶æ©äŒã®åµåº ãªããšãªãèŠææèããã£ãããåŠã¶æ©äŒãä¹ããããšã®ããã»ãã¥ãªãã£ãæšä»ããã¥ãŒã¹ã§ãå€§èŠæš¡ãªã€ã³ã·ãã³ããè€æ°å ±éãããŸããã ããããã®ã¬ãã¬ãžãŒãºã¯1å
åèŠæš¡ã®äŒæ¥ãç®æããŸããã»ãã¥ãªãã£ã®æèã§ãçãããæ©äŒãå¢ããŠããã§ãããã ä»ã ãããããåŠã¶ããšãäžå¯æ¬ ãšæããŸããã ⡠楜ãã¿ãªããåŠã¶ ãããã¯èšã£ãŠãç¥ããªãããšå€ããã ãª...ããšæãæ¹ãããã§ãããã ããã§ãå®ãã ãã§ãªããæ»ãããå£ãããããããšã§ãæ»æè
ã®ç®ç·ãåŠã³ã€ã€ãã¢ã¯ãã£ããã£ãšããŠã®ãã蟌ããæ¥œãããå¿
èŠæ¡ä»¶ã ãšèããŸããã ãããããåŠã³ããããããããªãåŠã³ãããããªæãã§ã³ã³ãã³ããäœã£ãŠãŸãããŸããã ã»ãã¥ãªãã£ãå°éãšãããšã³ãžãã¢ãäžå¿ãšãªã£ãä»åã®ããã¯ãã§ã¹ã¯ãã©ã®ãããªãã®ã«ãªã£ãã®ãïŒ æ©éãã³ã³ãã³ãã®æ§åãèŠãŠãããŸãããïŒ CTFãã¢ããŒãã«ããããã¯ããã« ããã¯ãã§ã¹ã®ç®çã³ã³ãã³ãã§ãã ããã¯ããã« ãä»å¹Žã¯1åæŠã2åæŠã«åããŠå®æœããŸããã 1åæŠ 1åæŠã¯ ãã»ãã¥ãªãã£Ãè¬è§£ãããšåŒã°ããCTF ãå
ã«ãããWebã¢ããªã®è匱æ§ãçªããæ»æè
ã®èŠç¹ããäœéšã§ããããã¯ããã«ãããŸãããã»ãã¥ãªãã£ãå°éãšãããšã³ãžãã¢ç€Ÿå¡ããäœã£ããã®ããã«ã§ã¯ã ã»ãã¥ãªãã£æªçµéšè
ãå«ãçŽ100åãåå ããã·ã¹ãã ã«é ãããè匱æ§ãç¹å®ããå¶éæéå
ã«ã©ãã ãå€ãã®FlagïŒçãïŒãç²åŸã§ããããæçµçãªåèšåŸç¹ãç«¶ãã¯ã€ãºïŒJeopardyïŒåœ¢åŒã§å®æœããŸããã æ¡ç¹ã«ã¯ãæ£è§£è
æ°ã«å¿ããŠåé¡ã®é
ç¹ããªã¢ã«ã¿ã€ã ã«å€åããããã€ãããã¯ã¹ã³ã¢ãªã³ã°ããæ¡çšãå€ãã®äººãè§£ããåé¡ã¯äŸ¡å€ãäžããã誰ãè§£ããªãé£åã¯é«åŸç¹ãç¶æãç¶ããä»çµã¿ã«ãããã©ã®åé¡ããçæãã¹ãããšããæŠç¥æ§ãšãå»äžå»ãšé äœãå
¥ãæ¿ããç·åŒµæãæŒåºããŸããã ãŸãããããŠãAIã«ããèªåè§£çã®çŠæ¢ããã«ãŒã«ãšãã代ããã«ãã³ãæ©èœãå
å®ãããããšã§ã宿ãªè§£æ±ºã§ã¯ãªãåå è
èªèº«ã®ãéãããšã調æ»èœåããåãèšèšã«ãããŸããã ãã®1åæŠã¯ãåå è
ããæ»æè
ã®èŠç¹ããå®å
šãªç°å¢ã§äœéšã§ããããäŒç»ã»éçºãé²ããŸãããå®éã«æãåãããŠã·ã¹ãã ãæ»ç¥ããå¿«æãéããæç§æžã ãã§ã¯åŠã¹ãªãããªããã®ã³ãŒããå±éºãªã®ãããšããé²åŸ¡ã®åæããæ¥œãã¿ãªããèæèŠã§ç¿åŸã§ããå Žãç®æããŸããã 2åæŠ 2åæŠã®ããŒã㯠ããŒããã³ã°ç«¶æäŒãã¢ããŒãã«ãããã·ã¹ãã ãã¶ã¡ããããŠããã«ãïŒ 1åæŠã®çµæãèžãŸããŠåããããããŒã ã«ãECãµã€ããæš¡ããWebãµã€ãã®ãœãŒã¹ã³ãŒããé
åžãããŸããåããŒã ãã¹ã¿ãŒãã¢ããäŒæ¥ã«èŠç«ãŠãã»ãã¥ãªãã£ã€ã³ã·ãã³ããæ ªäŸ¡ã«åœ±é¿ãããšããç·åŒµæã®ããèšå®ã§ãã å¶éæéå
ã«èªããŒã ã®ECãµã€ãã®ã»ãã¥ãªãã£å¯Ÿçãããããä»ããŒã ã®ECãµã€ãã®è匱æ§ãã€ããããªæ»æããããããŠãèªããŒã ã®ã¹ã³ã¢ã皌ããŸãã æ¡ç¹ã¯æ ªäŸ¡ã ãã§ãªãããœãŒã·ã£ã«ãšã³ãžãã¢ãªã³ã°ã®èãæ¹ãå å³ããæ¹æ³ã§å®æœããŸãããå
·äœçã«ã¯ãéå§åã«é
åžããããã¹ã¯ãŒãã®çŽããç«¶æäžã«äŒå Žå
ãæ©ãåãéå¶ã«æ®åœ±ããããæžç¹ãšãã圢ã§ãã ãã®ããã«2åæŠã¯ãç²åŸç¹æ°ãæ ªäŸ¡ãšå®çŸ©ããããšã§ãåå è
ã®ã»ãã¥ãªãã£æèãäŒç€Ÿã®ä¿¡çšåºŠã«çŽçµããããšããæ¥œãã¿ãªããæèã§ããã«ãŒã«ã«ããŸããã ããã¯ããã«ã®å
容ã¯å¥œè©ã§ããã§ã¹ç¿æ¥ãã ãã»ãã¥ãªãã£é¢çœãïŒè§£ããŠããªãåé¡ãããããæ¥œããã£ãããç¶ããããããŠïŒããšããåãåãããçžæ¬¡ããæ¥éœã³ã³ãã³ãã®ééã1é±éå»¶é·ããã»ã© ã§ããã ãããã¬ãŒã·ã§ã³ãã¹ãã®ãã³ãºãªã³ ä»åã®ããã¯ãã§ã¹ã§ã¯ã å®å
šå
補ã®ããããã¬ãŒã·ã§ã³ãã¹ãã»ãã³ãºãªã³ã ã90åã®æ ã§éå¬ããŸããïŒ ãã®ãã³ãºãªã³ã¯ãä»åã®ããã« ã»ãã¥ãªãã£å°éããŒã ãäœã£ãç¹è£œã®ãã³ãºãªã³ ã§ãã ãã»ãã¥ãªãã£ã身è¿ã«ããã³ã³ã»ããã«ãèªç€ŸãµãŒãã¹ãæš¡ããâããããµã€ãâãçšæãã»ãã¥ãªãã£ããŒã ã䜿çšããŠãããã¹ãããŒã«ïŒBurp SuiteïŒãçšãã瀟å
äºäŸãããŒã¹ã«ããèåŒ±æ§æ»æãåå¿è
ã§ãè¿·ããäœéšã§ããããé£æåºŠèšèšã«æ¥µéãŸã§ãã ãããŸããã ãã³ãºãªã³ãå§ãŸããšSlackã®ã¹ã¬ããã¯è³ªåã宿³ã§å€§å€è³ãããããããã³ã°äœéšã楜ãããããªã¹ã¯ãèã§æããããšã®å£°ãå€ããã¢ã³ã±ãŒãã§ãã»ãšãã©ã®åå è
ããã倧倿ºè¶³ããšããåçãé ããŸãããæºåã¯å€§å€ã§ãããææŠããŠæ¬åœã«è¯ãã£ãã§ãã ãåå ããã ããçæ§ãããããšãããããŸããïŒ ã»ãã·ã§ã³ ã»ãã·ã§ã³ã«ã¯ãã»ãã¥ãªãã£ãå°éãšãããšã³ãžãã¢ç€Ÿå¡ãäžå¿ã«ã5åã®æ¹ã«ç»å£ããã ããŸããã ãã€ã¬ãã«ãªå°éçå
容ããããŸãããããšãŠãããããããã話ãããã ããã»ãã¥ãªãã£æªçµéšè
ã»çµéšè
ã«é¢ãããåŠã³ã®å€ãæéãšãªããŸããã çºè¡šè
ã®ç€Ÿå¡ã®çããããå¿ããäžããããšãããããŸããïŒ ããã ã®èšç·Žãã§çµããããªããæšçåæ»æã®å®æ
ãšè
åš ïŒã¬ãã¬ãžãŒãº æ
å ±ã»ãã¥ãªãã£å®€ ææ¬ïŒ ãã® if æãçªç Žã§ããïŒTypeScriptã§åŠã¶ã³ãŒãã®èåŒ±æ§ ïŒã¬ãã¬ãžãŒãº ã¬ãããã¯éçºéš æŸæµªïŒ âãããæããïŒâãèšç®ãããEDCææ³ã«ããå®éçãªãªã¹ã¯è©äŸ¡ãšå¯Ÿç广ã®å¯èŠå ïŒã¬ãã¬ãžãŒãº ãã¯ãããžãŒæŠç¥å®€ åç°ïŒ AWSã»ãã¥ãªãã£ã€ã³ã·ãã³ã察å¿å®é²ãšæèš ïŒã¬ãã¬ãžãŒãº ãœãªã¥ãŒã·ã§ã³éçºéš æ©ïŒ éè·è
ã¢ã«ãŠã³ããåé€ããŠãèŠæ³šæïŒäººçè
åšããã¯ç°¡åã«éããããªã⊠ïŒã¬ãã¬ãžãŒãº æ
å ±ã·ã¹ãã 宀 é«ç°ïŒ æèŠªäŒ ããã¯ãã§ã¹çµäºåŸã¯ããåŸ
ã¡ããã®æèŠªäŒãéå¬ïŒ ä»å¹Žã¯ãçžŠãšæšªãšã®ç¹ãããäœãããè£ããŒãã«ãã³ãã¥ãã±ãŒã·ã§ã³ãä¿é²ããã話ããããããé°å²æ°ã®å ŽãèšèšããŸããã äŒå Žã®ã¡ã€ã³ã³ã³ãã³ãã¯ãåå è
å
šå¡ãå·»ã蟌ãã ãã¹ã¿ã³ãã©ãªãŒãã ãåºèº«å°ãåãã®ã¡ã³ããŒãæ¢ãããSlackã¢ã€ã³ã³ããç¥ããªã人ãšäº€æµããããšãã£ãããã·ã§ã³ããã£ããã«ã å察é¢å士ã§ãèªç¶ãšäŒè©±ã匟ã仿ã ãçšæããŸããã çµæãã¢ã³ã±ãŒãã§ã¯åå è
ã®85%ããä»äºæ¥éšã®äººãšäº€æµã§ããããšåçãããªã©ããŸãã«äºæ¥éšã®å£æ ¹ãè¶ããã³ã©ãã¬ãŒã·ã§ã³ã®çš®ããã¡ãã¡ã§èœå¹ããŠããŸããã ãã¡ãããå°œããªãäŒè©±ã«è¯ãæ·»ããã®ã¯ã 寿åžããã¶ãªã©ã®è±ªè¯ãªé£äºãã¡ ã ããã§çãŸããã人ãšã®ã€ãªããã«ããååŠåå¿ããçµç¹ã®çµæããã匷åºãªãã®ã«ããç±æ°å·ãããã¬ãŸãŸå¹ãéããŸããã æåŸã« ä»åã®ããã¯ãã§ã¹2026å¬ã¯ãã æ¥æé·ã®ãã®å
ãžãã»ãã¥ãªãã£ã§ä¿¡é Œãšæªæ¥ãåµã ããšããããŒãã®ããšãåŠã³ãã€ãªãããåæã§èèœããç¹å¥ãª1æ¥ãšãªããŸããã ã»ãã¥ãªãã£ã¯é£ãããçºè¡šæ©äŒãå°ãªãåéã®1ã€ãšèšãããããšãå€ãã§ãããä»åã®ãã§ã¹ã§ã¯ã»ãã¥ãªãã£å°éããŒã ãäžå¿ãšãªãããã€ã¬ãã«ãã€ã¯ã¯ã¯ã¯ãããããªæéãäœãããšãã§ããŸããã å ããŠããã®1æ¥ã¯éå¶ã»åå è
å
šå¡ã®ç¬é¡ãšç±æããã£ãããããæãç«ã£ãã®ã ãšæã£ãŠããŸãã ãã€ã®æä»£ãã â人ãšäººãã€ãªããåâ ãããæå€§ã®ãšã³ãžãã¢ãªã³ã°ã§ã¯ãªãã§ããããã æåŸãŸã§ãèªã¿ããã ãããããšãããããŸãïŒ ããã§ã¯ã次åã®ããã¯ãã§ã¹ã§ãŸããäŒãããŸãããïŒ P.S. ä»åã®ããã¯ãã§ã¹ããæããäŒå ŽãããéŠãã«å
ãŸããŠããŸããã å®ã¯ 瀟å
ãšã³ãžãã¢æå¿ã®ãã³ãŒããŒäºæ¥éšã ããŸããŸãã³ãŒããŒãæäŸããŠãããŠãŸããïŒ ã³ãŒããæžããŠãè±ãæœããããã㪠âãã«ã¹ã¿ãã¯ãªç·ãã¡â ã®å¥®éèšã¯ ãã¡ã ïŒ ã¬ãã¬ãžãŒãºã§ã¯ã瀟å
ã§æè¡ããŠããŠã®å
±æãè¡ãã€ãã³ãã¯ãã¡ãããå€éšããèåãªæ¹ããåŒã³ããŠè²Žéãªã話ãèãæ©äŒãç©æ¥µçã«èšããŠãããŸãã ã¬ãã¬ãžãŒãºã«å°ãã§ãèå³ãæã£ãŠããã ããæ¹ã¯ã ãã¡ããããšã³ããªãŒ ããé¡ãããŸãã â é¢é£ãªã³ã¯ äŒç€Ÿèª¬æè³æ ~ éå»ã®ããã¯ãã§ã¹ã¬ããŒã ~ - ã1æ¥å¯çãAIãšå
±ã«æ¬¡äžä»£ã®ãšã³ãžãã¢ãž/ã¬ãã¬ãžãŒãºããã¯ãã§ã¹/AIããã«ãœã³ - ããã¯ãã§ã¹2025 å€ã¬ããŒã - ããã¯ãã§ã¹2025 å¬ã¬ããŒã - ããã¯ãã§ã¹2024 å€ã¬ããŒã - ããã¯ãã§ã¹2024 å¬ã¬ããŒã - ããã¯ãã§ã¹2023 æ¥ã¬ããŒã - ããã¯ãã§ã¹2022 ç§ã¬ããŒã
èæ¯ã»çµç·¯ MLããŒã ã®çŽ¹ä» ããã«ã¡ã¯ãæ ªåŒäŒç€Ÿãã³ãã€ãã ã³ãã¯ãµã¹ã®ããŒã¿æŠç¥éšã§MLïŒæ©æ¢°åŠç¿ïŒããŒã ã«æå±ããŠããå±±éã§ããåŒç€ŸããŒã¿æŠç¥éšã¯ãã°ã«ãŒãæå€§ã®ããŒã¿æŠç¥éšéã§ããMLããŒã ã¯MLãããã¯ã/ãããžã§ã¯ããããžã¡ã³ããã¢ããªã³ã°ãããã³MLã·ã¹ãã ã®éçº/éçšã«ã¹ãã·ã£ãªãã£ãæã€ã¡ã³ããŒã§æ§æãããŠããŸããç§ãã¡MLããŒã ã¯ãããŸã§ãMLãããã¯ãéçºãäžæ°éè²«ã§æ
åœããŠããŸãããéå»ã®æ¡ä»¶äºäŸã®äžã€ã¯ãã¡ãïŒã¬ã³ã¡ã³ãã·ã¹ãã å°å
¥äºäŸïŒã§ãã MLããŒã ã®ã¹ã³ãŒã éèæ¯éšåãMLããŒã ã®ã¹ã³ãŒãã§ãããä»åã¯ãã®äžã®èµ€æ ã§ç€ºãããéšåã®åœ¹å²ãšã
éèITæ¬éš å
¥ç€Ÿ1幎ç®ã®æ²³å²žæ©åžã§ãã äŒç€Ÿã®åæãšå人éçºã«åãçµãã§ããŸãã ãã®éçšã§ãLINEã®ãããªåå¥ãã£ããæ©èœããå®è£
ããã«ããããAWSã®ãµãŒããŒã¬ã¹æ§æïŒLambda ïŒ DynamoDBïŒã®æ¡çšãæ€èšããããšã«ãªããŸããã ä»åã¯å®éã«èª¿æ»ãšèšèšãè¡ãäžã§åŸãããæ°ã¥ãã«ã€ããŠå
±æãããŠããã ããŸãã ã¯ããã« æ³å®èªè
æ¬èšäºã®ç®ç ãã£ããæ©èœã®èŠä»¶ DynamoDBã®èšèšãçè§£ãã åºæ¬çãªä»çµã¿ ãã©ã€ããªããŒãšããŒãã£ã·ã§ã³ ãããããŒãã£ã·ã§ã³ã«æ³šæãã ããŒã¿ã¢ã¯ã»ã¹ãã¿ãŒã³ RDBãšã®éã ã¢ã¯ã»ã¹ãã¿ãŒã³ãæŽãåºã ãã£ããæ©èœãžã®ã¢ã¯ã»ã¹ãã¿ãŒã³ ããŒãã«èšèš æåã«èããèšèš åé¡ãèªåã®åå ã«ãŒã äžèЧããåããªã GSIãšã¯ GSIã§äœã解決ã§ããã®ã GSIã®ç¹åŸŽ å°åœ±ïŒProjectionïŒãšããæŠå¿µ LSIïŒããŒã«ã«ã»ã«ã³ããªã€ã³ããã¯ã¹ïŒãšã®éã ããŒãã«èšèš(宿) MessagesããŒãã« GSIïŒã°ããŒãã«ã»ã«ã³ããªã€ã³ããã¯ã¹ïŒ ãŸãšã ã¯ããã« æ³å®èªè
RDBã¯è§Šã£ãããšããããã©ãDynamoDBã¯åããŠã®æ¹ ãDynamoDBã£ãŠäœãå¬ããã®ïŒããšããçåããæã¡ã®æ¹ ãµãŒããŒã¬ã¹æ§æã§ãã£ããæ©èœãäœãããæ¹ æ¬èšäºã®ç®ç DynamoDBãšRDBã®èšèšææ³ã®éããçè§£ãã ãã£ããæ©èœã®èŠä»¶ ä»å調æ»ããã®ã¯ãLINEã®ãããª1察1ã®åå¥ãã£ããæ©èœã§ãã åå¥ãã£ããæ©èœã¯ã¢ããªã±ãŒã·ã§ã³å
šäœã®ã³ã¢æ©èœã§ã¯ãããŸããããåããŠå®è£
ããæ©èœã ã£ããããå
è¡ããŠèª¿æ»ãè¡ããŸããã ãã£ããæ©èœãå®è£
ããã«ãããã以äžã®ãããªèŠä»¶ãæŽçããŸããã èŠä»¶ çç± ãªã¢ã«ã¿ã€ã æ§ ã¡ãã»ãŒãžã¯éä¿¡åŸããã«çžæã«å±ããŠã»ãã é«é »åºŠã®æžã蟌㿠ãã£ããã¯ã¡ãã»ãŒãžã®è¿œå ãé »ç¹ã«çºçãã ã¹ã±ãŒã©ããªã㣠çŸç¶ã¯30äººèŠæš¡ã ããå°æ¥çãªæ¡å€§ãæ³å®ããã é«å¯çšæ§ æ¥åæéäžã¯ãã€ã§ãå©çšã§ããç¶æ
ãç¶æããã DynamoDBã®èšèšãçè§£ãã DynamoDBã¯NoSQL(Not Only SQL)ããŒã¿ããŒã¹ã®äžçš®ã§ãããŒããªã¥ãŒåã«åé¡ãããŸãã ããŒããªã¥ãŒåã®ç¹åŸŽã¯ãããŒãæå®ããŠå€ãååŸããã·ã³ãã«ãªæ§é ã§ãã DynamoDBã§ã¯ãããŒã¿ã¯ä»¥äžã®ãããªæ§é ã§æ ŒçŽãããŸãã ããŒãã« âââ é
ç®ïŒItemïŒâ 1ä»¶ã®ããŒã¿ âââ ããŒãã£ã·ã§ã³ããŒ: "UserA" â ããŒïŒå¿
é ïŒ âââ ãœãŒãããŒ: "2026-01-17" â ããŒïŒä»»æïŒ âââ Name: "éŽæšäžé" â 屿§ âââ Email: "suzuki@example.com" â 屿§ âââ Department: "å¶æ¥éš" â 屿§ é
ç®ïŒItemïŒ : 1ä»¶ã®ããŒã¿ã®ãŸãšãŸã(RDBã§ãããè¡ã) ããŒïŒãã©ã€ããªããŒïŒ : é
ç®ãäžæã«ç¹å®ãããã® å±æ§ïŒAttributeïŒ : é
ç®ãæã€åãã£ãŒã«ãã®ããš åºæ¬çãªä»çµã¿ DynamoDBã®ãããªããŒããªã¥ãŒåã®ããŒã¿ããŒã¹ãçè§£ããããã§ãæãéèŠãªã®ã¯ãããŒãã®èšèšã§ãã ã¯ããã«ããã©ã€ããªããŒãã®æ§æã«ã€ããŠèª¬æããŸãã ãã©ã€ããªããŒãšããŒãã£ã·ã§ã³ ãã©ã€ããªããŒã¯ãããŒãã£ã·ã§ã³ããŒããšããœãŒãããŒãã§æ§æãããŠãããããããé©åã«èšèšããããšã§ãå¹ççãªããŒã¿ã¢ã¯ã»ã¹ãå¯èœã«ãªããŸããããŒãã£ã·ã§ã³ããŒã¯å¿
é ããœãŒãããŒã¯ä»»æã§ãã ããŒãã£ã·ã§ã³ããŒã®åœ¹å²ã¯ãã®åã®éããããŒãã£ã·ã§ã³ïŒåºç»ïŒã決å®ãããããšã§ãã DynamoDBã§ã®ããŒãã£ã·ã§ã³ã¯ãSSDã«ãã£ãŠããã¯ã¢ãããããAWSãªãŒãžã§ã³å
ã®è€æ°ã®ã¢ãã€ã©ããªãã£ãŸãŒã³éã§èªåçã«ã¬ããªã±ãŒãããããããŒãã«çšã®ã¹ãã¬ãŒãžã®å²ãåœãŠã®ããšãæããŸãã å
¬åŒããã¥ã¡ã³ãã«ã¯ä»¥äžã®ããã«èšèŒãããŠããŸãã DynamoDBã¯ãããŒãã£ã·ã§ã³ããŒã®å€ãå
éšããã·ã¥é¢æ°ãžã®å
¥åãšããŠäœ¿çšããŸãã ããã·ã¥é¢æ°ããã®åºåã«ãããé
ç®ãä¿åãããããŒãã£ã·ã§ã³ (DynamoDBå
éšã®ç©çã¹ãã¬ãŒãž) ãæ±ºãŸããŸãã åºå
žïŒ ããŒãã£ã·ã§ã³ãšããŒã¿åæ£ - Amazon DynamoDB ããããããŒã¬ã€ã ã€ãŸããåãããŒãã£ã·ã§ã³ããŒãæã€ããŒã¿ã¯ç©ççã«åãããŒãã£ã·ã§ã³ã«æ ŒçŽãããç°ãªãããŒãã£ã·ã§ã³ããŒãæã€ããŒã¿ã¯å¥ã®ããŒãã£ã·ã§ã³ã«æ ŒçŽãããŸãã 以äžã®å³ã¯ãåããã¥ã¡ã³ãããåŒçšãããã®ã§ãã ãã®å³ã§ã¯ãããŒãã£ã·ã§ã³ããŒãAnimalType: Dogããæã€é
ç®ããããã·ã¥é¢æ°ãééãããã®åºåå€ã«åºã¥ããŠç¹å®ã®ããŒãã£ã·ã§ã³ã«æ ŒçŽãããæ§åã瀺ããŠããŸãã åæ§ã«ãFishããLizardããBirdããCatããTurtleããšãã£ãç°ãªãããŒãã£ã·ã§ã³ããŒãæã€é
ç®ã¯ãããããç°ãªãããŒãã£ã·ã§ã³ã«åæ£ããŠæ ŒçŽãããŸãã ãããããŒãã£ã·ã§ã³ããŒã®ã¿ãçšããå Žåã®ãDynamoDBã«ããŒã¿ãæ ŒçŽãããä»çµã¿ã§ãã ãã®æ¹æ³ã«å ããŠãããŒãã£ã·ã§ã³ããŒãšãœãŒãããŒãçµã¿åããã è€åãã©ã€ããªã㌠ãšåŒã°ããã¿ã€ããååšããŸãã ãã®å³ã§ã¯ãããŒãã£ã·ã§ã³ããŒãAnimalTypeããšãœãŒãããŒãNameããçµã¿åãããŠããŸããåãããŒãã£ã·ã§ã³ããŒãDogããæã€é
ç®ïŒBowserãFidoãRoverïŒã¯ãåãããŒãã£ã·ã§ã³ã«æ ŒçŽãããŸãã ãã®äžã§ãœãŒãããŒãNameãã«ãã£ãŠé
ç®ãäžæã«èå¥ããããœãŒããããç¶æ
ã§æ ŒçŽãããŸããè€åãã©ã€ããªããŒã䜿çšããããšã§ããåãããŒãã£ã·ã§ã³ããŒãæã€è€æ°ã®é
ç®ãã1ã€ã®ããŒãã£ã·ã§ã³ã«ãŸãšããŠæ ŒçŽãããœãŒãããŒã䜿ã£ãŠç¯å²æ€çŽ¢ããœãŒããè¡ãããšãå¯èœã«ãªããŸãã ãªã®ã§å¹ççãªããŒã¿æ¢çŽ¢ãããããã«ããã·ã³ãã«ãªãã©ã€ããªããŒã«ããã®ããè€åãã©ã€ããªããŒãå©çšããã¹ããªã®ãã¯ãã¢ããªã±ãŒã·ã§ã³ã®ãŠãŒã¹ã±ãŒã¹ã«ãã£ãŠç°ãªããããäºåã«ã©ã®ãããªã¢ã¯ã»ã¹ãã¿ãŒã³ã§ããŒã¿æäœããã®ããæ€èšããããšãéèŠã§ããå
¬åŒã®ãã¹ããã©ã¯ãã£ã¹ã§ããã¢ã¯ã»ã¹ãã¿ãŒã³ãäºåã«ææ¡ããããã§ã®ããŒèšèšãæšå¥šãããŠããŸãã NoSQL ã®èšèšã®éã 察ç
§çã«ãDynamoDB ã®å Žåã¯çããå¿
èŠãªè³ªåãåãããŸã§ãã¹ããŒãã®èšèšãéå§ãã¹ãã§ã¯ãããŸããã ããžãã¹äžã®åé¡ãšã¢ããªã±ãŒã·ã§ã³ã®ãŠãŒã¹ã±ãŒã¹ãçè§£ããããšãäžå¯æ¬ ã§ãã åºå
žïŒ NoSQL èšèšã®ãã¹ããã©ã¯ãã£ã¹ - Amazon DynamoDB ããããããŒã¬ã€ã ãçããå¿
èŠãªè³ªåãåãããŸã§ããšãã衚çŸã¯å°ã
ãããã¥ããã§ãããèšãæãããš ãã©ã®ãããªã¯ãšãªãã¿ãŒã³ã§ããŒã¿ãååŸããã®ããæç¢ºã«ãªããŸã§ãã¹ããŒãèšèšãå§ããã¹ãã§ã¯ãªãã ãšããããšã ãšè§£éããŠããŸãã ãããããŒãã£ã·ã§ã³ã«æ³šæãã ãããŸã§ã®ããŒãã£ã·ã§ã³ããŒã®èª¬æãèžãŸããŠãããŒãã£ã·ã§ã³ãããŒããšã«åæ£ãããã®ãªããä»®ã«ãŠãŒã¶ãŒæ°ãå¢ãããšãã«ããŒãã£ã·ã§ã³ã®äžéãæ¥ãã®ã§ã¯ãªãããšããçåãæµ®ãã³ãŸããã å
¬åŒããã¥ã¡ã³ãã«ä»¥äžã®ãããªèšèŒããããŸããã DynamoDB ããŒãã«ã«ã¯ãããŒãã£ã·ã§ã³ããŒããªã¥ãŒããšã«åå¥ã®ãœãŒãããŒããªã¥ãŒã®æ°ã«äžéã¯ãããŸãããäœååãã® Dog é
ç®ã Pets ããŒãã«ã«ä¿åããå¿
èŠãããå ŽåãDynamoDB ã¯ãã®èŠä»¶ãèªåçã«åŠçããã®ã«ååãªã¹ãã¬ãŒãžãå²ãåœãŠãŸãã åºå
žïŒ ããŒãã£ã·ã§ã³ãšããŒã¿åæ£ - Amazon DynamoDB ããããããŒã¬ã€ã ã€ãŸããããŒãã£ã·ã§ã³ãå¢ããããšèªäœã¯åé¡ã§ã¯ãªããšããããšã§ãã ãããæ³šæãã¹ãã¯ãç¹å®ã®ããŒãã£ã·ã§ã³ã«ã¢ã¯ã»ã¹ãéäžããããšã§ãããããã ãããããŒãã£ã·ã§ã³ ããšåŒã³ãŸãã äŸãã°ãããŒãã£ã·ã§ã³ããŒããæ¥ä»ãã«ããå ŽåãèããŸãã仿¥ã®ããŒã¿ãžã®ã¢ã¯ã»ã¹ãéäžããéå»ã®æ¥ä»ã®ããŒãã£ã·ã§ã³ã¯ã»ãšãã©äœ¿ãããŸããããã£ããããŒãã£ã·ã§ã³ãåãããŠããŠãã1ã€ã«éäžããŠããŸã£ãŠã¯æå³ããããŸããã ä»åã®ãã£ããæ©èœã§ã¯ãããŒãã£ã·ã§ã³ããŒã RoomId ã«ããŠããŸãã1察1ã®åå¥ãã£ãããªã®ã§ãå
šå¡ãåãã«ãŒã ã«éäžããããšã¯ãªããã«ãŒã æ°ãå¢ããã«ã€ããŠã¢ã¯ã»ã¹ã¯èªç¶ãšåæ£ãããŸããããã°ã«ãŒããã£ãããå
šç€Ÿé£çµ¡çšã®ã«ãŒã ãäœãå Žåã¯ãç¹å®ã®ã«ãŒã ã«ã¢ã¯ã»ã¹ãéäžããå¯èœæ§ããããããå¥ã®èšèšãæ€èšããå¿
èŠããããããããŸããã ãªã®ã§ããŠãŒã¶ãŒã¢ã¯ã»ã¹ãç¹å®ã®ããŒãã£ã·ã§ã³ã«éäžããããšããªãããã«ããŒãã£ã·ã§ã³ããŒãèšå®ããå¿
èŠããããŸãã ããŒã¿ã¢ã¯ã»ã¹ãã¿ãŒã³ DynamoDBã®ããŒã¿ãååŸããæ¹æ³ã¯äž»ã«2ãã¿ãŒã³ãããŸãã æ¹æ³ 説æ é床ã»ã³ã¹ã Query ããŒãã£ã·ã§ã³ããŒãæå®ããŠååŸããœãŒãããŒã§ç¯å²æå®ããœãŒããå¯èœ é«éã»äœã³ã¹ã Scan ããŒãã«å
šäœãèµ°æ»ããŠæ¡ä»¶ã«åããã®ãååŸ äœéã»é«ã³ã¹ã åºæ¬çã«ã¯Queryã䜿ããScanã¯é¿ããã¹ããšãããŠããŸããQueryãé«éãªã®ã¯ããã£ãä»èª¬æããããã«ãããŒãã£ã·ã§ã³ããŒããœãŒãããŒã«ãã£ãŠããŒãã£ã·ã§ã³ãæç¢ºã«åããããŠããããã§ãããã®åæ£ããããŒã¿ç®¡çã«ãã£ãŠãDynamoDBã¯å€§èŠæš¡ãªããŒã¿ã«å¯ŸããŠãé«éãªã¢ã¯ã»ã¹ãå®çŸããããšãã§ããŸãã å
·äœçã«ã¯ãäžã€ã®ããŒãã«ã«å¯ŸããŠåæã«ã¢ã¯ã»ã¹ããéã«ããããŒãã£ã·ã§ã³ãåãããŠããããšã«ãã£ãŠãåæå®è¡æ§ãåäžããã¹ã«ãŒããããå¹ççã«ã¹ã±ãŒã«ãããããšãå¯èœãšãªããŸãã ãŸãScanã¯ããŒãã«å
šäœãã¹ãã£ã³ãããªãã¬ãŒã·ã§ã³ã§ãããããããŒãã«ã倧ãããªãã«ã€ããŠãåŠçé床ã¯é
ããªããŸãããã®ããå¿çæéççž®ã®ããã«ãããªãã¹ãQueryã䜿çšã§ããããã«ãããŒãã«èšè𿮵éã§é©åãªããŒãã£ã·ã§ã³ããŒãšãœãŒãããŒãæ€èšããããšã倧åã§ãã RDBãšã®éã ãããŸã§çè§£ãããšããã§ãããçåãæµ®ãã³ãŸããã ãRDBã§ãWHEREå¥ã䜿ãã°ãç®çã®ããŒã¿ãå¹ççã«æ¢çŽ¢ã§ããããïŒDynamoDBã®ããŒãã£ã·ã§ã³ããŒãæå®ããã®ãšäœãéãã®ïŒã ãã®æç¹ã§ã¯çªåºããDynamoDBã®è¯ããæããããšã¯ã§ããŠããŸããã§ããã(åå¿è
ç®ç·ã§ã...) ãã ã調ã¹ãŠãããã¡ã«ã ã1åã®ã¯ãšãªã®é床ãã§ã¯ãªããåæã«å€§éã®ã¯ãšãªãæ¥ããšãã ã«éããåºãããšãããããŸããã RDBã®å Žåã1000人ãåæã«ã¢ã¯ã»ã¹ãããšããã¹ãŠã®ãªã¯ãšã¹ãã1å°ã®DBãµãŒããŒã«éäžããŸãã(ãªãŒãã¬ããªã«ããã«ãAZæ§æã«ããå Žåãé€ã) ãã®çµæãCPUãã³ãã¯ã·ã§ã³ãéŒè¿«ããå
šäœçã«ã¬ã¹ãã³ã¹ãé
ããªããŸãã äžæ¹ãå
ã»ã©ã説æãããšãããDynamoDBã®å Žåãåãªã¯ãšã¹ãã¯ããŒãã£ã·ã§ã³ããŒã«åºã¥ããŠå¥ã
ã®ããŒãã£ã·ã§ã³ã«åæ£ãããŸãã ãã®ãããåææ¥ç¶æ°ãå¢ããŠãè² è·ã1ç®æã«éäžãããã¬ã¹ãã³ã¹é床ãç¶æã§ããŸãã å
¬åŒããã¥ã¡ã³ãã«ãã以äžã®ãããªèšèŒããããŸãã RDBMSã§ã¯ãããŒã¿ã¯æè»ã«ã¯ãšãªã§ããŸãããã¯ãšãªã¯æ¯èŒçã³ã¹ããé«ãããã©ãã£ãã¯ãå€ãç¶æ³ã§ã¯ ã¹ã±ãŒã«ãããŸããããªãå ŽåããããŸãã åºå
žïŒ ãªã¬ãŒã·ã§ãã«ããŒã¿èšèšãš NoSQL ã®çžéç¹ - Amazon DynamoDB ããããããŒã¬ã€ã DynamoDBã¯ãããŒãã£ã·ã§ã³ããŒã«ããããã·ã¥åæ£ããããããããããŒã¿éãã¢ã¯ã»ã¹æ°ãå¢ããŠãæ§èœãç¶æã§ããŸãããããRDBãšã®å€§ããªéãã®äžã€ã§ãã ãªã®ã§å€§èŠæš¡ã¢ããªã±ãŒã·ã§ã³ã人æ°ã€ãã³ãçãªã©ã®ããŠãŒã¶ãŒããã®å€§éãªã¢ã¯ã»ã¹ãäºæ³ãããéã¯ããããã£ãDynamoDBã®åæ£ç®¡çã®ä»çµã¿ãèŒããšããããšãããããŸããã ã¢ã¯ã»ã¹ãã¿ãŒã³ãæŽãåºã å®éã«ããããããŒãã«èšèšã®æµããå
±æããŸãã åè¿°ããNoSQLã®èšèšã®ãã¹ããã©ã¯ãã£ã¹ã®åŒçšæã®äžã§ããã£ãããã«ãDynamoDBã§ã¯ãã©ã®ãããªã¯ãšãªãã¿ãŒã³ã§ããŒã¿ãååŸããã®ãããæç¢ºã«ããŠããèšèšãå§ããå¿
èŠããããŸãã ããã§ããŸãã¯ãã£ããæ©èœã®ã¢ã¯ã»ã¹ãã¿ãŒã³ãæŽãåºããŸããã ãã£ããæ©èœãžã®ã¢ã¯ã»ã¹ãã¿ãŒã³ ã±ãŒã¹ ãã¿ãŒã³ 䜿çšäŸ 1 ç¹å®ã«ãŒã ã®ã¡ãã»ãŒãžäžèЧãååŸ ãã£ããã«ãŒã ãéãããšã 2 ææ°Nä»¶ã®ã¡ãã»ãŒãžãååŸ åæè¡šç€ºã»ã¹ã¯ããŒã«æ 3 èªåãåå ããŠããã«ãŒã äžèЧãååŸ ãã£ããç»é¢ãéãããšã 4 æ°ããã¡ãã»ãŒãžã远å ã¡ãã»ãŒãžéä¿¡æ 5 æ°ãããã£ããã«ãŒã ãäœæ åããŠã®DMãéããšã 6 ãã£ããã«ãŒã ãåé€ ãŠãŒã¶ãŒãã«ãŒã ãæ¶ãããšã ãã®ãããªåœ¢ã§ã¢ã¯ã»ã¹ãã¿ãŒã³ãæŽãåºããŸããããã®åŸã«ããäœãèµ·ç¹ã«ããŒã¿ãæ¢ããããèããŠã¿ãŸãã ã±ãŒã¹1, 2, 4ïŒ RoomId ãèµ·ç¹ã«ã¡ãã»ãŒãžãæäœ ã±ãŒã¹3ïŒ UserId ãèµ·ç¹ã«ã«ãŒã ãæ€çŽ¢ ã±ãŒã¹5, 6ïŒã«ãŒã ã®äœæã»åé€ ããã§ã±ãŒã¹3ã ãä»ã®ã±ãŒã¹ãšã¯èµ·ç¹ãšãªãããŒã¿ãéã£ãŠããŸãããšã«æ°ã¥ããŸããã DynamoDBã§ã¯ãããŒãã£ã·ã§ã³ããŒãšãœãŒãããŒãæå®ããããšã§å¹ççã«ã¯ãšãªãå®è¡ã§ããŸãããããŒãã£ã·ã§ã³ããŒä»¥å€ã®å±æ§ãæ€çŽ¢æ¡ä»¶ã«ããããšã¯ã§ããŸããã ããŒãã«èšèš æåã«èããèšèš ã¡ãã»ãŒãžãæ ŒçŽããããŒãã«ãšããŠã以äžã®ãããªèšèšãèããŸããã ããŒãã£ã·ã§ã³ã㌠ïŒRoomIdïŒãã£ããã«ãŒã ã®IDïŒ ãœãŒãã㌠ïŒTimestamp#UserIdïŒéä¿¡æå»ãšéä¿¡è
IDïŒ å±æ§ ïŒMessage ã¢ã¯ã»ã¹ãã¿ãŒã³ãèžãŸããŠãäžçªèµ·ç¹ãšãªãããŒã¿ãããŒãã£ã·ã§ã³ããŒã«æã£ãŠããŸããããŸãã ãœãŒãããŒã«ã¯ãã£ããã®å±¥æŽã®ååŸãªã©ãè¡ãããã®ã§ãã¿ã€ã ã¹ã¿ã³ããšããŠãåãæéã«éä¿¡ããå Žåã«ã©ã¡ãã®ãŠãŒã¶ãŒãéã£ãã®ããå€å¥ããããã« UserId ãšçµåãã㊠ãœãŒãããŒã«æ ŒçŽããŸãã ããŒãã£ã·ã§ã³ããŒã« RoomId ãæå®ããŠQueryãå®è¡ããã°ããã®ã«ãŒã ã®ã¡ãã»ãŒãžããœãŒãããŒïŒæå»é ïŒã§ãœãŒããããŠååŸã§ããã€ã¡ãŒãžã§ãã åé¡ãèªåã®åå ã«ãŒã äžèЧããåããªã ãããããèªåãåå ããŠããã«ãŒã äžèЧãååŸïŒã±ãŒã¹3ïŒããå®çŸããããšããéãå£ã«ã¶ã€ãããŸããã çŸåšã®èšèšã§ã¯ãããŒãã£ã·ã§ã³ããŒã¯ RoomId ã§ãã DynamoDBã®Query㯠ããŒãã£ã·ã§ã³ããŒã®å®å
šäžèŽ ãå¿
é ãªã®ã§ãã UserId ãèµ·ç¹ã«ã«ãŒã ãæ€çŽ¢ããããšããããšã¯ã§ããŸããã ããã解決ããã®ã GSIïŒã°ããŒãã«ã»ã«ã³ããªã€ã³ããã¯ã¹ïŒ ãšããä»çµã¿ã§ãã GSIãšã¯ GSIãäžèšã§èª¬æãããšã ãå
ã®ããŒãã«ãšã¯å¥ã®ãã©ã€ããªããŒã§Queryã§ããããã«ããã³ããŒããŒãã«ã ã§ãã å
¬åŒããã¥ã¡ã³ãã«ã¯ä»¥äžã®ããã«èšèŒãããŠããŸãã ã°ããŒãã«ã»ã«ã³ããªã€ã³ããã¯ã¹ã«ã¯ãããŒã¹ããŒãã«ãšã¯ç°ãªãããŒãã£ã·ã§ã³ããŒãšãœãŒãããŒããããŸãã åºå
žïŒ ã°ããŒãã«ã»ã«ã³ããªã€ã³ããã¯ã¹ - Amazon DynamoDB ããããããŒã¬ã€ã GSIã§äœã解決ã§ããã®ã å
¬åŒããã¥ã¡ã³ãã®ã·ããªãªããšãŠãããããããã£ãã®ã§ãå
·äœçãªäœ¿çšäŸã¯ãã¡ããåèã«ããŠããã ããã°ãšæããŸãã(äžèšã®GSIã®åºå
žå
ãšåããªã³ã¯) GSIãå®çŸ©ããããšã§ãå
ã®ããŒãã«ã«å ããŠãå¥ã®åãå£ã§æ€çŽ¢ã§ããããã«ãªããŸãã ãå
ã®ããŒãã«ã ããŒãã£ã·ã§ã³ããŒ: RoomId ãœãŒãããŒ: Timestamp#UserId â ãç¹å®ã«ãŒã ã®ã¡ãã»ãŒãžããååŸã§ãã ãGSIã GSI-ããŒãã£ã·ã§ã³ããŒ: UserId GSI-ãœãŒãããŒ: RoomId â ãç¹å®ãŠãŒã¶ãŒã®åå ã«ãŒã äžèЧããååŸã§ãã GSIã§æ°ãã«éžã°ããããŒãã£ã·ã§ã³ã㌠UserId ããšã«ãç°ãªãããŒãã£ã·ã§ã³ã«ããŒã¿ãå
ã®ããŒãã«ããã³ããŒãããŸãã ããã«ãã£ãŠãã±ãŒã¹3ã®ãèªåãåå ããŠããã«ãŒã äžèЧãååŸããå®çŸã§ãããã§ãã GSIã®ç¹åŸŽ GSIã«ã€ããŠèª¿ã¹ãäžã§ã以äžã®ãããªç¹åŸŽãããããšãããããŸããã ç¹åŸŽ 説æ å
ããŒãã«ãšã¯å¥ã®ãã©ã€ããªããŒãèšå®å¯èœ æè»ãªæ€çŽ¢ãå¯èœã«ãªã ããŒã¿ã¯èªåã§åæããã å
ããŒãã«ã«æžã蟌ããšGSIã«ãåæ (çµææŽåæ§) åŸãã远å å¯èœ èšèšãééããŠãåŸãããªã«ããªã§ãã 远å ã³ã¹ããããã æžã蟌ã¿ã»ã¹ãã¬ãŒãžäž¡æ¹ã§èª²é 泚æç¹ãšããŠãçµææŽåæ§ã§ãããããæžã蟌ã¿çŽåŸã«GSIãã¯ãšãªãããšãææ°ã®ããŒã¿ãåæ ãããŠããªãå ŽåããããŸãã ãã®ããããªã¢ã«ã¿ã€ã æ§ãéèŠãªå Žé¢ã§ã¯èæ
®ãå¿
èŠã«ãªããŸããä»åã¯GSIã䜿ãã®ããèªåãåå ããŠããã«ãŒã äžèЧååŸã®å Žé¢ã®ã¿ãªã®ã§ãå€å°ã®ããŒã¿é
å»¶ã¯èš±å®¹ã§ãããšå€æããŸããã(å®éã«ãŒã äœæçŽåŸã«ãã®ãŸãŸã«ãŒã ã§ãã£ãããå§ãããšæãã®ã§...) ãããéèã®æ®é«ç
§äŒçã®ã·ãã¢ãªèŠä»¶ã絡ããšããã®çµææŽåæ§ã«äŒŽãé
å»¶ã倧ããªåœ±é¿ãããããã®ã§ãèŠä»¶ãšç
§ããåãããŠé©åãªã¢ãŒããã¯ãã£ãéžæããå¿
èŠããããŸãã å°åœ±ïŒProjectionïŒãšããæŠå¿µ GSIãåŠã¶äžã§ã å°åœ±ïŒProjectionïŒ ãšããæŠå¿µã«ãåºäŒããŸããã å°åœ±ãšã¯ããå
ããŒãã«ã®ã©ã®å±æ§ãGSIã«ã³ããŒãããããæå®ãããã®ã§ãã ä»å㯠KEYS_ONLY ïŒããŒã®ã¿ã³ããŒïŒãéžã³ãŸããã çç±ã¯ãGSIã§ååŸãããã®ã¯ãã©ã®ã«ãŒã ã«åå ããŠãããããšãã RoomId ã®äžèЧã ãã§ãã¡ãã»ãŒãžæ¬æãªã©ã®å±æ§ã¯äžèŠã ããã§ãã GSIã«ã³ããŒãããŠããªã屿§ãå¿
èŠãªå Žåãå
ããŒãã«ã«å¯ŸããŠè¿œå ã®ã¯ãšãªãå¿
èŠã«ãªããŸãã ãã®ãããã¢ã¯ã»ã¹é »åºŠãé«ã屿§ã¯å°åœ±ã«å«ããŠããããšã§ãã¯ãšãªåæ°ãåæžã§ããŸãã å
¬åŒããã¥ã¡ã³ãã«ãã以äžã®ãããªèšèŒããããŸããã äžéšã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ãããŒãã«ã«å¯ŸããŠå€ãã®ã¯ãšãªãçºè¡ããå¿
èŠãããããã®çµæãããããžã§ãã³ã°ãããã¹ã«ãŒãããã®å€ããæ¶è²»ããããšããããŸããããã軜æžããããã«ããã¹ãŠãŸãã¯äžéšã®ããŒãã«å±æ§ãã°ããŒãã«ã»ã«ã³ããªã€ã³ããã¯ã¹ã«å°åœ±ã§ããŸãã åºå
žïŒ ã°ããŒãã«ã»ã«ã³ããªã€ã³ããã¯ã¹ - Amazon DynamoDB ããããããŒã¬ã€ã ã¹ãã¬ãŒãžç®¡çã³ã¹ãã¯å¢ããŸãããé »ç¹ã«ã¢ã¯ã»ã¹ããå Žåã¯ã¯ãšãªã³ã¹ãã®åæžã§çžæ®ºããããšããèãæ¹ã§ãã LSIïŒããŒã«ã«ã»ã«ã³ããªã€ã³ããã¯ã¹ïŒãšã®éã GSIã調ã¹ãäžã§ã LSIïŒããŒã«ã«ã»ã«ã³ããªã€ã³ããã¯ã¹ïŒ ãšããäŒŒãæŠå¿µãããããšãç¥ããŸããã LSIã®ãããŒã«ã«ããšã¯ã åãããŒãã£ã·ã§ã³å
ã«ååšãã ãšããæå³ã§ãã GSIã¯å
ããŒãã«ãšã¯å¥ã®ããŒãã£ã·ã§ã³ã«ããŒã¿ãã³ããŒãããŸãããLSIã¯åãããŒãã£ã·ã§ã³å
ã§ãœãŒãããŒã ããå€ããã€ã³ããã¯ã¹ã§ãã ä»åã®èšèšã§ã¯ GSI ã䜿ãã®ãããããã ãšå€æããŸããã çç±ã¯ãLSIã§ã¯èŠä»¶ãæºãããªãããã§ãã ä»åã®ã¢ã¯ã»ã¹ãã¿ãŒã³ã®äžã§ããŠãŒã¶ãŒIDã§ãèªåã®åå ã«ãŒã äžèŠ§ãæ€çŽ¢ãããéšåããããŸãã ã¡ã€ã³ããŒãã«ã®ããŒãã£ã·ã§ã³ããŒã¯ RoomId ãªã®ã§ã UserId ã§æ€çŽ¢ããã«ã¯ããŒãã£ã·ã§ã³ããŒã倿Žããå¿
èŠããããŸãã LSIã§ã¯ããŒãã£ã·ã§ã³ããŒã倿Žã§ããªããããããããä»åã®èŠä»¶ãæºãããŸããã ãã®ãããGSIãæ¡çšããŸããã ããŠããããã®ããã»ã¹ãçµãŠãå®éã«ããŒãã«èšèšãå®äºããŸããã ä»åèšèšããããŒãã«ã¯ä»¥äžã®ãšããã§ãã ããŒãã«èšèš(宿) MessagesããŒãã« é
ç® å€ èª¬æ ããŒãã£ã·ã§ã³ã㌠RoomId ãã£ããã«ãŒã ã®IDïŒäŸïŒ suzuki_yamada ïŒ ãœãŒãã㌠Timestamp#UserId éä¿¡æå»ãšãŠãŒã¶ãŒIDïŒäŸïŒ 2026-01-18T10:30:00Z#suzuki ïŒ å±æ§ Message ã¡ãã»ãŒãžæ¬æ GSIïŒã°ããŒãã«ã»ã«ã³ããªã€ã³ããã¯ã¹ïŒ é
ç® å€ èª¬æ GSIå UserRoomsIndex GSI-ããŒãã£ã·ã§ã³ã㌠UserId ãŠãŒã¶ãŒID GSI-ãœãŒãã㌠RoomId ãã£ããã«ãŒã ID å°åœ± KEYS_ONLY ãã©ã€ããªããŒã®ã¿ã³ã㌠ããã«ããã以äžã®æ€çŽ¢ãå¯èœã«ãªããŸãã ã¢ã¯ã»ã¹ãã¿ãŒã³ 䜿çšããã€ã³ããã¯ã¹ ã¯ãšãªæ¹æ³ ç¹å®ã«ãŒã ã®ã¡ãã»ãŒãžäžèЧ ã¡ã€ã³ããŒãã« ããŒãã£ã·ã§ã³ããŒ=RoomIdã§Query èªåã®åå ã«ãŒã äžèЧ GSIïŒUserRoomsIndexïŒ GSI-ããŒãã£ã·ã§ã³ããŒ=UserIdã§Query ãããŸã§ã§ããŒãã«èšèšãå®äºããŸããã ãŸãšã ä»åããã£ããæ©èœã®ããã®DynamoDBããŒãã«èšèšãè¡ããŸããã èšèšãéããŠåŠãã ãã€ã³ãã¯ä»¥äžã®3ã€ã§ãã ã¢ã¯ã»ã¹ãã¿ãŒã³ãå
ã«èãã DynamoDBã§ã¯ãã©ããªã¯ãšãªãå¿
èŠãããæç¢ºã«ããŠããããŒèšèšãè¡ããRDBã®ããã«åŸããã€ã³ããã¯ã¹ã远å ããŠæè»ã«å¯Ÿå¿ããçºæ³ã§ã¯ããŸããããªãã ããŒãã£ã·ã§ã³ããŒã®èšèšãæéèŠ ããŒãã£ã·ã§ã³ããŒã«ãã£ãŠããŒãã£ã·ã§ã³ã決ãŸããæ€çŽ¢å¹çãšã¹ã±ãŒã©ããªãã£ã倧ããå€ããããããããŒãã£ã·ã§ã³ãé¿ããã¢ã¯ã»ã¹ã忣ããããããªPKãéžã¶ã GSIã§æ€çŽ¢ã®æè»æ§ãç¢ºä¿ ã¡ã€ã³ããŒãã«ã®ããŒãã£ã·ã§ã³ããŒã§ã¯å¯Ÿå¿ã§ããªãã¢ã¯ã»ã¹ãã¿ãŒã³ãããå ŽåãGSIãæŽ»çšããããã ãçµææŽåæ§ãã³ã¹ãã«ã¯æ³šæãå¿
èŠã ä»åã¯ãããŸã§ã§ãå®è£
ã¯ããããã§ãã ãããŸã§ãæºäžã®èšèšãªã®ã§ãå®è£
段éã§æ³å®å€ã®ãšã©ãŒãèšèšã®èŠçŽããçºçãããããããŸããããã®ãšãã¯ãŸã調ã¹ãŠå
±æã§ããã°ãšæããŸãã åå¿è
ãªãã«ãŸãšããŠã¿ãŸããããåãããã«DynamoDBãåŠã³å§ããæ¹ã®åèã«ãªãã°å¹žãã§ãã ç§ãã¡ã¯äžç·ã«åããŠããã仲éãåéããŠããŸãïŒ é»éç·ç ãã£ãªã¢æ¡çšãµã€ã é»éç·ç æ°åæ¡çšãµã€ã å·çïŒ @kawagishi.ibuki ïŒ Shodo ã§å·çãããŸãã ïŒ



























