
OSS
ã€ãã³ã
ãã¬ãžã³
æè¡ããã°
æ¬ããã°ã¯ 2026 幎 4 æ 2 æ¥ã«å
¬éããã AWS Blog â Four security principles for agentic AI systems â ã翻蚳ãããã®ã§ãã ãšãŒãžã§ã³ãã£ã㯠AI ã¯ããœãããŠã§ã¢ã®åäœã®ããæ¹ã質çã«å€ãããã®ã§ããåŸæ¥ã®ãœãããŠã§ã¢ã¯æ±ºå®è«çãªåœä»€ãå®è¡ããŸããçæ AI ã¯äººéã®ããã³ããã«å¿çããŠåºåãçæãã人éã¯ãã®åºåã確èªããããã§ãèªãã®å€æã§å©çšããŸãããšãŒãžã§ã³ãã£ã㯠AI ã¯ããã®ã©ã¡ããšãç°ãªããŸãããšãŒãžã§ã³ãã¯ãœãããŠã§ã¢ããŒã«ã API ã«æ¥ç¶ããå€§èŠæš¡èšèªã¢ãã« (LLM) ãæšè«ãšã³ãžã³ãšããŠäœ¿çšããŠãäžé£ã®ã¢ã¯ã·ã§ã³ãæ©æ¢°åŠçã®é床ã§èªåŸçã«èšç»ããå®è¡ããŸãããããŠããã®çµæã¯çŸå®äžçã«åœ±é¿ãåãŒããŸãããã®å€åã¯ãæ
å ±ã»ãã¥ãªãã£ã«æ°ããªåããæããããŠããŸãã2026 幎 1 æãNIST ã® Center for AI Standards and Innovation (CAISI) ã¯ãããããã·ã¹ãã ãä¿è·ããæ¹æ³ã«ã€ããŠæ¥çã®æèŠãæ±ãã RFI (Request for Information: æ
å ±æäŸäŸé Œ) ãçºè¡ããŸãããAWS ã¯ããšãŒãžã§ã³ãã£ã㯠AI ãµãŒãã¹ã®æ§ç¯ãšéçšã®çµéšã«åºã¥ã㊠åçãæåºããŸãã ããã®èšäºã§ã¯ããã®åçã®äžæ žãšãªã 4 ã€ã®ã»ãã¥ãªãã£ååãšãããããå®è£
ããã¢ãŒããã¯ãã£ã®æ§æèŠçŽ ã«ã€ããŠç޹ä»ããŸãã NIST ã®ãšãŒãžã§ã³ãã£ã㯠AI ã«é¢ãã RFI CAISI ã¯ãéçºè
ããããã€æ
åœè
ãã»ãã¥ãªãã£ç ç©¶è
ã«å¯ŸããèªåŸçã«åäœãã AI ã·ã¹ãã ãæ¥çãšããŠã©ã®ããã«ä¿è·ãã¹ããã«ã€ããŠæèŠãæ±ããŸããããã® RFI ã§ã¯ã5 ã€ã®é åã«ããã£ãŠåããæç€ºãããŠããŸãããšãŒãžã§ã³ãã£ãã¯ã·ã¹ãã ã¯ã©ã®ãããªåºæã®ã»ãã¥ãªãã£äžã®èæ
®äºé
ããããããã·ã¹ãã ã®èªåŸæ§ãé«ãŸãã«ã€ããŠããããã®èæ
®äºé
ã¯ã©ã®ããã«å€åããã®ã? éçºãšãããã€ã«ãããŠãã©ã®ãããªãã©ã¯ãã£ã¹ãã»ãã¥ãªãã£ãåäžãããã®ã? çµç¹ã¯ããšãŒãžã§ã³ãã£ãã¯ã·ã¹ãã ã®ã»ãã¥ãªãã£ãã©ã®ããã«è©äŸ¡ããã®ã? ãããã€ç°å¢ãã©ã®ããã«å¶çŽããç£èŠã§ããã®ã? ãããŠãæ¥çã¯ä»åŸã©ã®åéã®ç ç©¶ã«æ³šåãã¹ãã? ãªããããéèŠãªã®ã ãªã¹ã¯ãšã¡ãªãããä¿å®çã«åæãããšããŠããå€ãã®é åã§ã¯ãšãŒãžã§ã³ãã£ã㯠AI ã®ã¡ãªããããªã¹ã¯ãæããã«äžåããšããçµè«ã«ãªãã§ããããäŒæ¥ãæ¿åºæ©é¢ã§ãšãŒãžã§ã³ãã£ãã¯ãã¯ãããžãŒã®å°å
¥ãæ¥éã«é²ãã§ããããšãããããè£ä»ããŠããŸãããããããšãŒãžã§ã³ãã®äŸ¡å€ã¯ãŸãã«ãã®èªåŸæ§ãšé©å¿æ§ã«ãããããããç¹æ§ãã®ãã®ãã»ãã¥ãªãã£äžã®èª²é¡ãçã¿åºããŸãããšãŒãžã§ã³ãã£ãã¯ã·ã¹ãã ã¯ãæå³ããªãã¢ã¯ã·ã§ã³ãã人éãä»å
¥ããéããªãæ©æ¢°åŠçã®é床ã§å®è¡ããŠããŸãå¯èœæ§ããããŸãã人éã§ããã°ãäœãããããããšæãããšãã«äœæ¥ãäžæãããããšã¹ã«ã¬ãŒã·ã§ã³ãããããŸããããããšãŒãžã§ã³ãã¯ã人éã«ã¯æãããªãããŸãããèªãèªèã§ãããšã¯éãããææåãããŠããªãããªã·ãŒã®å¢çãçŽæçã«ææ¡ã§ãããšãéããŸããã ãããããªããšã«ããšãŒãžã§ã³ãã£ã㯠AI ã®ã»ãã¥ãªãã£å¯ŸçããŒãããèããå¿
èŠã¯ãããŸããã NIST Cybersecurity Framework ã NIST AI Risk Management Framework ã Secure Software Development Framework ãªã©ã®æ¢åã®ã»ãã¥ãªãã£ãã¬ãŒã ã¯ãŒã¯ã¯åŒãç¶ãæå¹ã§ãããããã眮ãæããã®ã§ã¯ãªãããšãŒãžã§ã³ãåºæã®èæ
®äºé
ã«åãããŠæ¡åŒµãã¹ãã§ããäžã§ãæãéèŠãªã®ã¯ãã¢ãŒããã¯ãã£é¢ã§ã®æ¡åŒµã§ããAWS 㯠NIST ãžã®åçã®äžã§ããã®æ¡åŒµã®é²ãæ¹ã瀺ã 4 ã€ã®åºæ¬çãªã»ãã¥ãªãã£ååãæããŸããã ãšãŒãžã§ã³ãã£ã㯠AI ã® 4 ã€ã®ã»ãã¥ãªãã£åå ãããã®ååã¯ããšãŒãžã§ã³ãã£ã㯠AI ã«æ°ããã»ãã¥ãªãã£ãã©ãã€ã ã¯å¿
èŠãªããã®ã®ãæ¢åã®ãã©ã¯ãã£ã¹ã¯é²åãããå¿
èŠããããšããåæã«åºã¥ããŠããŸããæåã® 2 ã€ã®ååã¯åŸæ¥ããåŒãç¶ãããèŠçŽ ãæ±ããæ®ãã® 2 ã€ã®ååã¯çã«æ°ããèŠçŽ ãæ±ããŸãã åå 1: ã»ãã¥ã¢ãªéçºã©ã€ããµã€ã¯ã«ã®ãã©ã¯ãã£ã¹ã¯ãã·ã¹ãã ã®ãã¹ãŠã®ã³ã³ããŒãã³ãã«é©çšãããŸãã ãšãŒãžã§ã³ãã£ã㯠AI ã·ã¹ãã ã¯ãåŸæ¥ã®ãœãããŠã§ã¢ã³ã³ããŒãã³ã (APIãããŒã¿ããŒã¹ããªãŒã±ã¹ãã¬ãŒã·ã§ã³ããžãã¯) ãšãåºç€ã¢ãã«ãããã³ãããã³ãã¬ãŒããæ€çŽ¢ãã€ãã©ã€ã³ãªã©ã® AI èŠçŽ ãçµã¿åããããã®ã§ããã»ãã¥ã¢ãªéçºã©ã€ããµã€ã¯ã«ã¯ããã®äž¡æ¹ã®ã³ã³ããŒãã³ãã察象ãšããå¿
èŠããããŸããåŸæ¥ã®ã³ã³ããŒãã³ãã«ã€ããŠã¯ãã³ãŒãã¬ãã¥ãŒãéçè§£æãäŸåé¢ä¿ã®ã¹ãã£ã³ãè
åšã¢ããªã³ã°ãªã©ã®ç¢ºç«ããããã©ã¯ãã£ã¹ãåŒãç¶ãäžå¯æ¬ ã§ãããã ãããããã®ãã©ã¯ãã£ã¹èªäœããAI ããŒã¹ã®ããŒã«ã«ãã£ãŠåŒ·åããã€ã€ããããšã«çæããŠãã ãããäžæ¹ãAI ã³ã³ããŒãã³ãã«ã¯ç°ãªã課é¡ããããŸããåºç€ã¢ãã«ã¯ç¢ºççã«åäœãããããåŸæ¥ã®ååž°ãã¹ãã¯å¿
èŠã§ãããããã ãã§ã¯ååã§ã¯ãããŸãããçµç¹ã¯ãåäœãã¹ããæµå¯Ÿçè©äŸ¡ãç¶ç¶çãªã¢ãã¿ãªã³ã°ã«ãã£ãŠååž°ãã¹ããè£å®ããAI ã³ã³ããŒãã³ããæ³å®ãããç¯å²å
ã§åäœããããšãæ€èšŒããå¿
èŠããããŸãã åäœã®ããªããã«å¯ŸåŠããã«ã¯ã宿çãªåè©äŸ¡ãåæ§ã«éèŠã§ããã¢ãã«ãæŽæ°ãããã°ãåäœãå€ããå¯èœæ§ããããŸããããŒã ããšãŒãžã§ã³ãã®æ©èœãæ¹è¯ããŠããã«ã€ããŠãããã³ãããã³ãã¬ãŒããå€åããŸããæ°ããããŒã«ãããŒã¿ãœãŒã¹ã远å ãããã°ããšãŒãžã§ã³ãã®éçšäžã®å¯Ÿè±¡é åãåºãããŸãããããã倿Žã®ãã³ã«ãæ°ããªé害ã¢ãŒããæœåšçãªã»ãã¥ãªãã£äžã®åé¡ãçããå¯èœæ§ããããŸããçµç¹ã¯ãè©äŸ¡ãäžåºŠããã®é¢éã§ã¯ãªããç¶ç¶çãªéçšãã©ã¯ãã£ã¹ãšããŠæ±ãå¿
èŠããããŸããããã«ã¯ãã¢ãã«æŽæ°åŸã®èªåãã¹ãããããã€æžã¿ã®ãšãŒãžã§ã³ãã«å¯Ÿããã¬ããããŒã æŒç¿ãæéã®çµéã«äŒŽãåäœã®ããªãããæ€åºããã¢ãã¿ãªã³ã°ãå«ãŸããŸãã åå 2: åŸæ¥ã®ã»ãã¥ãªãã£å¶åŸ¡ã¯åŒãç¶ãå®å
šã«é©çšãããŸãã ãšãŒãžã§ã³ãã£ã㯠AI ã¯æ°ããªèæ
®äºé
ããããããŸãããæ¢åã®ã»ãã¥ãªãã£ãªã¹ã¯ããªããªãããã§ã¯ãããŸãããåŸæ¥ã®ã»ãã¥ãªãã£å¶åŸ¡ã¯ããã®ãã¹ãŠãåŒãç¶ãé©çšãããŸãããšãŒãžã§ã³ãã£ã㯠AI ã·ã¹ãã ã¯ãåŸæ¥ã®ãœãããŠã§ã¢ãšãLLM ãšããŒã«ãçµã¿åãããæ°ããåŠçã«ãŒãã§æ§æãããŠããŸãããšãŒãžã§ã³ãã£ãã¯ãªèŠçŽ ãæ¯ããå¥å
šãªåºç€ãæŽããããã«ãçµç¹ã¯æ¢åã®ãœãããŠã§ã¢ãããŒã«ãèšå®ãæ¢ç¥ã®ãªã¹ã¯ããä¿è·ããå¿
èŠããããŸãã æš©éææ Œãæ··ä¹±ãã代çåé¡ (confused deputy)ãã»ãã·ã§ã³ãã€ãžã£ãã¯ãã³ãŒãã€ã³ãžã§ã¯ã·ã§ã³ããµãã©ã€ãã§ãŒã³ãªã¹ã¯ã¯ããã®ãŸãŸãšãŒãžã§ã³ãã£ãã¯ã·ã¹ãã ã«ãåœãŠã¯ãŸããŸãããšãŒãžã§ã³ãã£ãã¯ãªã³ã³ããã¹ãã§ã¯ããããã®ãªã¹ã¯ã®äžéšãããã«å¢å€§ããŸãããšãŒãžã§ã³ãã¯äººéãããå€§èŠæš¡ãã€é«éã«åäœãããããéå°ãªæš©éãæå³ããªãçµæãæãå¯èœæ§ãé«ããªããŸããã€ãŸãããšãŒãžã§ã³ãã£ãã¯ãªã³ã³ããã¹ãã§ã¢ã¯ã»ã¹ç®¡çã«æå°æš©éã®ååãé©çšããããšã¯ãåŸæ¥ã®ã·ã¹ãã ãšåçãããã以äžã«éèŠã§ãããµãã©ã€ãã§ãŒã³ã®æ»æå¯Ÿè±¡é åãåºãããŸãããšãŒãžã§ã³ãã£ãã¯ã·ã¹ãã ãå©çšããã®ã¯ããµãŒãããŒãã£ã®ã³ãŒãäŸåé¢ä¿ã ãã§ã¯ãããŸãããåºç€ã¢ãã«ããã©ã°ã€ã³ãããŒã«ãµãŒããŒãããŒã¿ååŸãœãŒã¹ãå©çšããŸããAPI ãåŒã³åºããããããŒã¿ããŒã¹ã«å¯ŸããŠã¯ãšãªãå®è¡ããããã³ãŒããçæããããããšãŒãžã§ã³ãã¯ãããŒã«ãšã®å¢çã«æ°ããªã€ã³ãžã§ã¯ã·ã§ã³ã®æ»æå¯Ÿè±¡é åãçã¿åºãå¯èœæ§ããããŸããAI åºæã®å¶åŸ¡ã¯ãããããåºç€ãšãªãã»ãã¥ãªãã£ã眮ãæãããã®ã§ã¯ãªãããã®äžã«è¿œå ãããã®ã§ãªããã°ãªããŸããã åå 3: 決å®è«çãªå€éšå¶åŸ¡ãããšãŒãžã§ã³ãã£ãã¯ã»ãã¥ãªãã£ã®åºçºç¹ã§ãã ããã¯ããšãŒãžã§ã³ãã£ã㯠AI ã®ã»ãã¥ãªãã£ã«ãšã£ãŠæãéèŠãªã¢ãŒããã¯ãã£ååã§ããçµç¹ã¯ããšãŒãžã§ã³ãèªèº«ã®æšè«ãå
éšã®ã¬ãŒãã¬ãŒã«ãããã³ããããŒã¹ã®æç€ºã«é Œãã®ã§ã¯ãªãããšãŒãžã§ã³ãã®æšè«ã«ãŒãã®å€éšã«ããã€ã³ãã©ã¹ãã©ã¯ãã£ã¬ãã«ã®æ±ºå®è«çãªå¶åŸ¡ã«ãã£ãŠãã»ãã¥ãªãã£ã匷å¶ãã¹ãã§ããçç±ã¯åçŽã§ããLLM ã¯ç¢ºççãªæšè«ãšã³ãžã³ã§ãããã»ãã¥ãªãã£ã匷å¶ããããã®ä»çµã¿ã§ã¯ãããŸãããéçºè
㯠LLM ã«ç¹å®ã®ãªã¯ãšã¹ããæåŠããããæç€ºã§ããŸãããããã³ããã€ã³ãžã§ã¯ã·ã§ã³ã®ææ³ã«ãã£ãŠãã®æç€ºãäžæžããããå¯èœæ§ããããŸããLLM ã«ã¢ã¯ã»ã¹ã®å¢çãå®ãããæç€ºããããšã¯ã§ããŠããLLM ã«ã¯ãã®å¢çã確å®ã«åŒ·å¶ããä»çµã¿ããããŸãããããã³ãããã¢ã©ã€ã¡ã³ãã ãã§ãšãŒãžã§ã³ãã®åäœãå¶çŽããããšããã¢ãããŒãã¯ãæªç¥ã®ç¶æ³ã«åçã«é©å¿ã§ãããšãããšãŒãžã§ã³ãæ¬æ¥ã®äŸ¡å€ã«åãããã®ã§ãã 广çãªã»ãã¥ãªãã£ãå®çŸããã«ã¯ãå®å
šã«å®çŸ©ãããæ±ºå®è«çãªå¶åŸ¡ããšãŒãžã§ã³ãã®å€éšã«é
眮ãããã®å¶åŸ¡ã«ãã£ãŠããšãŒãžã§ã³ããã¢ã¯ã»ã¹ã§ããããŒã«ãå®è¡ã§ããæäœãå°éã§ããããŒã¿ã管çããå¿
èŠããããŸããã¢ãã«ãæäœããŠãããããã®å¶åŸ¡ãåé¿ããããšã¯ã§ããŸãããAWS ã¯ããã ã»ãã¥ãªãã£ããã¯ã¹ (security box) ãšåŒãã§ããŸããã»ãã¥ãªãã£ããã¯ã¹ã¯ãšãŒãžã§ã³ãã®å€éšã«çœ®ãããæ±ºå®è«çã«é©çšããã察象ãç¶²çŸ
çã«ã«ããŒããŸãããšãŒãžã§ã³ããšå€éšãšã®ããåãã¯ãã¹ãŠããã®ããã¯ã¹ãçµç±ããŸãã Agentic AI Security Scoping Matrix ãæŽ»çšãããšãçµç¹ã¯ã·ã¹ãã ã®èªåŸæ§ã¬ãã«ã«å¿ããŠããããã®å¶åŸ¡ã®å³æ Œãã調æŽã§ããŸããã¹ã³ãŒãã¯ããã¹ãŠã®ã¢ã¯ã·ã§ã³ã®åã«äººéã«ããæç€ºçãªæ¿èªãå¿
èŠãšããã·ã¹ãã ãããå€éšã€ãã³ãã«åºã¥ããŠèªãã¢ã¯ãã£ããã£ãéå§ããå®å
šèªåŸåã®ã·ã¹ãã ãŸã§å€å²ã«ããããŸãã ã»ãã¥ãªãã£ããã¯ã¹ã¯ããšãŒãžã§ã³ãã®äŸ¡å€ãå¶éãããã®ã§ã¯ãããŸããããããããã®äŸ¡å€ã責任ãã圢ã§å®çŸããããã®åææ¡ä»¶ã§ãããšãŒãžã§ã³ãã£ãã¯ãã¯ãããžãŒãæçããã«ã€ããŠããã®ããã¯ã¹èªäœãé²åãããšãŒãžã§ã³ãã£ãã¯ãªèŠçŽ ãå«ãããã«ãªããšèããããŸããä»ã®ãšãŒãžã§ã³ãã®ã¹ã³ãŒããå¶åŸ¡ããããã«èšèšãããå°çšã® AI ãšãŒãžã§ã³ãããæéã®çµéãšãšãã«äžéšã®æ±ºå®è«çãªå¶çŽã«åã£ãŠä»£ããå¯èœæ§ããããŸãããããããšãŒãžã§ã³ãã¯ãæ°ããæ
å ±ãšã³ã³ããã¹ããæŽ»çšãã人éãè€éãªæ±ºå®è«çå¶åŸ¡ã管çããå Žåãããé©åãªå€æãèªåã§äžããããã«ãªãå¯èœæ§ããããŸãã åå 4: ãã倧ããªèªåŸæ§ã¯ãç¶ç¶çãªè©äŸ¡ãéããŠç²åŸããŠããã¹ãã§ãã çµç¹ã¯ããšãŒãžã§ã³ãã®èªåŸæ§ãããã©ã«ãã§ä»äžããã®ã§ã¯ãªããå®èšŒãããããã©ãŒãã³ã¹ã«åºã¥ããŠæ®µéçã«æ¡å€§ãã¹ãã§ããåºçºç¹ã¯ã圱é¿ã®å€§ããæäœã«ã€ããŠäººéãæææ±ºå®ãè¡ãããšã§ãã䟡å€ã®é«ãæ¬çªããŒã¿ã®å€æŽãéèååŒã®éå§ãæ©å¯æ
å ±ã®å€éšãžã®éä¿¡ã«ã€ãªããå¯èœæ§ã®ããã¢ã¯ã·ã§ã³ã«ãšãŒãžã§ã³ããçŽé¢ããå Žåã¯ã人éãæçµçãªå€æãäžããŸãããšãŒãžã§ã³ããæšå¥šãã人éããããæ¿èªãŸãã¯åŽäžãããšãã圢ã§ãã ãã ãããã®ã¢ãããŒãã«ã¯ãããç¥ããããªã¹ã¯ããããŸãããšãŒãžã§ã³ãã®ãã¹ãŠã®ã¢ã¯ã·ã§ã³ã«äººéã®æ¿èªãå¿
èŠã«ãªããšã倿ãã¹ãä»¶æ°ãã¬ãã¥ãŒæ
åœè
ã®åŠçèœåãè¶
ããŠããŸãå¯èœæ§ããããŸãããã®çµæãæ¿èªãçæ
®ã§ã¯ãªãåå°çã«è¡ãããããã«ãªãã倱æããããåŸãªãç«å Žã«çœ®ããã人éã«è²¬ä»»ãæŒãä»ããããããšã«ãªããŸããçµç¹ã¯ã人éã«ããç£ç£ã®å¯Ÿè±¡ãçã«åœ±é¿ã®å€§ããæäœã«çµã蟌ã¿ããªã¹ã¯ã®äœãæ¥åžžçãªã¢ã¯ã·ã§ã³ã«ãŸã§å®æã«ãã¥ãŒãã³ã€ã³ã¶ã«ãŒã (human-in-the-loop) ã®èšèšãæ±ããªãããã«ããå¿
èŠããããŸãã 人éã«ããç£ç£ããèªåŸæ§ã®æ¡å€§ãžãšé²ãéçã¯ãè©äŸ¡ã«ãã£ãŠåãéãããŸãããšãŒãžã§ã³ããäœãæšå¥šãã人éãäœã決å®ããå®éã«äœãèµ·ããããçµç¹ãäœç³»çã«èšé²ããŠããããšã§ãèªåŸæ§ã®æ¡å€§ãè£ä»ãããšããã³ã¹ãèç©ãããŸãããããã®èšé²ããããšãŒãžã§ã³ãã®æšå¥šã人éã®å€æãå®éã®çµæãšç¶ç¶çã«æŽåããŠããããšã確èªã§ããã°ãçµç¹ã¯äºåæ¿èªããäºåŸã¬ãã¥ãŒãžãããã«æçµçã«ã¯ç¹å®ã®çš®é¡ã®æäœã«ã€ããŠå®å
šãªèªåŸãžãšç§»è¡ã§ããŸãããã®ç§»è¡ã¯ãé¢é£æ§ã®ãªãå¹
åºãã¿ã¹ã¯ã«äžæ¬ã§é©çšããã®ã§ã¯ãªããæäœãŸãã¯ã¯ãŒã¯ãããŒã®åäœã§é²ããã¹ãã§ãã ãã®ç§»è¡ã¯äžæ¹éè¡ã§ã¯ãããŸãããçµç¹ã¯ããšããã³ã¹ããå¿
èŠãšå€æãããå Žåã«ã¯ã人éã«ããç£ç£ãåå°å
¥ã§ããããåããŠããå¿
èŠããããŸãããŸããäžéšã®æ±ºå®è«çãªå¢çã¯ãäºèŠå¯èœãªå°æ¥ã«ããã£ãŠæä¹
çã«ç¶æãããå¯èœæ§ãé«ãã§ããããããããå¢çãååšããã®ã¯ããšãŒãžã§ã³ããä¿¡é Œãç²åŸããŠããªãããã§ã¯ãªããåççãªãªã¹ã¯åæã«ç
§ãããŠãç¹å®ã®ã¢ã¯ã·ã§ã³ãããããçµæã蚱容ã§ããªãããã§ããå
šäœãšããŠã®ã¢ãã«ã¯ãå®èšŒãããèœåã«ãã£ãŠèªåŸæ§ãç²åŸããè©äŸ¡ã«ãã£ãŠçµ±å¶ãããæä¹
çãªå¶çŽã«ãã£ãŠç¯å²ãéå®ãããç¶ç¶çãªã¬ãã¥ãŒã®å¯Ÿè±¡ãšãªããšãããã®ã§ããããããå°éåããã å¢çãšãŒãžã§ã³ã (boundary agent) ããçŽç²ã«æ±ºå®è«çãªå¶åŸ¡ãããåªããææãããããå¯èœæ§ããããŸãããã ãããã®éžæè¢ã¯ãçµéšãšè©äŸ¡ãç©ã¿éããäžã§ãæéããããŠåããŠå®çŸãããã®ã§ãã ååããå®è·µãž 4 ã€ã®ååã¯ãç®æãã¹ãç®æšãå®ãããã®ã§ããç®æšãéæããã«ã¯ãã»ãã¥ãªãã£ããã¯ã¹ãšããåºç¯ãªã»ãã¥ãªãã£ã¢ãŒããã¯ãã£ãæ§æãããå
·äœçãªã¢ãŒããã¯ãã£ã®æ§æèŠçŽ ãå¿
èŠã§ããNIST ãžã®åçã§ã¯ããããã®æ§æèŠçŽ ããã詳ãã説æããŠããŸããããã§ã¯ãã®æŠèŠã玹ä»ããŸããAWS ã¯ãããã®æ§æèŠçŽ ã Amazon Bedrock AgentCore ã«å®è£
ããŠããŸããAmazon Bedrock AgentCore ã¯ãã»ãã¥ãªãã£ãåºç€ããçµã¿èŸŒãã ããšãŒãžã§ã³ãã£ã㯠AI ã·ã¹ãã ãæ§ç¯ããããã€ãéçšããããã®ãã¬ãŒã ã¯ãŒã¯ã§ãã ã³ã³ãã¥ãŒãã£ã³ã°ã®åé¢ã ãšãŒãžã§ã³ãã®ã³ã³ãã¥ãŒãã£ã³ã°ç°å¢ã¯ãå®è¡ãåé¢ãããšãŒãžã§ã³ãéã®ããŒã¿æŒæŽ©ãé²ããå®çŸ©ãããå¢çå
ã«ãšãŒãžã§ã³ããå°ã蟌ããå¿
èŠããããŸããAmazon Bedrock AgentCore ã¯ããšãŒãžã§ã³ãã Firecracker äžã§å®è¡ããŸããFirecracker 㯠Rust ã§èšè¿°ããããªãŒãã³ãœãŒã¹ã®ä»®æ³ãã·ã³ãããŒãžã£ãŒã§ããLinux KVM ãšããŒããŠã§ã¢ããŒã¹ã®ä»®æ³åãåºç€ãšãã軜éãªãã€ã¯ã VM ãæäŸããã³ã³ãã䞊ã¿ã®é床ãšãå®å
šãªä»®æ³ãã·ã³ãšåçã®åé¢ç¹æ§ãäž¡ç«ããŠããŸããFirecracker ã®ã»ãã¥ãªãã£äžéèŠãªäžæ žèŠçŽ ã¯ AWS ã®ããŒã ã«ãã£ãŠåœ¢åŒæ€èšŒæžã¿ã§ãããRust ã«ããã¡ã¢ãªå®å
šæ§ã«å ããŠããããªãä¿èšŒãæäŸããŠããŸãã ã¢ã€ãã³ãã£ãã£ãšã¢ã¯ã»ã¹ç®¡çã ãšãŒãžã§ã³ãã«ã¯ãåºæã®ã¢ã€ãã³ãã£ãã£ãå®å
šãªèªèšŒæ
å ±ã®ä¿ç®¡ãã€ã³ãã©ã¹ãã©ã¯ãã£ã¬ãã«ã§åŒ·å¶ãããæå°æš©éã®èªå¯ãå¿
èŠã§ãã AgentCore Identity ã¯ããšãŒãžã§ã³ãã«ãã·ã³ã¢ã€ãã³ãã£ãã£ãæäŸããOAuth ãšå®å
šãªèªèšŒæ
å ±ã®ãããŒã管çããŸãããŸãããã现ããªã¢ã¯ã»ã¹å¶åŸ¡ãå®çŸããããã« AWS Identity and Access Management (IAM) ãšçµ±åãããŠããŸãã屿§ããŒã¹ã®ã¢ã¯ã»ã¹å¶åŸ¡ããµããŒããã远跡å¯èœãªå§ä»»ãã§ãŒã³ãç¶æããããšã§ããšãŒãžã§ã³ãã®ã¢ã¯ã·ã§ã³ãšåŒã³åºãå
ã®ãŠãŒã¶ãŒãšã®é¢ä¿ãç£æ»å¯èœãªç¶æ
ã«ä¿ã¡ãŸãã ããŒã«ã¢ã¯ã»ã¹ãšããªã·ãŒã®é©çšã ãšãŒãžã§ã³ããã¢ã¯ã»ã¹ã§ããããŒã«ãå¢ãããã³ã«ããã®æçšæ§ãšæœåšçãªãªã¹ã¯ã®äž¡æ¹ãæ¡å€§ããŸãããšãŒãžã§ã³ãããšã«ããŒã«ãžã®ã¢ã¯ã»ã¹ãåå¥ã«ç®¡çãããšãçµã¿åãããççºçã«å¢å ãã管çããããªããªããŸããAgentCore Gateway ã¯ããšãŒãžã§ã³ããšããŒã«ã®éã§äžå
çãªä»²ä»åœ¹ãšããŠæ©èœããåäžã®å¶åŸ¡ãã€ã³ãã§èªèšŒãšèªå¯ãé©çšããŸããAPI ã¬ãã«ã ãã§ãªããåã
ã®ãã©ã¡ãŒã¿ã«è³ããŸã§ããŒã«åŒã³åºããæ€æ»ã§ããŸãã AgentCore Policy ã¯ããªãŒãã³ãœãŒã¹ã® Cedar èªå¯èšèªã«åºã¥ããŠæ§ç¯ãããŠãããåœ¢åŒæ€èšŒæžã¿ã®ããªã·ãŒé©çšãå®çŸããŸããããŒã 㯠Cedar ããªã·ãŒãèªç¶èšèªã§äœæããŠããã¬ãã¥ãŒã§ãããããLLM ã®æè»æ§ãšåœ¢åŒææ³ã®å³å¯æ§ãäž¡ç«ã§ããŸãã ãªãã¶ãŒãããªãã£ã ãªãã¶ãŒãããªãã£ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã«ã¯ããªã¢ã«ã¿ã€ã ã®ã¢ãã¿ãªã³ã°ãšèª¿æ»ã«ååãªã³ã³ããã¹ããååŸã§ããããšããããŠç£èŠå¯Ÿè±¡ã®ãšãŒãžã§ã³ãèªèº«ããä¿è·ãããŠããããšãæ±ããããŸããçµç¹ãåŸæ¥å¡ã«èªåã®ç£æ»ãã°ã®ç·šéãèš±å¯ããªãã®ãšåæ§ã«ããã®ååã¯ãšãŒãžã§ã³ãã«ãåœãŠã¯ãŸããŸããAgentCore ã¯ã AgentCore Gateway ãã»ãã·ã§ã³ã¬ãã«ã®ãã¬ã¡ããªãå
éšã®ç¶æ
å€åãèšé²ãã詳现ãªãã¬ãŒã¹ãéããŠãªãã¶ãŒãããªãã£ãæäŸããŸãããããã®æ©èœã¯ãAgentCore ã®å€éšã§å®è¡ãããŠãããšãŒãžã§ã³ãã«ãé©çšã§ããŸãã ã¢ãã«å®è¡ç°å¢ã ã¢ãã«å®è¡ç°å¢ã®ã»ãã¥ãªãã£ã¯ããšãŒãžã§ã³ãèªäœã®ã»ãã¥ãªãã£ãšåããããéèŠã§ãã Amazon Bedrock ã¯ãAWS ãã¢ãã«ãããã€ããŒãã客æ§ã®ããã³ãããšã¬ã¹ãã³ã¹ã«ã¢ã¯ã»ã¹ããªããåé¢ããããããã¯ãŒã¯ç°å¢ã§ã¢ãã«ãå®è¡ããŸããã客æ§ããã°èšé²ãæå¹ã«ããå Žåããã®ãã°ã¯ä¿åæã«æå·åãããã«ã¹ã¿ããŒãããŒãžãããŒã«ãã£ãŠä¿è·ãããŸããããããã¢ãŒããã¯ãã£ã¬ãã«ã®åé¢ã¯ãæ¿åºæ©é¢ãäŒæ¥ã®ã客æ§ã Amazon Bedrock ãæ¡çšããŠããäž»ãªçç±ã® 1 ã€ã§ãã 蚳泚: ã«ã¹ã¿ããŒãããŒãžãããŒã«ããä¿è·ãé©çšããã«ã¯ããã°ã®é
ä¿¡å
ã® Amazon S3 ãã±ããã§ã«ã¹ã¿ããŒãããŒãžãããŒã䜿çšãã SSE-KMS ãèšå®ããããAmazon CloudWatch Logs ã®ãã°ã°ã«ãŒãã«ã«ã¹ã¿ããŒãããŒãžãããŒãé¢é£ä»ããŠæå·åãèšå®ããå¿
èŠããããŸããåç
§: CloudWatch Logs ãš Amazon S3 ã䜿çšããŠã¢ãã«åŒã³åºããã¢ãã¿ãªã³ã°ãã æ±ºå®è«çãªå€éšå¶åŸ¡ã¯ãAI åŠçã«ãŒãå
ã®å¶åŸ¡ã«ãã£ãŠè£å®ãããŸãã Amazon Bedrock Guardrails ã¯ã åé¡åš (classifier) ãšåŒã°ããå°èŠæš¡ãª AI ã¢ãã«ã䜿çšããŠããã³ãããšã¬ã¹ãã³ã¹ãæ€æ»ããããã³ããã€ã³ãžã§ã¯ã·ã§ã³ãªã©ã®èª²é¡ã«å¯ŸåŠããŸããèªåæšè«ãã§ãã¯ã¯ããã«äžæ©é²ãã§ãããéçºè
ã¯ç¹å®ã®ç¥èé åã®åœ¢åŒã¢ãã«ãäœæããLLM ã®åºåããã®ã¢ãã«ã«æºæ ããŠããããšãæ€èšŒã§ããŸãããã®çµæã¯æ±ºå®è«çã§ãããæ£ããã蚌æã§ãããã®ã«ãªããŸãã ä»åŸã®å±æ ãšãŒãžã§ã³ãã£ã㯠AI ã¯ãœãããŠã§ã¢ã®åäœã®ããæ¹ãå€ããŸããããã®ã»ãã¥ãªãã£å¯Ÿçã¯æ°å幎ã«ããã£ãŠç¢ºç«ãããŠãããã©ã¯ãã£ã¹ã®äžã«æãç«ã£ãŠããŸããæ¢åã®ãã¬ãŒã ã¯ãŒã¯ã¯é©åãªåºç€ãšãªããŸããåãçµãã¹ãã¯ãæ¢åã®ãã¬ãŒã ã¯ãŒã¯ããšãŒãžã§ã³ãåºæã®èæ
®äºé
ã«åãããŠæ¡åŒµããããšã§ããçµç¹ã¯ãã»ãã¥ã¢ãªéçºã©ã€ããµã€ã¯ã«ã®ãã©ã¯ãã£ã¹ã AI ã³ã³ããŒãã³ãã«é©çšããåŸæ¥ã®ã»ãã¥ãªãã£å¶åŸ¡ãç¶æããå¿
èŠããããŸãããŸãããšãŒãžã§ã³ãã®å€éšã«ããæ±ºå®è«çãªå¶åŸ¡ã«ãã£ãŠã»ãã¥ãªãã£ã匷å¶ããäœç³»çãªè©äŸ¡ãéããŠãã倧ããªèªåŸæ§ãç²åŸããŠããã¹ãã§ãã ãããã®ååã¯çè«äžã®ãã®ã§ã¯ãããŸãããAWS ããšãŒãžã§ã³ãã£ã㯠AI ãµãŒãã¹ã®æ§ç¯ãšéçšãéããŠåŸãçµéšãåæ ãããã®ã§ãããAWS ã®ã€ã³ãã©ã¹ãã©ã¯ãã£èšèšã«ãçµã¿èŸŒãŸããŠããŸããNIST ãæ¥çããã®æèŠãåºã«ã¬ã€ãã³ã¹ãçå®ããŠããäžã§ãAWS ã¯ãã客æ§ããšãŒãžã§ã³ãã£ã㯠AI ã·ã¹ãã ãå®å¿ããŠæ§ç¯ãéçšã§ããããæ¯æŽããããã®æè³ãä»åŸãç¶ããŠãããŸãã AWS ãã客æ§ã® AI ã¯ãŒã¯ããŒãã®ä¿è·ãã©ã®ããã«æ¯æŽããŠãããã®è©³çްã«ã€ããŠã¯ãã AWS AI Security ãããŒãžãã芧ããã ãããã Amazon response to the CAISI Request for Information regarding Security Considerations for Artificial Intelligence Agents ãããèªã¿ãã ããã Mark Ryland Mark 㯠AWS ã® Office of the CISO ã®ãã£ã¬ã¯ã¿ãŒã§ãããã¯ãããžãŒæ¥çã§ 30 幎以äžã®çµéšãæã¡ããµã€ããŒã»ãã¥ãªãã£ããœãããŠã§ã¢ãšã³ãžãã¢ãªã³ã°ã忣ã·ã¹ãã ãæè¡æšæºåãå
Œ
±æ¿çã®åéã§ãªãŒããŒãåããŠããŸãããçŸè·ã«å°±ãåã¯ãAWS World Public Sector ããŒã ã§ Director of Solution Architecture and Professional Services ãåããŠããŸããã Riggs Goodman III Riggs 㯠AWS ã® Principal Solution Architect ã§ããçŸåšã¯ AI ã»ãã¥ãªãã£ã«æ³šåããŠãããã客æ§ãšããŒãããŒã AWS ã§ AI ã¯ãŒã¯ããŒããæ§ç¯ã§ãããããæè¡çãªã¬ã€ãã³ã¹ãšã¢ãŒããã¯ãã£ãã¿ãŒã³ãæäŸãããªãŒããŒã·ãããçºæ®ããŠããŸãã瀟å
ã§ã¯ãã客æ§ãšããŒãããŒã®èª²é¡ã解決ãããããAWS ã®ãµãŒãã¹ããŒã å
šäœã§æè¡æŠç¥ãšã€ãããŒã·ã§ã³ãæšé²ããŠããŸãã Todd MacDermid Todd 㯠Amazon AI Security Group ã® Principal Security Engineer ã§ããAmazon ã§ 15 幎以äžã«ãããã䞻㫠AWS Security ã«æºãã£ãŠããŸãããAmazon ã«å
¥ç€Ÿããåã¯ã10 幎éãã¬ããããŒã ã®ã³ã³ãµã«ãã£ã³ã°ããã¢ããªã±ãŒã·ã§ã³ããã³ãããã¯ãŒã¯ã®ã»ãã¥ãªãã£ã«åŸäºããŠããŸããã æ¬ããã°ã¯ Security Solutions Architect ã® äžå³¶ ç« å ã翻蚳ããŸããã
æ°åã®äžã«ã¯ããã°ããåãåã£ãŠã¿ãªããšæ³åãã«ãããã®ããããŸãã2026 幎 10 æ 5 æ¥é±ããã©ã€ã ã㌠2026 ã®ã¡ããªã¯ã¹ãå
¬éããŸããããç§ãå¿ã«æ®ã£ãã®ã¯ 2.3 京件ã§ããããã¯ãã€ãã³ãäžã« Amazon ElastiCache ãããŒã¯ã«éããæ¯æ¥ã®ãªã¯ãšã¹ãæ°ã§ãããã©ã€ã ããŒã¯6æã«éå¬ãããããããã®æçš¿ã¯ãã€ãæ¯ãè¿ããšããŠå
¬éãããŠããããã®æéå·®ãèªã䟡å€ãçãèŠå ã®1ã€ã§ããæ°åãããªãã®ããšã«å±ãé ã«ã¯ããããå®éã«èµ·ãããšããå¯äžã®èšŒæ ã¯ãäœãåé¡ãèµ·ããªãã£ããšããããšã ãã§ãã ãã®é±ã®æ®ãã¯å¥ã®æ¹åã«é²ã¿ãŸãããããå°ãããããå®ããããå¶çŽã®ããæ¹åã§ããClaude Haiku 5.5 ã Amazon Bedrock ã§å©çšå¯èœã«ãªããHaiku 4.5 ãšæ¯ã¹ãŠçŽ 75 ããŒã»ã³ãã®ã³ã¹ãåæžãå®çŸããŸãããAmazon Nova 2.5 Sonic ã¯é³å£°ãšãŒãžã§ã³ãã®å¿çãããçŽ æ©ãããStrands Box ã¯ãšãŒãžã§ã³ããå®è¡ã§ããããšã«å¯ŸããŠæç¢ºãªå¢çãèšããããã«ç»å ŽããŸãããããã§ã¯ã10 æ 13 æ¥é±ã® AWS ãã¥ãŒã¹ãèŠãŠãããŸããã⊠䞻ãªããã㯠All the numbers: Amazon Prime Day 2026 powered by AWS ã¯ã2016 幎ãŸã§é¡ãäŒçµ±ã®ææ°çã§ããããã®èŠæš¡ã¯äŸç¶ãšããŠé ã®äžã«åããã®ãé£ãããã®ã§ããPrime Day ã® 4 æ¥éã§ã Amazon DynamoDB 㯠59 å
ä»¶ãè¶
ãããªã¯ãšã¹ããåŠçããããŒã¯æã«ã¯ 1 ç§ããã 1 å 9,200 äžä»¶ã®ãªã¯ãšã¹ãã«éããŸããããäžæ¡ããªç§ã®ã¬ã¹ãã³ã¹ãç¶æããŸããã AWS Lambda 㯠1 æ¥ããã 2.3 å
ä»¶ãè¶
ããåŒã³åºããåŠçããŸããã Amazon EBS 㯠24.8 å
åãè¶
ãã I/O æäœã®ããŒã¯ã«éããæ¯æ¥ 1 ãšã¯ãµãã€ã以äžã®ããŒã¿ã転éããŸããã Amazon ECS 㯠AWS Fargate äžã§ 1 æ¥å¹³å 1 å 5,830 äžã¿ã¹ã¯ãèµ·åããåå¹Žæ¯ 47.7 ããŒã»ã³ãå¢ãšãªãã AWS Graviton 㯠Amazon.com ã䜿çšãã Amazon EC2 ã³ã³ãã¥ãŒãã£ã³ã°ã®æå€§ 49 ããŒã»ã³ããæ¯ããŸããã ãã ããç§ãäœåºŠãç«ã¡è¿ã£ãŠããŸãæ°åã¯ãã¹ã«ãŒãããã®èšé²ã§ã¯ãããŸãããããŒã ã¯ã€ãã³ãã«å
ç«ã¡ã44,000 ä»¶ãè¶
ãã AWS Fault Injection Service å®éšã宿œããŸããããã㯠2025 幎ã«å®æœããæ°ã® 6 å以äžã§ãããããã¯æå³çã«æ³šå
¥ãããé害ã§ãããæ°ãæåããä»èŸŒãŸããããšã§ãäžèšã®äœå
ä»¶ãã®ãªã¯ãšã¹ããæ®éã®è²·ãç©ã®ååŸã«å€ããã®ã§ããèªç€Ÿã®ããŒã¯ã¿ã€ã ã«åããŠãããªãã AWS Countdown Premium ã¯ãŸãã«ãã®ãããªèšç»ã®ããã«äœãããŠããŸãã 10 æ 5 æ¥é±ã®ãªãªãŒã¹ 10 æ 5 æ¥é±ã®ãªãªãŒã¹ã®ãã¡ãç§ã泚ç®ãããã®ãããã€ãã玹ä»ããŸãã Claude Haiku 5.5 ã AWS ã§å©çšã§ããããã«ãªããŸãã â Amazon Bedrock ãš Claude Platform on AWS ã§ãClaude 5.5 ãã¡ããªãŒã®æéã¢ãã«ãå©çšã§ããããã«ãªããŸãããã»ãšãã©ã®ã¿ã¹ã¯ã§ãClaude Haiku 4.5 ãããçŽ 75% å°ãªããŠãã¿ãŸããeffort ã³ã³ãããŒã«ãåããåã® Haiku ã§ãããã¯ãŒã¯ããŒãå
šäœã§ 1 ã€ã®èšå®ãåºå®ããã®ã§ã¯ãªããã¿ã¹ã¯ããšã«ã³ã¹ããšç¥èœã®ãã©ã³ã¹ã調æŽã§ããŸããClaude Opus 5.5 ãšèªç¶ã«çµã¿åãããããŸããOpus ãèšç»ãç«ãŠãŠå€æãäžããHaiku ã¯é«éã§å®äŸ¡ãªãããã«ãŒãã£ã³ã°ãåé¡ã倿°ã®ãã¡ã€ã«ã«ãŸãããå°ããªã³ãŒã倿Žã®ããã«ãå€ãã® Haiku ãµããšãŒãžã§ã³ãã䞊åã§å®è¡ã§ããŸãã é³å£°ãšãŒãžã§ã³ãçš Amazon Nova 2.5 Sonic â é³å£°ããé³å£°ãžã® Amazon Nova ã¢ãã«ã§ãªã¢ã«ã¿ã€ã é³å£°ãšãŒãžã§ã³ããæ§ç¯ã§ããããã«ãªããŸãããããã«ãããæšè«ãæç€ºã®è¿œè·¡ãããŒã«åŒã³åºãã®ç²ŸåºŠãåäžããã¬ã€ãã³ã·ãŒãäœããªããŸãããã®çµã¿åããã¯ãã«ãã¹ãããã®äœæ¥ã«éèŠã§ãããµããŒããšãŒãžã§ã³ã㯠1 ã€ã®äŒè©±ã®äžã§æ³šæãæ€çŽ¢ããè¿åè³æ Œã確èªããè¿åãéå§ã§ããŸãã7 èšèªã§ã®è¡šçŸåè±ããªé³å£°ãå¶åŸ¡å¯èœãªã¿ãŒã³ãã€ãã³ã°ã256K ã®ã³ã³ããã¹ããŠã£ã³ããŠãç¶æãã now generally available ãšãªã£ã Strands Bidi Agents ãšçµã¿åãããããšã§ãæ°è¡ã®ã³ãŒãã§æ¬çªçšã®é³å£°ãšãŒãžã§ã³ããèµ·åã§ããŸãã Amazon GuardDuty RDS Protection now detects data exfiltration and destruction â Amazon GuardDuty ã¯ã Amazon Aurora PostgreSQL ããã³ Amazon RDS for PostgreSQL ã«ãããŠããã°ã€ã³ã®ç°åžžãè¶
ããŠã¯ãšãªèªäœãç£èŠããããã«ãªããŸãããããŒã¿ã¢ã¯ãã£ããã£åã RDS Protection ã¯è¡åããŒã¹ã©ã€ã³ãæ§ç¯ããML ããŒã¹ã®ç°åžžæ€ç¥ãšè
åšã€ã³ããªãžã§ã³ã¹ãçµã¿åãããŠç°åžžãªããŒã¿ã¢ã¯ã»ã¹ãæ€åºããŸãããšãŒãžã§ã³ãã远å ã€ã³ãã©ã¹ãã©ã¯ãã£ãããŒã¿ããŒã¹èšå®ã®å€æŽã¯äžèŠã§ããããã«ããå®éã®ã®ã£ãããåãŸããŸããæ»æè
ããã£ãã·ã³ã°ãèšå®ãã¹ã«ããæå¹ãªèªèšŒæ
å ±ãå
¥æãããšããã®ã¯ãšãªã¯ããªãã®ã¢ããªã±ãŒã·ã§ã³ã®ã¯ãšãªãšèŠåããã€ããªããªãå¯èœæ§ããããŸãã AWS Lambda supports OAuth for self-managed Apache Kafka event sources â Amazon Cognito ã Okta ãªã©ã®ãšã³ã¿ãŒãã©ã€ãº ID ãããã€ããŒãéã㊠Lambda Kafka ã³ã³ã·ã¥ãŒããŒãèªèšŒã§ããããã«ãªããŸãããã€ãã³ããœãŒã¹ãããã³ã°ã¯ä»¥åãSASL/PLAINãSASL/SCRAMãmTLS ã®ã¿ããµããŒãããŠãããããèŠå¶æ¥çã®ããŒã 㯠Kafka ESM ããŸã£ãã䜿çšã§ããŸããã§ãããããã«ãããKafka ESM ã®èªåã¹ã±ãŒãªã³ã°ããããåŠçããšã©ãŒåŠçãã€ãã³ããã£ã«ã¿ãªã³ã°ããä»ã®ããããå Žæã§é©çšããŠããã®ãšåã ID ã¬ããã³ã¹ãšãšãã«å©çšã§ããŸããã»ã«ããã¹ãåã¯ã©ã¹ã¿ãŒããã³ Confluent CloudãAivenãRedpanda ãªã©ã®ãããŒãžããµãŒãã¹ã§åäœããŸãã Amazon Redshift adds Apache Iceberg materialized views â é«ã³ã¹ããªçµåãšéèšã Amazon Redshift ã§äžåºŠäºåèšç®ãããã®çµæã Amazon S3 ã« Iceberg ããŒãã«ãšããŠä¿åãã AWS Glue Data Catalog ã«ç»é²ã§ããããã«ãªããŸããã䜿ãæ
£ãã SQL ã§äœæã§ããçµæã¯ Amazon Athena ãApache SparkãTrinoãSnowflake ãªã©ãIceberg äºæã®ãããããšã³ãžã³ããããã«ã¯ãšãªã§ããŸããRedshift ã¯å€æŽãããéšåã®ã¿ãåèšç®ããããšã§ãããããææ°ã®ç¶æ
ã«ä¿ã¡ãŸãã詳现ãç¥ãããå Žåã¯ã AWS Big Data ããã°ã®åªããæ·±æãèšäº ãã芧ãã ããã AWS ã®ãç¥ããã«é¢ãã詳ãããªã¹ãã«ã€ããŠã¯ãã AWS ã®ææ°æ
å ± ãããŒãžãã芧ãã ããã AWS ã®ãã®ä»ã®ãã¥ãŒã¹ çãããèå³ãæã€ãšæããããã®ä»ã®èšäºãšãªãœãŒã¹ãããã€ãã玹ä»ããŸãã Introducing Strands Box: AI agent sandboxes powered by Dogwood â ããå€ãã®äººãããã¹ãŠã®ã¹ããããæ¿èªããããšãªããšãŒãžã§ã³ãã«ã·ã§ã«ã³ãã³ããå®è¡ãããã API ãåŒã³åºããããããããã«ãªããšãåé¢ã ãã§ã¯ååã§ã¯ãªããªããŸãã Strands Box ã¯ãOS ã¬ãã«ã®å°ã蟌ããš Dogwood ã§èšè¿°ããããã现ããããªã·ãŒãçµã¿åããããªãŒãã³ãœãŒã¹ãµã³ãããã¯ã¹ (Apache 2.0ãéçºè
ãã¬ãã¥ãŒ) ã§ãããæš©éããšãŒãžã§ã³ãããã§ã«è¡ã£ãå
容ã«äŸåãããããšãã§ããŸããããšãŒãžã§ã³ãã«ã€ã³ã·ãã³ããã£ã³ãã«ãžã®æçš¿ãèš±å¯ãããã10 åéã« 3 åãŸã§ããšæå®ããããããšãŒãžã§ã³ãã®ããã»ã¹å€ãã匷å¶ã§ããŸãããŸããå®éã®èªèšŒæ
å ±ããšã°ã¬ã¹ã²ãŒããŠã§ã€ã§ä»äžããããšã§ããšãŒãžã§ã³ãã®ç°å¢ããèªèšŒæ
å ±ãæé€ããŸãã AWS Continuum ã¯ãèªåŸåã³ãŒãã»ãã¥ãªãã£ã®æ°ããæšæºãæã¡ç«ãŠãŸãã â ãã®ããŒãã«é¢é£ããŠãAWS Continuum for Penetration Testing ããããªãã¯ãã¬ãã¥ãŒã§ CI/CD ãã€ãã©ã€ã³ã«çµ±åãããããã«ãªããŸãã ãããã«ããããããã¬ãŒã·ã§ã³ãã¹ãã¯å€éšã§èµ·ããããšã§ã¯ãªãããããã€æã®ã€ãã³ãã«å€ãããŸãããéçºè
ã¯ãé倧床ã圱é¿ãåãããšã³ããã€ã³ãã修埩ã¬ã€ãã³ã¹ãå«ãæ€åºçµæããã€ãã©ã€ã³ã®åºåã§çŽæ¥åãåãããã€ãã©ã€ã³ãä¿®æ£ãæ€èšŒããããã«åãã¹ãããŸãã How Postman runs Agent Mode for 40 million developers on Amazon Bedrock â éåžžã«å€§èŠæš¡ãªéçºè
ãªãŒãã£ãšã³ã¹ã«ãµãŒãã¹ãæäŸããæ©èœã®èåŸã«ããã¢ãŒããã¯ãã£ã®ç޹ä»ã§ãããšãŒãžã§ã³ãæ©èœããã¢ããå®éã®ãã©ãã£ãã¯ã«èããããã®ãžç§»è¡ããäºå®ãªããèªã䟡å€ããããŸãã ICYMI: 2026 幎 9 æã« AI ãã«ããŒåãã«ç»å Žãããã® â æ°å€ãã®ã¢ãã«ãªãªãŒã¹ããã£ãæãèŠéããæ¹ã¯ããããäžãæã§ãŸãšããŠãã£ããã¢ããã§ãã tidy ãªèšäºã§ãã è¿æ¥éå¬äºå®ã® AWS ã€ãã³ã ã«ã¬ã³ããŒã確èªããŠãè¿æ¥éå¬äºå®ã® AWS ã€ãã³ãã«ãµã€ã³ã¢ããããŸãããã AWS re:Invent â re:Invent ã 11 æ 30 æ¥ãã 12 æ 4 æ¥ãŸã§ã©ã¹ãã¬ã¹ã«æ»ã£ãŠéå¬ãããäºçŽåžãçŸåšåä»äžã§ããã»ãã·ã§ã³ã«ã¿ãã°ãå
¬éãããã®ã§ã ç»é² ããŠããã£ãŒã¯ããŒã¯ãã¯ãŒã¯ã·ã§ããããã«ããŒã»ãã·ã§ã³ã®åžãåãŸãåã«ç¢ºä¿ããŸãããã AWS Community Days â ã³ãã¥ããã£ãªãŒããŒãäŒç»ããã³æäŸããã³ãã¥ããã£äž»å°ã®ã«ã³ãã¡ã¬ã³ã¹ã§ãããä»ã¯ãŸãã«å€å¿ãªææãè¿ããŠããŸããä»åŸã®éå¬å°ã«ã¯ã ãµã³ãã©ã³ã·ã¹ã³ (10 æ 13 æ¥)ã ãã€ã¢ã (10 æ 14 æ¥)ã ããªã¹ãã³ (10 æ 16 æ¥)ã ã±ãŒãã¿ãŠã³ (10 æ 16 æ¥)ã ãã«ã¿ (10 æ 16 æ¥)ã ã ã³ã〠(10 æ 17 æ¥) ãå«ãŸããŸãããããã©ãžã«ã§ã¯ã ã³ãã¥ããã£ã«ã¬ã³ã㌠ã«å¹Žæ«ãŸã§ã«ããã«å€ãã®éå¬åã远å ãããäºå®ã§ãã AWS Builder Center ã«åå ããŠããã«ããŒãšã€ãªããããœãªã¥ãŒã·ã§ã³ãå
±æããéçºããµããŒãããã³ã³ãã³ãã«ã¢ã¯ã»ã¹ããŸãããã ãã¡ã ãããä»åŸéå¬ããããã¹ãŠã® AWS äž»å°ã®å¯Ÿé¢ã€ãã³ãããã³ä»®æ³ã€ãã³ããšããããããŒåãã®ã€ãã³ããã芧ããã ããŸãã 10 æ 13 æ¥é±ã®ãã¥ãŒã¹ã¯ä»¥äžã§ãã10 æ 19 æ¥é±ã«åã³ã¢ã¯ã»ã¹ããŠãæ°ã㪠Weekly Roundup ããã²ãèªã¿ãã ãã! â Daniel Abib ãã®èšäºã¯ãWeekly Roundup ã·ãªãŒãºã®äžéšã§ããAWS ããã®è峿·±ããã¥ãŒã¹ãçºè¡šãç°¡åã«ãŸãšããŠæ¯é±ã玹ä»ããŸã! åæã¯ ãã¡ã ã§ãã
æ¬èšäºã¯ 2026 幎 10 æ 1 æ¥ ã«å
¬éãããã Working with foreign key constraints in Aurora DSQL ãã翻蚳ãããã®ã§ãã Amazon Aurora DSQL ã¯å€éšããŒå¶çŽããµããŒãããŠãããããã¢ããªã±ãŒã·ã§ã³ã®åç
§æŽåæ§ãããŒã¿ããŒã¹åŽã§çŽæ¥ä¿èšŒã§ããŸããå¶çŽã®é©çšæ¹åŒã¯ã忣åãã€ããã¯ã䜿ããªãã¯ãŒã¯ããŒãåãã«æé©åãããŠããŸãã PostgreSQL ã§ã¯ãå€éšããŒã®ãã§ãã¯æã«åç
§å
ã®è¡ã«å¯Ÿã㊠FOR KEY SHARE ããã¯ãååŸããŸãããã®ãããããŒåã倿Žãããè¡ãåé€ããããããã©ã³ã¶ã¯ã·ã§ã³ã¯ããã®è¡ãåç
§äžã®ãã©ã³ã¶ã¯ã·ã§ã³ãçµãããŸã§åŸ
ããããŸããAurora DSQL ã¯ããã©ã³ã¶ã¯ã·ã§ã³ã®å®è¡äžã«ã¹ãã¬ãŒãžã®ã¹ãããã·ã§ããã«å¯ŸããŠå€éšããŒå¶çŽããã§ãã¯ããåæå®è¡ã«ããç«¶åãã³ãããæã«è§£æ±ºãããããè¡ã¬ãã«ã®ããããã³ã°ãçºçããŸãããåæå®è¡æ§ãã¹ã«ãŒããããç ç²ã«ããã«ãåç
§æŽåæ§ãä¿èšŒã§ããŸãã æ¬èšäºã§ã¯ãAurora DSQL ã§ã®å€éšããŒå¶çŽã®å®çŸ©ã峿ãã§ãã¯ãšé
å»¶ãã§ãã¯ã®èšå®ãããŠã³ã¿ã€ã ãªãã§æ¢åããŒãã«ã«å¶çŽã远å ããæ¹æ³ã楜芳çåæå®è¡å¶åŸ¡ (OCC) ã§åæå®è¡æã®ç«¶åã解決ããä»çµã¿ã説æããŸãããŸããã¹ã±ãŒã«ããŠãå®å
šãªå€éšã㌠(FK) é¢ä¿ã®èšèšã«ã€ããŠãåãäžããŸããEC ãµã€ãã®æ³šæãã€ãã©ã€ã³ãããŒã¿ç§»è¡ã¯ãŒã¯ãããŒãšãã£ãå®è·µçãªäŸã«å ããŠãOCC ã®ç«¶åã«å¯Ÿããã¢ããªã±ãŒã·ã§ã³åŽã®ãªãã©ã€ããžãã¯ã®æéã玹ä»ããŸãã ãœãªã¥ãŒã·ã§ã³ã®æŠèŠ Aurora DSQL ã¯ãå€éšããŒå¶çŽã忣ç°å¢åãã®æ€èšŒã®ä»çµã¿ãšããŠå®è£
ããŠããŸããå€éšããŒé¢ä¿ã«ããããããŒã¿ããã©ã³ã¶ã¯ã·ã§ã³ã倿ŽãããšãAurora DSQL ã¯ã¹ããŒãã¡ã³ãã®å®è¡æã«ã¹ãããã·ã§ããããŒã¹ã®æ€èšŒãè¡ã (峿ãã§ãã¯ã®å¶çŽã®å Žå)ãã³ãããæã«æçµçãªå€å®ãè¡ããŸããã³ãããæžã¿ã®ãã©ã³ã¶ã¯ã·ã§ã³ãå€éšããŒå¶çŽã«éåããããšã¯ãªãããã§ãã¯ã®å®è¡äžã«ãã©ã³ã¶ã¯ã·ã§ã³å士ããããã¯ãåãããšããããŸããã Aurora DSQL ã®å€éšããŒãµããŒãã®äž»ãªç¹åŸŽ: PostgreSQL äºæã®æ§æ: æšæºã® REFERENCES å¥ãš FOREIGN KEY å¥ã䜿çšã§ããŸãããã¹ãŠã®åç
§ã¢ã¯ã·ã§ã³ (NO ACTIONãRESTRICTãCASCADEãSET NULLãSET DEFAULT)ãäž¡æ¹ã®ãããã¿ã€ã (ããã©ã«ãã® MATCH SIMPLE ãš MATCH FULL)ãé
å»¶å¯èœãªå¶çŽããµããŒãããŠããŸãã OCC ããŒã¹ã®ç«¶åæ€åº: è¡ã¬ãã«ã®ããããã³ã°ã¯ãããŸãããåç
§æŽåæ§ã¯ã¹ããŒãã¡ã³ãã®å®è¡æã«ã¹ãããã·ã§ããã«å¯ŸããŠæ€èšŒãããç«¶åã¯æ¥œèгçåæå®è¡å¶åŸ¡ã«ãã£ãŠã³ãããæã«è§£æ±ºãããŸãã ããŒä»¥å€ã®åã®æŽæ°ã«å¯Ÿããæé©å: Aurora DSQL ã¯ãæé»ç㪠KEY SHARE ã«ãã£ãŠåç
§å
ã®ããŒåã远跡ããŸããåæã«å®è¡ããã FK ãã§ãã¯ãšç«¶åããã®ã¯ãããŒåã®å€æŽã ãã§ãã éåæã® ALTER TABLE: NOT VALID ãæå®ããŠæ¢åããŒãã«ã«å€éšããŒã远å ãã ALTER TABLE ASYNC ... VALIDATE CONSTRAINT ã§éåæã«æ€èšŒã§ããŸããããŠã³ã¿ã€ã ãªãã§ã¹ããŒãã倿Žã§ããŸãã éèŠ: ã«ã¹ã±ãŒãã¢ã¯ã·ã§ã³ (CASCADEãSET NULLãSET DEFAULT) ã¯ãåç
§å
ã®è¡ãæŽæ°ãŸãã¯åé€ããããšãã«ãåç
§å
ããŒãã«ã®è¡ãèªåçã«å€æŽããŸããã«ã¹ã±ãŒãã¢ã¯ã·ã§ã³ã«ã¯ Aurora DSQL ã®ãã©ã³ã¶ã¯ã·ã§ã³ãããã®è¡æ°å¶éãé©çšããããããæ³šæããŠäœ¿ããªããšäºæããªã倱æã®åå ã«ãªããŸããåè¡ã®æ°ã«äžéããªãããŸãã¯äºæž¬ã§ããªãå€éšããŒé¢ä¿ã§ã¯ãNO ACTION ãŸã㯠RESTRICT ã䜿çšããŠãã ããã詳现ã«ã€ããŠã¯ãAurora DSQL ãŠãŒã¶ãŒã¬ã€ãã®ãAurora DSQL ã®ããŒã¿ããŒã¹ã®å¶éããåç
§ããŠãã ããã åææ¡ä»¶ æ¬èšäºã®æé ã詊ãã«ã¯ã以äžãå¿
èŠã§ãã AWS ã¢ã«ãŠã³ãã®èŠä»¶: Aurora DSQL ã¯ã©ã¹ã¿ãŒã皌åããŠããæå¹ãª AWS ã¢ã«ãŠã³ã Aurora DSQL ã§ã¯ããã¹ãŠã®æ¥ç¶ã§ Transport Layer Security (TLS) ã«ããæå·åãå¿
èŠã§ããå®å
šã«æ¥ç¶ããã«ã¯ãã¯ã©ã€ã¢ã³ãã·ã¹ãã ã Amazon Root Certificate Authority (Amazon Root CA 1) ãä¿¡é ŒããŠããå¿
èŠããããŸãã å¿
èŠãªæš©é: å€éšããŒå¶çŽä»ãã®ããŒãã«ãäœæããããã®ãã¹ããŒãã«å¯Ÿãã CREATE æš©é æ¢åããŒãã«ã«å¶çŽã远å ããããã® ALTER æš©é å¶çŽãåé€ããããã® DROP æš©é å¿
èŠãªããŒã«ãšãœãããŠã§ã¢: PostgreSQL äºæã®ã¯ã©ã€ã¢ã³ã (psqlãDBeaverããŸãã¯ã¢ããªã±ãŒã·ã§ã³ã®ããŒã¿ããŒã¹ãã©ã€ããŒ) Aurora DSQL ãšã³ããã€ã³ãã«æ¥ç¶ã§ããããã«èšå®ããã SQL ã¯ã©ã€ã¢ã³ã å€éšããŒå¶çŽä»ãã®ããŒãã«ãäœæãã å€éšããŒã¯ãæšæºã® PostgreSQL æ§æã§ãåãžã®ã€ã³ã©ã€ã³æå®ãŸãã¯ããŒãã«ã¬ãã«ã®å¶çŽãšããŠå®çŸ©ããŸãã åå¶çŽã®ã€ã³ã©ã€ã³æ§æ åäžåã®å€éšããŒã§ã¯ãåå®çŸ©ã« REFERENCES ããŒã¯ãŒããçŽæ¥æå®ããŸãã CREATE TABLE customers ( customer_id INT PRIMARY KEY, name TEXT NOT NULL, email VARCHAR(255) UNIQUE ); CREATE TABLE orders ( order_id INT PRIMARY KEY, customer_id INT REFERENCES customers(customer_id), order_date DATE DEFAULT CURRENT_DATE, total_amount DECIMAL(10,2) ); åãªã¹ããçç¥ãããšãAurora DSQL ã¯åç
§å
ããŒãã«ã®äž»ããŒã䜿çšããŸãã CREATE TABLE orders ( order_id INT PRIMARY KEY, customer_id INT REFERENCES customers, order_date DATE DEFAULT CURRENT_DATE, total_amount DECIMAL(10,2) ); ååä»ãã®ããŒãã«ã¬ãã«å¶çŽã®æ§æ è€åå€éšããŒãé
å»¶å¯èœãªå¶çŽãå¿
èŠãªå Žåã¯ãCONSTRAINT ⊠FOREIGN KEY æ§æã䜿çšããŸãã CREATE TABLE products ( product_no INTEGER PRIMARY KEY, name TEXT UNIQUE, price NUMERIC ); CREATE TABLE order_items ( order_id INTEGER PRIMARY KEY, product_no INTEGER, quantity INTEGER, CONSTRAINT fk_product FOREIGN KEY (product_no) REFERENCES products (product_no) DEFERRABLE INITIALLY IMMEDIATE ); è€åå€éšããŒã®äŸ è€åäž»ããŒãè€åäžæå¶çŽãåç
§ããå Žåãå€éšããŒãè€æ°ã®åã«ãŸããã£ãŠå®çŸ©ã§ããŸãã CREATE TABLE inventory ( warehouse_id INTEGER, product_no INTEGER, quantity INTEGER, PRIMARY KEY (warehouse_id, product_no) ); CREATE TABLE shipments ( shipment_id INTEGER PRIMARY KEY, warehouse_id INTEGER, product_no INTEGER, FOREIGN KEY (warehouse_id, product_no) REFERENCES inventory (warehouse_id, product_no) ); èªå·±åç
§ã®å€éšã㌠å€éšããŒå¶çŽã§ã¯ãå¶çŽãå±ããããŒãã«èªäœãåç
§ããããšãã§ããŸããããšãã°ãããªãŒæ§é ã¯æ¬¡ã®ããã«è¡šçŸã§ããŸãã CREATE TABLE tree ( node_id INTEGER PRIMARY KEY, parent_id INTEGER REFERENCES tree, name TEXT ); æäžäœã®ããŒã㯠parent_id ã NULL ã«ãªããŸããparent_id ã NULL ã§ãªãè¡ã¯ãããŒãã«å
ã®æå¹ãªè¡ãåç
§ããããå¶çŽãããŸãã åç
§ã¢ã¯ã·ã§ã³ã®äŸ åç
§å
ã®è¡ãåé€ãŸãã¯æŽæ°ããããšãã®åäœãæå®ã§ããŸãã CREATE TABLE orders ( order_id INTEGER PRIMARY KEY, product_no INTEGER REFERENCES products ON DELETE RESTRICT, quantity INTEGER ); RESTRICT ãæå®ãããšã泚æããåç
§ãããŠãã補åãåé€ããããšããæç¹ã§ããã«ãšã©ãŒã«ãªããŸããããã©ã«ãã® NO ACTION ã§ã¯ãå¶çŽã DEFERRABLE ãšããŠå®£èšãããŠããã°ããã§ãã¯ããã©ã³ã¶ã¯ã·ã§ã³ã®çµäºæãŸã§é
å»¶ã§ããŸãã æ¢åããŒãã«ã«å€éšããŒã远å ãã æ¢åããŒãã«ã«ã¯ãALTER TABLE ⊠ADD CONSTRAINT ⊠NOT VALID ã§å€éšããŒå¶çŽã远å ã§ããŸããNOT VALID ãªãã·ã§ã³ãæå®ãããšãæ¢åããŒã¿ãæ€èšŒããã«å¶çŽã远å ãããããããŒã¿å®çŸ©èšèª (DDL) ã®å®è¡æã«ããŒãã«å
šäœãã¹ãã£ã³ããã«æžã¿ãŸãã ALTER TABLE order_items ADD CONSTRAINT fk_product FOREIGN KEY (product_no) REFERENCES products (product_no) NOT VALID; å¶çŽã®è¿œå åŸã¯ãæ°ããããŒã¿æäœèšèª (DML) ã®æäœãå¶çŽã«å¯ŸããŠæ€èšŒãããŸããæžã蟌ã¿ããããã¯ããã«æ¢åããŒã¿ãéåæã§æ€èšŒããã«ã¯ã次ã®ããã«ããŸãã ALTER TABLE ASYNC order_items VALIDATE CONSTRAINT fk_product; æ¢åã®å¶çŽã®é
å»¶å¯åŠã倿Žããããšãã§ããŸãã ALTER TABLE order_items ALTER CONSTRAINT fk_product DEFERRABLE INITIALLY DEFERRED; å€éšããŒå¶çŽã管çãã èšå®ããå¶çŽã¯ãåé€ãããå
容ã確èªãããã§ããŸãã å¶çŽãåé€ãã ããŒãã«ããå€éšããŒå¶çŽãåé€ããã«ã¯ã次ã®ããã«ããŸãã ALTER TABLE order_items DROP CONSTRAINT fk_product; å€éšããŒå¶çŽã確èªãã ã·ã¹ãã ã«ã¿ãã°ãã¯ãšãªããŠãå€éšããŒã®å®çŸ©ã確èªããŸãã SELECT conname AS constraint_name, conrelid::regclass AS child_table, confrelid::regclass AS parent_table, pg_get_constraintdef(oid) AS definition FROM pg_constraint WHERE contype = 'f'; å¶çŽã®å³æãã§ã㯠å¶çŽã®ã¿ã€ãã³ã°ã峿 (ããã©ã«ã) ã«èšå®ãããŠããå ŽåãAurora DSQL ã¯ã¹ããŒãã¡ã³ãã®å®è¡æã«ãã©ã³ã¶ã¯ã·ã§ã³ã®ã¹ãããã·ã§ãããã¯ãšãªããŠåç
§æŽåæ§ãæ€èšŒããŸããéåã¯ãã®å Žã§æåŠãããŸãã æå¹ãªæ¿å
¥ã¯æåãã INSERT INTO products VALUES (1, 'Laptop', 999.99); INSERT INTO products VALUES (2, 'Mouse', 29.99); INSERT INTO products VALUES (3, 'Keyboard', 79.99); -- Valid order referencing an existing product succeeds. INSERT INTO order_items VALUES (100, 1, 2); ååšããªã芪ãåç
§ãããšããã«å€±æãã -- Order for non-existent product fails immediately. INSERT INTO order_items VALUES (101, 999, 1); -- ERROR: insert or update on table "order_items" violates foreign key constraint "fk_product" åç
§ãããŠãã芪è¡ã®åé€ã¯å€±æãã DELETE FROM products WHERE product_no = 1; -- ERROR: update or delete on table "products" violates foreign key constraint "fk_product" on table "order_items" åè¡ãå€ç«ãããããªèŠªã®äž»ããŒã®æŽæ°ã¯å€±æãã UPDATE products SET product_no = 99 WHERE product_no = 1; -- ERROR: update or delete on table "products" violates foreign key constraint "fk_product" on table "order_items" åç
§ãããŠããªã芪è¡ã¯åé€ã§ãã -- Product 3 has no orders referencing it. DELETE FROM products WHERE product_no = 3; -- OK å¶çŽã®é
å»¶ãã§ã㯠å¶çŽãé
å»¶å¯èœãšããŠå®çŸ©ãããŠããã°ããã©ã³ã¶ã¯ã·ã§ã³å
ã§ SET CONSTRAINTS ã䜿ã£ãŠé
å»¶ãã§ãã¯ã«åãæ¿ããããŸããé
å»¶ããããšæ€èšŒã¯ã³ãããæã«ç§»ãããã芪ããå
ã«åè¡ãæ¿å
¥ããã³ããããŸã§ã«å¶çŽãæºããã°åé¡ãããŸãããããŒã¿ã®ããŒãæããè€æ°ã®ã¹ããŒãã¡ã³ããããªãè€éãªãã©ã³ã¶ã¯ã·ã§ã³ã§åœ¹ç«ã¡ãŸãã æ³š: Aurora DSQL ã§ã¯ãSET CONSTRAINTS ã¯å€éšããŒå¶çŽã«ã®ã¿é©çšãããŸããäž»ããŒãäžæãNOT NULLãCHECK ã®åå¶çŽã¯åžžã«å³æãã§ãã¯ãããé
å»¶ã§ããŸããã åç
§å
ã®è¡ããå
ã«åç
§å
ã®è¡ãæ¿å
¥ãã BEGIN; SET CONSTRAINTS fk_product DEFERRED; INSERT INTO order_items VALUES (200, 80, 1); -- product 80 doesn't exist yet INSERT INTO products VALUES (80, 'Monitor', 349.99); COMMIT; -- OK: constraint satisfied at commit time ã³ãããæã®é
å»¶ãã§ãã¯ã§ã®éå COMMIT ãŸã§ã«éåãè§£æ¶ãããªãå Žåããã©ã³ã¶ã¯ã·ã§ã³å
šäœãããŒã«ããã¯ãããŸãã BEGIN; SET CONSTRAINTS fk_product DEFERRED; INSERT INTO order_items VALUES (201, 777, 1); -- product 777 never created COMMIT; -- ERROR: insert or update on table "order_items" violates foreign key constraint "fk_product" -- entire transaction rolled back ãã¹ãŠã®å€éšããŒå¶çŽããŸãšããŠé
å»¶ããã SET CONSTRAINTS ALL DEFERRED ãå®è¡ãããšããã©ã³ã¶ã¯ã·ã§ã³å
ã®é
å»¶å¯èœãªå€éšããŒå¶çŽããã¹ãŠé
å»¶ãããŸãã BEGIN; SET CONSTRAINTS ALL DEFERRED; INSERT INTO order_items VALUES (202, 90, 1); INSERT INTO products VALUES (90, 'Speakers', 129.99); COMMIT; -- OK ãã©ã³ã¶ã¯ã·ã§ã³ã®éäžã§å³æãã§ãã¯ã«æ»ã ãã©ã³ã¶ã¯ã·ã§ã³å
ã§å¶çŽã IMMEDIATE ã«æ»ããšãã¹ãããã·ã§ããã«å¯Ÿããæ€èšŒã匷å¶çã«å®è¡ãããŸããAurora DSQL ã¯ãé
å»¶ããŠããæªãã§ãã¯ã®ããŒã¿å€æŽããã®æç¹ã§ãã§ãã¯ããŸãã BEGIN; SET CONSTRAINTS fk_product DEFERRED; INSERT INTO order_items VALUES (203, 888, 1); -- no error yet (deferred) SET CONSTRAINTS fk_product IMMEDIATE; -- triggers check NOW -- ERROR: insert or update on table "order_items" violates foreign key constraint "fk_product" ROLLBACK; åæå®è¡ãš OCC ã®åäœ Aurora DSQL ã¯ãããã¯ã䜿ããªãåæå®è¡å¶åŸ¡ã®ä»çµã¿ã§ãã OCC ãæ¡çšããŠããŸãããã®ãããåŸæ¥ã® PostgreSQL ç°å¢ã§ããèŠãããè¡ã¬ãã«ã®ããããã³ã°ããããããã¯ãããã¯åŸ
ã¡ã®ã¿ã€ã ã¢ãŠããçºçããŸãããè¡ã®èªã¿æžãæã«ããã¯ãååŸãã代ããã«ãåãã©ã³ã¶ã¯ã·ã§ã³ã¯éå§æç¹ã§ååŸããããŒã¿ããŒã¹ã®äžè²«ããã¹ãããã·ã§ããã«å¯ŸããŠåŠçãè¡ããŸããè€æ°ã®ãã©ã³ã¶ã¯ã·ã§ã³ãäºããåŸ
ã€ããšãªããåãè¡ãåæã«èªã¿æžãã§ããŸããåæã«å®è¡ããã 2 ã€ã®ãã©ã³ã¶ã¯ã·ã§ã³ãåãããŒã¿ã«ç«¶åãã圢ã§ã¢ã¯ã»ã¹ãããã©ããã¯ãã³ãããæã«åã㊠Aurora DSQL ã®ã¢ãžã¥ãã£ã±ãŒã¿ãå€å®ããŸããç«¶åãèŠã€ãããšãäžæ¹ã®ãã©ã³ã¶ã¯ã·ã§ã³ã¯æåããããäžæ¹ã¯ã·ãªã¢ã«åãšã©ãŒ ( SQLSTATE 40001 ) ã§å€±æããŸããã¢ããªã±ãŒã·ã§ã³ã¯å€±æãããã©ã³ã¶ã¯ã·ã§ã³ããªãã©ã€ã§ããŸãã Aurora DSQL ã¯ã2 ã€ã®ã¹ãããã§åç
§æŽåæ§ãç¶æããŸãã ã¹ãããã·ã§ããã«ããæ€èšŒ : ãã¹ãŠã®ãã©ã³ã¶ã¯ã·ã§ã³ã¯ãéå§æç¹ã§ååŸããäžè²«ããã¹ãããã·ã§ããã«å¯ŸããŠå®è¡ãããŸããåç
§å
ã®è¡ãæ¿å
¥ãããšãAurora DSQL ã¯ãã®ã¹ãããã·ã§ããæç¹ã®åç
§å
ããŒãã«ãèªã¿åããåç
§å
ã®ããŒãååšããããšã確èªããŸããåç
§å
ã®ããŒãåé€ãŸãã¯æŽæ°ãããšãAurora DSQL ã¯ãã®ã¹ãããã·ã§ããæç¹ã®åç
§å
ããŒãã«ãèªã¿åããŸããRESTRICT ã®å Žåã¯åç
§å
ã®è¡ãååšããªãããšãNO ACTION ã®å Žåã¯æäœã«ãã£ãŠå€ç«ããè¡ãæ®ããªãããšã確èªããŸãã ã³ãããæã®ç«¶å解決 : ã¹ãããã·ã§ããã«ããæ€èšŒã§åããã®ã¯ããã©ã³ã¶ã¯ã·ã§ã³ã®éå§æç¹ã§å¶çŽãæºããããŠããããšã ãã§ãããã®åŸãåæã«å®è¡ãããå¥ã®ãã©ã³ã¶ã¯ã·ã§ã³ãåç
§å
ã®ããŒã¿ã倿ŽããŠããå¯èœæ§ããããŸããAurora DSQL ã¯ã³ãããæã«ãåæå®è¡äžã®ãã©ã³ã¶ã¯ã·ã§ã³ãèªåã®ãã©ã³ã¶ã¯ã·ã§ã³ã®åç
§æŽåæ§ã«åœ±é¿ãäžãããã©ãããæ€åºããç«¶åãããã° OCC ãšã©ãŒã§ãã©ã³ã¶ã¯ã·ã§ã³ã倱æãããŸãã éèŠ: åç
§å
ãŸãã¯åç
§å
ã®ããŒãã«ã«å¯Ÿãã DML ã¯ãã¹ãŠãåç
§æŽåæ§ãç¶æããããã®è¿œå ã®èªã¿åãã䌎ããŸããããŒãã«ã«å€éšããŒå¶çŽã远å ããåã«ãã¯ãŒã¯ããŒãã®ãã³ãããŒã¯ãè¡ããæ§èœç¹æ§ãæ³å®ã©ããã§ããããšã確èªããŠãã ããã -- Seed the products used by the concurrency examples INSERT INTO products VALUES (4, 'Cable', 9.99); INSERT INTO products VALUES (5, 'Dock', 199.99); INSERT INTO products VALUES (6, 'Charger', 19.99); 芪㮠DELETE ãšåã® INSERT ã®åæå®è¡: ç«¶åãã -- Session A: BEGIN; DELETE FROM products WHERE product_no = 4; COMMIT; -- succeeds -- Session B (started concurrently, before Session A committed): BEGIN; INSERT INTO order_items VALUES (103, 4, 1); COMMIT; -- ERROR: change conflicts with another transaction (OC000) (SQLSTATE 40001) 2 ã€ã®ã»ãã·ã§ã³ã¯åæã«å®è¡ãããŸããAurora DSQL ã¯ã³ãããæã«ç«¶åã解決ãããããå逿žã¿ã®è£œåãæã泚æãæ®ãããšã¯ãããŸããã 芪ã®äž»ããŒã® UPDATE ãšåã® INSERT ã®åæå®è¡: ç«¶åãã -- Session A: BEGIN; UPDATE products SET product_no = 50 WHERE product_no = 5; COMMIT; -- Session B (concurrent): BEGIN; INSERT INTO order_items VALUES (104, 5, 1); COMMIT; -- ERROR: change conflicts with another transaction (OC000) (SQLSTATE 40001) ããŒä»¥å€ã®åã®æŽæ°ãç«¶åããªãçç± ç«¶åãå€å®ããããã«ãAurora DSQL ã¯åç
§å
ã®è¡ã«å¯ŸããŠæé»çã« KEY SHARE ã®è¿œè·¡ãé©çšããŸããåæã«å®è¡äžã®å€éšããŒãã§ãã¯ãç¡å¹ã«ããã®ã¯ãããŒå (PRIMARY KEY ã®åããŸãã¯éšåã€ã³ããã¯ã¹ãåŒã€ã³ããã¯ã¹ã§ã¯ãªã UNIQUE ã€ã³ããã¯ã¹ã®å) ã®å€æŽã ãã§ãã補åã®äŸ¡æ Œã®ãããªããŒä»¥å€ã®åãæŽæ°ããŠãããã®è£œåãåç
§ããæ°ããåè¡ã®æ¿å
¥ãšã¯ç«¶åããŸããã ããŒä»¥å€ã®å (price) ã®æŽæ°: ç«¶åããªã -- Session A: BEGIN; UPDATE products SET price = 29.99 WHERE product_no = 6; COMMIT; -- succeeds -- Session B (concurrent): BEGIN; INSERT INTO order_items VALUES (105, 6, 1); COMMIT; -- succeeds -- Updating price (a non-key column) doesn't conflict with the foreign key on product_no. ããŒå (UNIQUE ã€ã³ããã¯ã¹ãæã€ name) ã®æŽæ°: ç«¶åãã -- Session A: BEGIN; UPDATE products SET name = 'Fast Charger' WHERE product_no = 6; COMMIT; -- Session B (concurrent): BEGIN; INSERT INTO order_items VALUES (108, 6, 1); COMMIT; -- ERROR: change conflicts with another transaction (OC000) (SQLSTATE 40001) products ããŒãã«ã® name 㯠TEXT UNIQUE ãšããŠå®£èšãããããŒåãªã®ã§ãç«¶åãçºçããŸãã åã芪ã«å¯Ÿããè€æ°ã®åè¡ã®æ¿å
¥: 誀ã£ãç«¶åã¯èµ·ããªã åã芪ãåç
§ããåè¡ã 2 ã€ã®ãã©ã³ã¶ã¯ã·ã§ã³ãåæã«æ¿å
¥ããŠããäºãã«ç«¶åããŸããã -- Session A: BEGIN; INSERT INTO order_items VALUES (106, 2, 1); COMMIT; -- Session B (concurrent): BEGIN; INSERT INTO order_items VALUES (107, 2, 2); COMMIT; -- OK: both succeed 人æ°ã®ããèŠªè¡ (売ãçã®è£œåãªã©) ã«å¯ŸããŠæ°åä»¶ã®åè¡ã®æ¿å
¥ãåæã«è¡ãããŠããç«¶åã¯çºçããŸããã ã¹ã±ãŒã«ãèæ
®ããèšèš æ³š: ããããå
ã®äŸã§ã¯ãåã®ã»ã¯ã·ã§ã³ã§äœæããããŒãã«ãšã¯å¥ã®ãUUID ããŒã¹ã®ã¹ããŒãã䜿çšããŸããå®éã«è©Šãå Žåã¯ãå
ã«åã®ããŒãã«ãåé€ããããæ°ããã»ãã·ã§ã³ã䜿çšããŠãã ããã åŸæ¥ã®ããŒã¿ããŒã¹ã§ã¯ãäžéã®ãªãäžå¯Ÿå€ (1:M) ã®å€éšããŒé¢ä¿ããããšãããŒãã«ããã¯ãã€ã³ããã¯ã¹ã®è¥å€§åãåé€ã®é
å»¶ãšãã£ããªã¹ã¯ããããŸããAurora DSQL ã§ã¯ OCC ã«ãã£ãŠããã¯ã®ãªã¹ã¯ã¯ãªããªããŸãããæ§èœãšã³ã¹ãã®ãªã¹ã¯ã¯æ®ããŸããããã«ãAurora DSQL ã§ã¯ãã©ã³ã¶ã¯ã·ã§ã³ã§å€æŽã§ããè¡æ°ã 3,000 è¡ã«å¶éãããŠãããããCASCADE ã¢ã¯ã·ã§ã³ãããããå Žåã¯ç¹ã«æ³šæãå¿
èŠã§ãã å€éšããŒã远å ããåã«ããã®é¢ä¿ãä»åŸã©ã®ããã«ã¹ã±ãŒã«ããããæ€èšããŠãã ããã ã¹ã±ãŒã«ããŠãåé¡ã«ãªããªãé¢ä¿ 次ã®é¢ä¿ã¯ä»¶æ°ãèªç¶ã«æãããããããèŠæš¡ã倧ãããªã£ãŠãåé¡ã«ãªããŸããã å³å¯ãªäžå¯Ÿäž (1:1): åããŒãã«ã UNIQUE ãªå€éšããŒã§èŠªãåç
§ããŸããåã芪ãã倧ãããªãããšã¯ãããŸãã (äŸ: user_id ã䜿ã£ã users â user_profiles)ã å€å¯Ÿäžã®åç
§: æ°çŸäžã®è¡ããéçãŸãã¯ãã£ãããšããå¢ããªãèšå®ããŒãã«ãåç
§ããŸããå¢ããã®ã¯ãå€ãã®åŽã§ã芪ã®ä»¶æ°ã¯æãããããŸãŸã§ã (äŸ: å°ã㪠countries ããŒãã«ãåç
§ããæ°çŸäžã®ãŠãŒã¶ãŒ)ãåè¡ãæ¿å
¥ãããã³ã«èŠªè¡ã«å¯Ÿããæ€èšŒãè¡ãããŸãã芪ã®ããŒä»¥å€ã®å (åœã® display_name ãªã©) ã®æŽæ°ã¯ç«¶åããã«åŠçãããŸãããã ãã芪ã®ããŒå (åç
§ããã country_id ãªã©) ãæŽæ°ãããšãåæã«å®è¡äžã®åè¡ã®æ¿å
¥ãšç«¶åããŸãããã®ãããé »ç¹ã«åç
§ãããåç
§çšã®è¡ã®ããŒåã¯ãäºå®äžå€æŽã§ããªããªããŸããéåžžã¯ãããæãŸããåäœã§ããåç
§ããŒãã«ã®ããŒã¯å®å®ããŠããã¹ãã§ã倿Žãå¿
èŠãªå±æ§ã¯ããŒä»¥å€ã®åã«æãããŸãã äžéã®ããäžå¯Ÿå€: åããŒãã«ã¯èŠª 1 ä»¶ã«å¯ŸããŠè€æ°ã®è¡ãæãŠãŸãããçŸå®çãªå¶çŽã«ãã£ãŠä»¶æ°ã¯å°ãªãæããããŸã (äŸ: orders â order_itemsãäžè¬çãªã·ã§ããã³ã°ã«ãŒãã®ååæ°ã¯æ°åä»¶çšåºŠã§ã)ãåé€ã®åœ±é¿ãåããåè¡ã®æ°ã«äžéãããããããã®å Žå㯠CASCADE ãå®å
šã«äœ¿ããŸãã èŠæš¡ãççºçã«å€§ãããªããªã¹ã¯ã®ããé¢ä¿ åé¡ãåŒãèµ·ããã®ã¯æ¬¡ã®ãããªé¢ä¿ã§ããåã®åŽã«äžéããªãã1 ã€ã®èŠªè¡ã«æéãšãšãã«æ°çŸäžã®åè¡ãèç©ãããããšããããŸãã ã°ããŒãã«ãªãäœã§ãçŽä»ãããã¢ã³ã«ãŒ: 倧éã®ãã°ãç£æ»ãã€ãã³ãããŒã¿ãã1 ã€ã®ããã³ãããŠãŒã¶ãŒã«çŽæ¥çŽä»ããã±ãŒã¹ã§ã (äŸ: å©çšã®å€ãæ³äººã¢ã«ãŠã³ãã audit_logs ããŒãã«ã®æ°ååè¡ã®ã¢ã³ã«ãŒã«ãªã)ãAurora DSQL ã§ã¯ããã®èŠªã«å¯Ÿãã CASCADE åé€ã¯ãã©ã³ã¶ã¯ã·ã§ã³ã®è¡æ°å¶éãè¶
ããŠå€±æããŸãã æ¥æ¿ã«æ¡æ£ãããšã³ã²ãŒãžã¡ã³ãæ©èœ: ãŠãŒã¶ãŒã®ã¢ã¯ãã£ããã£ã 1 ã€ã®ã³ã³ãã³ãã«çŽæ¥çŽä»ããã±ãŒã¹ã§ãã1 ä»¶ã®æçš¿ã話é¡ã«ãªããš post_likes ã«æ°çŸäžè¡ãèç©ãããããšãããããã®æçš¿ã«å¯Ÿãã CASCADE åé€ã¯ãã©ã³ã¶ã¯ã·ã§ã³ã®è¡æ°å¶éãè¶
ããŸã (äŸ: posts ã®äººæ°ã®ãã 1 è¡ããçªç¶ post_likes ã® 10,000,000 è¡ã®ã¢ã³ã«ãŒã«ãªã)ãåè¡ãæ¿å
¥ãããã³ã«ããã® 1 ã€ã®èŠªè¡ã«å¯Ÿã㊠FK æ€èšŒã®èªã¿åããçºçããŸããéãå€ããªããšãç¡èŠã§ããªãã³ã¹ãã«ãªããŸãã 倧éã«å£²ãã補å: EC ãµã€ãã§ã¯ãproducts â order_items ã®é¢ä¿ã¯ççºçã«å€§ãããªããã¡ã§ãã1 ã€ã®äººæ°è£œå (ãããã¯å
šæ³šæã«å
±éãããéæãé
ç®) ããéå»ã®æ°çŸäžä»¶ã®æ³šæè¡ã®ã¢ã³ã«ãŒã«ãªãããšããããŸããCASCADE åé€ãå®è¡ãããšããã®è£œåã®éå»ã®æ³šææçްããã¹ãŠåé€ããããšããŠå€±æããŸãã Aurora DSQL åºæã®åœ±é¿: Aurora DSQL ã§ã¯ãäžéã®ãªã FK é¢ä¿ããããšãåè¡ã®æ¿å
¥ã芪è¡ã®æŽæ°ã®ãã³ã« FK æ€èšŒã®ããã®è¿œå ã®èªã¿åãã³ã¹ããçºçããŸãããŸããåè¡ã®åææ¿å
¥äžã«èŠªã®ããŒåã倿Žããããš OCC ã®ç«¶åãçºçããŸãã Aurora DSQL åãã®ã¢ãŒããã¯ãã£äžã®å¯Ÿç é¢ä¿ã«äžéããªããªãå¯èœæ§ãããå Žåã¯ã次ã®å¯Ÿçãé©çšããŸãã 1. äžéã®ãªãããŒã«ã¯ CASCADE ã䜿ããªãã ä»¶æ°ã®å€ãå€éšã㌠(product_id ã tenant_id ãªã©) ã§ã¯ ON DELETE CASCADE ãé¿ããŠãã ãããAurora DSQL ã§ã¯ãæ°åã®åè¡ãæã€èŠªãåé€ãããšãã©ã³ã¶ã¯ã·ã§ã³ã®è¡æ°å¶éãè¶
ããŠå€±æããŸãã代ããã«è«çåé€ ( is_active = false ) ã䜿ããåè¡ã¯ããã¯ã°ã©ãŠã³ãã®ãã©ã³ã¶ã¯ã·ã§ã³ã§ãããåŠçããŠã¯ãªãŒã³ã¢ããããŸãã -- AVOID: CASCADE on unbounded relationship CREATE TABLE order_items ( line_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), product_id UUID REFERENCES products ON DELETE CASCADE, -- dangerous at scale quantity INTEGER ); -- PREFERRED: RESTRICT + soft-delete pattern CREATE TABLE order_items ( line_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), product_id UUID REFERENCES products ON DELETE RESTRICT, quantity INTEGER ); -- Soft-delete the product instead of hard-deleting: UPDATE products SET is_active = false WHERE product_id = 'prod-xyz'; -- replace with actual UUID -- Clean up old order_items in batched transactions (â€3,000 rows each) 2. å€ãããã屿§ã¯æžãèŸŒã¿æã«ã¹ãããã·ã§ãããšããŠä¿åããã æ³šæã®ãããªãã©ã³ã¶ã¯ã·ã§ã³ããŒã¿ã§ã¯ãæéãšãšãã«å€ãã屿§ (price ã product_name ãªã©) ãããã©ã³ã¶ã¯ã·ã§ã³ã®å®è¡æã«åããŒãã«ãžçŽæ¥ã³ããŒããŸãã芪ããŒãã«ã®çŸåšã®ç¶æ
ã«é Œããã«ã顧客ãå®éã«æ¯æã£ãéé¡ã泚ææã®è£œååãæ®ããŸããsku ã®ããã«å€ãããªãèå¥åã¯èŠªããŒãã«ã«ã ãæãããã°ååã§ãFK ã«ããåç
§ã§äºè¶³ããŸãã CREATE TABLE order_items ( line_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), order_id UUID REFERENCES orders, product_id UUID REFERENCES products, quantity INTEGER NOT NULL, -- Snapshot mutable attributes at order time unit_price NUMERIC NOT NULL, product_name TEXT NOT NULL, created_at TIMESTAMPTZ DEFAULT NOW() ); 3. ã¯ãšãªã«ã¯ããŒãžããŒã·ã§ã³ãšæéã®å¶éãå¿
ãä»ããã SELECT * FROM order_items WHERE product_id = X ã®ãããªç¯å²ãéå®ããªãã¯ãšãªã¯èš±å¯ããªãã§ãã ãããæéã®å¶éãã«ãŒãœã«ããŒã¹ã®ãã£ã«ã¿ãŒãå¿
ã䜿ããŸããã¿ã€ã ã¹ã¿ã³ããæ¯èŒããéã«äž¡èŸºã®ããŒã¿åããããããšãã¯ãšãªãã©ã³ããŒãã€ã³ããã¯ã¹ã广çã«äœ¿ããŸãã -- AVOID: unbounded query without time bounds or pagination SELECT * FROM order_items WHERE product_id = 'prod-xyz'; -- replace with actual UUID -- PREFERRED: time-bounded with index support SELECT * FROM order_items WHERE product_id = 'prod-xyz' -- replace with actual UUID AND created_at >= NOW() - INTERVAL '30 days' ORDER BY created_at DESC LIMIT 100; 4. åºå®ã®åæå€ã«ã¯ãFK ã«ããåç
§ã§ã¯ãªã CHECK å¶çŽã䜿ãã ã«ãŒãã£ããªãã£ã®äœãããŒãã« (ã¹ããŒã¿ã¹ã³ãŒããçš®å¥ãã«ããŽãªãªã©) ãåç
§ãããšãæ¿å
¥ã®ãã³ã« FK æ€èšŒã®è² è·ãããããŸãããå€ãå€ããããšã¯ãªãããå®è³ªçãªã¡ãªããã¯ãããŸããã -- AVOID: FK to a 5-row lookup table CREATE TABLE task_statuses (status_id INT PRIMARY KEY, label TEXT); CREATE TABLE tasks (task_id UUID PRIMARY KEY, status_id INT REFERENCES task_statuses); -- PREFERRED: CHECK constraint (no FK overhead, no parent-row reads) CREATE TABLE tasks ( task_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), status VARCHAR(20) CHECK (status IN ('open', 'in_progress', 'done', 'blocked', 'cancelled')) ); å®è·µçãªäŸ ãããŸã§ã®ã»ã¯ã·ã§ã³ã§ã¯æ§æãšåäœã説æããŸããã以äžã®ã·ããªãªã§ã¯ãæ¬çªç°å¢ã§ããããã©ã®ããã«çµã¿åããããã玹ä»ããŸãã EC ãµã€ãã®æ³šæãã€ãã©ã€ã³ ã¹ã±ãŒã«ãèæ
®ãã FK èšèšã®ã¹ããŒã: CREATE TABLE customers ( customer_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), name TEXT NOT NULL, email VARCHAR(255) UNIQUE ); CREATE TABLE products ( product_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), sku VARCHAR(50) UNIQUE, name TEXT, price NUMERIC, is_active BOOLEAN DEFAULT true -- soft-delete instead of hard-delete ); CREATE TABLE orders ( order_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), customer_id UUID REFERENCES customers, status VARCHAR(20) DEFAULT 'pending', created_at TIMESTAMPTZ DEFAULT NOW() ); CREATE TABLE order_lines ( line_id UUID PRIMARY KEY DEFAULT gen_random_uuid(), order_id UUID, product_id UUID REFERENCES products ON DELETE RESTRICT, -- unbounded: never CASCADE quantity INTEGER NOT NULL, -- Snapshot mutable attributes at order time unit_price NUMERIC NOT NULL, product_name TEXT NOT NULL, created_at TIMESTAMPTZ DEFAULT NOW(), CONSTRAINT fk_order FOREIGN KEY (order_id) REFERENCES orders (order_id) ON DELETE CASCADE -- bounded: safe to CASCADE DEFERRABLE INITIALLY DEFERRED ); ãã®ã¹ããŒãã«ã¯ãåè¿°ã®ãã¹ã±ãŒã«ãèæ
®ããèšèšãã®å¯Ÿçãé©çšããŠããŸããCASCADE ã¯äžéã®ããé¢ä¿ (orders â order_lines) ã ãã«äœ¿ããäžéã®ãªãé¢ä¿ (products â order_lines) ã«ã¯ RESTRICT ã䜿ã£ãŠããŸãããŸãã補åããŒã¿ã¯æ³šææã«ã¹ãããã·ã§ãããšããŠä¿åããŠããŸãã é
å»¶å¶çŽã䜿ã£ã泚æã®ç»é²: fk_order å¶çŽã¯ DEFERRABLE INITIALLY DEFERRED ãªã®ã§ãèŠªã®æ³šæè¡ããå
ã«æ³šææçŽ°ãæ¿å
¥ã§ããŸãããŸããæ³šææã®è£œååãšäŸ¡æ Œãã¹ãããã·ã§ãããšããŠä¿åããŸãã -- Setup: seed the referenced parents first INSERT INTO customers (customer_id, name, email) VALUES ('d3eebc99-9c0b-4ef8-bb6d-6bb9bd380a44', 'Alice', 'alice@example.com'); INSERT INTO products (product_id, sku, name, price) VALUES ('b1eebc99-9c0b-4ef8-bb6d-6bb9bd380a22', 'WM-100', 'Wireless Mouse', 49.99), ('c2eebc99-9c0b-4ef8-bb6d-6bb9bd380a33', 'HUB-200', 'USB-C Hub', 129.99); -- Now place an order with deferred FK on order_id BEGIN; -- Insert order lines first (fk_order to orders is deferred; product FKs are immediate -- but the products already exist above, so they pass instantly) INSERT INTO order_lines (order_id, product_id, quantity, unit_price, product_name) VALUES ('a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', 'b1eebc99-9c0b-4ef8-bb6d-6bb9bd380a22', 2, 49.99, 'Wireless Mouse'), ('a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', 'c2eebc99-9c0b-4ef8-bb6d-6bb9bd380a33', 1, 129.99, 'USB-C Hub'); -- Insert the order header (satisfies the deferred fk_order at commit) INSERT INTO orders (order_id, customer_id, status) VALUES ('a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11', 'd3eebc99-9c0b-4ef8-bb6d-6bb9bd380a44', 'pending'); COMMIT; -- OK: fk_order validated at commit time; product FKs were checked immediately and passed Aurora DSQL Loader ã«ããããŒã¿ç§»è¡ å¥ã®ããŒã¿ããŒã¹ããããŒã¿ãç§»è¡ããå Žåã¯ãAurora DSQL Loader ã®äœ¿çšããå§ãããŸããAurora DSQL Loader ã¯ãªãŒãã³ãœãŒã¹ã® CLI ã§ã䞊ååãã³ãã¯ã·ã§ã³ããŒãªã³ã°ãç«¶åãšãªãã©ã€ã®åŠçãAWS Identity and Access Management (IAM) èªèšŒãæ
ããŸããAurora DSQL ã§ã¯ãåè¿°ã®è¡æ°ã®å¶éã«å ããŠãæžã蟌ã¿ãã©ã³ã¶ã¯ã·ã§ã³ãããã®å€æŽããŒã¿éã 10 MiBãå®è¡æéã 5 åã«å¶éãããŠããŸããLoader ã¯ããã 3 ã€ã®å¶éã®ç¯å²å
ã«åãŸããããèªåçã«ãããåŠçããŸãã ã¹ããã 1: ç§»è¡å
ã®ããŒã¿ããŒã¹ããããŒã¿ããšã¯ã¹ããŒããã -- From PostgreSQL: COPY customers TO '/export/customers.csv' WITH (FORMAT csv, HEADER true); COPY products TO '/export/products.csv' WITH (FORMAT csv, HEADER true); COPY orders TO '/export/orders.csv' WITH (FORMAT csv, HEADER true); COPY order_lines TO '/export/order_lines.csv' WITH (FORMAT csv, HEADER true); ã¹ããã 2: 芪ããŒãã«ãå
ã«ããŒãããæ¬¡ã«åããŒãã«ãããŒããã # Load parent tables first (no FK dependencies) aurora-dsql-loader load \ --endpoint cluster-id.dsql.us-east-1.on.aws \ --source-uri /export/customers.csv \ --table customers aurora-dsql-loader load \ --endpoint cluster-id.dsql.us-east-1.on.aws \ --source-uri /export/products.csv \ --table products # Load child tables after parents are loaded aurora-dsql-loader load \ --endpoint cluster-id.dsql.us-east-1.on.aws \ --source-uri /export/orders.csv \ --table orders aurora-dsql-loader load \ --endpoint cluster-id.dsql.us-east-1.on.aws \ --source-uri /export/order_lines.csv \ --table order_lines å¥ã®æ¹æ³: FK ãªãã§ããŒãããåŸããå¶çŽã远å ãã ããŒãæéãççž®ããã«ã¯ãããŒãäžã¯ FK å¶çŽãèšå®ãããåŸãã远å ããŸãã -- Step 1: Load all data (no FK constraints yet - maximum throughput) -- Use aurora-dsql-loader for each table in any order -- Step 2: Add constraints without validating existing data (instant DDL) ALTER TABLE order_lines ADD CONSTRAINT fk_order FOREIGN KEY (order_id) REFERENCES orders (order_id) NOT VALID; -- Step 3: Validate existing data asynchronously (non-blocking) ALTER TABLE ASYNC order_lines VALIDATE CONSTRAINT fk_order; -- Step 4: Monitor progress SELECT * FROM sys.jobs WHERE job_type = 'VALIDATE_CONSTRAINT'; -- Or block the session until validation completes: CALL sys.wait_for_job('<job_id>'); FK ãåŸãã远å ãã 2 段éã®æ¹æ³ã§ã¯ãåãèŸŒã¿æã« FK ã®è² è·ãããããªãããååããŒããéããªããæ¬çªçšŒåã®åã«åç
§æŽåæ§ãæ€èšŒã§ããŸãã OCC ã®ç«¶åã«å¯Ÿããã¢ããªã±ãŒã·ã§ã³ã®ãªãã©ã€ããžã㯠Aurora DSQL 㯠OCC ã䜿ããããç«¶åãããã©ã³ã¶ã¯ã·ã§ã³ã¯ããã¯ãåŸ
ã€ã®ã§ã¯ãªããã³ãããæã« SQLSTATE 40001 ã§å€±æããŸããã¢ããªã±ãŒã·ã§ã³åŽã§ãã®ãšã©ãŒãåŠçããå¿
èŠããããŸããAurora DSQL ã§ã¯ã次㮠2 çš®é¡ã®ç«¶åãåºå¥ããŠããŸãã OC000 (ããŒã¿ã®ç«¶å): 2 ã€ã®ãã©ã³ã¶ã¯ã·ã§ã³ãåãè¡ã倿ŽããŸããããã©ã³ã¶ã¯ã·ã§ã³å
šäœããªãã©ã€ããŠãã ããã OC001 (ã¹ããŒãã®ç«¶å): ã»ãã·ã§ã³ã«ãã£ãã·ã¥ãããã¹ããŒããå€ããªã£ãŠããŸã (åæã«å®è¡ããã DDL ã®åŸãªã©)ãã»ãã·ã§ã³ãã«ã¿ãã°ãã£ãã·ã¥ãæŽæ°ãããããé垞㯠1 åã®ãªãã©ã€ã§æåããŸãã Aurora DSQL ã®ãªãã©ã€ããžãã¯ã®åºæ¬åå: åžžã«ãã©ã³ã¶ã¯ã·ã§ã³å
šäœããªãã©ã€ãã: 40001 ãšã©ãŒã®åŸããã©ã³ã¶ã¯ã·ã§ã³ã¯ããŒã«ããã¯ãããŠããŸããBEGIN ããåå®è¡ããŠãã ããã ãžãã¿ãŒä»ãã®ãšã¯ã¹ããã³ã·ã£ã«ããã¯ãªãã䜿ã: ãªãã©ã€ãŸã§ã®åŸ
æ©æéã«ã©ã³ãã æ§ãæããããšãªãã©ã€ã®ã¿ã€ãã³ã°ã忣ããæ¬¡ã®è©Šè¡ã§åããã©ã³ã¶ã¯ã·ã§ã³å士ãåã³è¡çªããå¯èœæ§ãäžããããŸãã ãªãã©ã€ãã¹ããšã©ãŒãèŠæ¥µãã: SQLSTATE 40001 㯠OCC ã®ç«¶åãªã®ã§ããã©ã³ã¶ã¯ã·ã§ã³ããªãã©ã€ããŸããã¹ããŒãã®ç«¶å ( OC001 ) ã¯ãã»ãã·ã§ã³ãææ°ã®ã«ã¿ãã°ãååŸãããããéåžžã¯æåã®ãªãã©ã€ã§è§£æ¶ãããŸããäžæ¹ãå€éšããŒéå ( 23503 ) ã¯äžæçãªç«¶åã§ã¯ãªããããŒã¿èªäœã®åé¡ã§ãããªãã©ã€ããŠã解決ããªããããã¢ããªã±ãŒã·ã§ã³ã®ããžãã¯ã確èªããŠãã ããã ãªãã©ã€åæ°ã«äžéãèšããçºççãç£èŠãã: ã¯ãŒã¯ããŒãã«åã£ããªãã©ã€åæ°ã®äžéãèšå®ããŸããäžéã«éããŠã倱æããå Žåãäžæçãªç«¶åã§ã¯ãªããåææžã蟌ã¿ãéäžããããŠããããããªèŠªè¡ãåå ãšèããããŸããæ¬çªç°å¢ã§ã¯ 40001 ãšã©ãŒã®çºççã远跡ããŠãã ãããçºççãç¶ç¶çã«äžãã£ãŠããå Žåã¯ãã¹ããŒãã®èŠçŽããå¿
èŠã§ã (åè¿°ã®ãã¹ã±ãŒã«ãèæ
®ããèšèšããåç
§)ã ã¯ãªãŒã³ã¢ãã æ¬èšäºã§äœæãããªãœãŒã¹ãåé€ããã«ã¯ã次ãå®è¡ããŸãã -- Drop children before parents (respecting FK dependencies) DROP TABLE IF EXISTS order_lines; DROP TABLE IF EXISTS order_items; DROP TABLE IF EXISTS shipments; DROP TABLE IF EXISTS tasks; DROP TABLE IF EXISTS task_statuses; DROP TABLE IF EXISTS orders; DROP TABLE IF EXISTS inventory; DROP TABLE IF EXISTS products; DROP TABLE IF EXISTS tree; DROP TABLE IF EXISTS customers; ãŸãšã Aurora DSQL ã®å€éšããŒå¶çŽã䜿ããšãåç
§æŽåæ§ãã¢ããªã±ãŒã·ã§ã³ã³ãŒãã§ã¯ãªãããŒã¿ããŒã¹ã®ã¬ãã«ã§ä¿èšŒã§ããŸããAurora DSQL ã¯è¡ã¬ãã«ã®ããã¯ã§ã¯ãªã OCC ã䜿ããããåæå®è¡ããããã©ã³ã¶ã¯ã·ã§ã³ã¯äºãããããã¯ããã«åŠçãããç«¶åã¯ã³ãããæã«æ€åºãããŸãããŸããããŒä»¥å€ã®åã®æŽæ°ãå€éšããŒãã§ãã¯ã«åœ±é¿ããããšã¯ãããŸãããé
å»¶ãã§ãã¯ãå¶çŽã®éåææ€èšŒãæ¬èšäºã§ç޹ä»ããã¹ã±ãŒã«ãèæ
®ããèšèšãã¿ãŒã³ã掻çšããã°ãé«ã¹ã«ãŒãããã®åæ£ã¯ãŒã¯ããŒãã§ãå®å¿ããŠå€éšããŒãå°å
¥ã§ããŸãã詳现ã«ã€ããŠã¯ã Aurora DSQL ãŠãŒã¶ãŒã¬ã€ã ã®ã åæå®è¡å¶åŸ¡ ãã®ããŒãžãåç
§ããŠãã ããã èè
ã«ã€ã㊠Rekha Reddy Anupati AWS ã®ããŒã¿ããŒã¹ã¹ãã·ã£ãªã¹ããœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã§ããAWS ã®ãããŒãžãããŒã¿ããŒã¹ãµãŒãã¹ã䜿ã£ããã¹ã±ãŒã©ãã«ãªããŒã¿ããŒã¹ãœãªã¥ãŒã·ã§ã³ã®èšèšãšå®è£
ãã客æ§ãšå
±ã«é²ããŠããŸãã Arnab Chowdhury AWS ã®ããŒã¿ããŒã¹ã¹ãã·ã£ãªã¹ããœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã§ããAWS äžã§ã®ããŒã¿ããŒã¹ã¢ãŒããã¯ãã£ã®èšèšãç§»è¡ãæé©åãæ¯æŽããŠããŸãã ãã®èšäºã¯ Kiro ã翻蚳ãæ
åœããSolutions Architect ã® Kenta Nagasue ãã¬ãã¥ãŒããŸããã


















