
- TOP
- ã¿ã°äžèЧ
- Node.js
Node.js
ã€ãã³ã
該åœããã³ã³ãã³ããèŠã€ãããŸããã§ãã
ãã¬ãžã³
æè¡ããã°
ã¯ããã« 2026幎5æ14-15æ¥(æšé)ã«åå€å±ã®äžæ¥ããŒã«&ã«ã³ãã¡ã¬ã³ã¹ã«ãŠã¯ã©ãŠããã€ãã£ãäŒè°ãéå¬ãããŸãããæ¬èšäºã§ã¯åã€ãã³ãã§è¡ãããçºè¡šã®äžããããããã€ã³ã¿ãŒãããç ç©¶æã®å°ç°ç¥å€®ãã(@ […]
ã¯ããã« ããã«ã¡ã¯ãå»çãã©ãããã©ãŒã æ¬éš CLINICS éçºã°ã«ãŒãã®å岡ã§ãã ã¡ãã¬ãŒã¯ 5 æ 22 æ¥ã»23 æ¥ã«ãã«ãµãŒã«çŸœç°ç©ºæž¯ã«ãŠéå¬ããã TSKaigi 2026 ã« Bronzeã¹ãã³ãµãŒãšããŠåè³ããŸããã TSKaigi ã¯ãæ¥æ¬æå€§çŽã® TypeScript ãããŒããšããæè¡ã«ã³ãã¡ã¬ã³ã¹ã§ã2024 幎ã®ç¬¬ 1 åããæ¯å¹Žåè³ããŠããŸãã ä»å¹Žã¯çŸå°åå 800 人ããªã³ã©ã€ã³åå 900 人ãè¶
ããèŠæš¡ã§éå¬ãããŸããã TSKaigi 2026 äŒå ŽïŒãã«ãµãŒã«çŸœç°ç©ºæž¯ïŒ TSKaigi 2026 ã§ã¯ãTypeScript 7 ã§æ£åŒãªãªãŒã¹ãšãªã tsgo ã«é¢ããã»ãã·ã§ã³ãå€ãèŠãããŸããã æ¬èšäºã§ã¯ãåŒç€Ÿããç»å£ãã髿©ã®ã»ãã·ã§ã³ãšããã®ä»ã«å°è±¡ã«æ®ã£ãã»ãã·ã§ã³ã«ã€ããŠç޹ä»ããŸãã åŒç€Ÿã»é«æ©ã®ç»å£ã次äžä»£ãªã³ã¿ãŒã§æ¢ããtsgo æä»£ã«ãããåèªèã«ã¹ã¿ã ã«ãŒã«ã®çŸå®è§£ã Day2 ã® Leverages ãã©ãã¯ã«ãŠãåŒç€Ÿã®é«æ©ãç»å£ããŸããã æ¬¡äžä»£ãªã³ã¿ãŒã§æ¢ããtsgo æä»£ã«ãããåèªèã«ã¹ã¿ã ã«ãŒã«ã®çŸå®è§£ | TSKaigi 2026 TSKaigi 2026 ã®ã¹ããŒã«ãŒãããŒã¯æ
å ±ã§ãã 2026.tskaigi.org çºè¡šå
容 çºè¡šã§ã¯ããŸãåèªèãªã³ãã«ã€ããŠãtypescript-eslintãOxlintãRslintãBiome ã®åãªã³ã¿ãŒã®å¯Ÿå¿ç¶æ³ãæŽçãããŸãããç¶ããŠãRslint ã«å¯ŸããŠåèªèã«ã¹ã¿ã ã«ãŒã«ã Go èšèªã§å®è£
ããç¬èªãã«ããããªã³ã¿ãŒãã€ããªã§å®éã«èšºæã§ããããšã瀺ããPoCã®ãã¢ããããŸããã ç¹ã«å匷ã«ãªã£ãã®ã¯ãããããã«ã¹ã¿ã ã«ãŒã«ã¯ typescript-go ã® internal API ã«äŸåããããšã«ãªãããã®è¿œåŸã³ã¹ããèæ
®ããå¿
èŠããããšããç¹ã§ããåèªèã«ã¹ã¿ã ã«ãŒã«ã§å¯Ÿå¿ããã®ã§ã¯ãªããã³ãŒãèŠçŽãšèšèšã工倫ããŠãASTã®ã¿ã§å€å®å¯èœãªã«ã¹ã¿ã ã«ãŒã«ãšåãã§ãã¯ã§è§£æ±ºã§ããªãããæåã«æ€èšãã¹ãã ãšããæéã瀺ãããŸããã äœè«ã§ãããçºè¡šåæ¥ã« Oxlint JS Plugin ãã tsgo ã®åæ
å ±ãåãåãããæ¹æ³ãå®èšŒãã OSS ã§ãã corsa-bind ãçºèŠããåœæ¥ã®æã«æ¥éœã¹ã©ã€ãã远å ããŠèšãã ãšããè£è©±ããããŸããã æ¬¡äžä»£ãªã³ã¿ãŒã«ãããã«ã¹ã¿ã ãã©ã°ã€ã³ã®ä»åŸã®ååã«æ³šç®ããŠããããã§ããã çºè¡šäžã®æ§å å°è±¡ã«æ®ã£ãã»ãã·ã§ã³ tscããtsgoãž ââ Denoã®TypeScriptåºç€ã¯ã©ãå€ãã£ãã ç»å£è
: maguro ãã tscããtsgoãž ââ Denoã®TypeScriptåºç€ã¯ã©ãå€ãã£ãã | TSKaigi 2026 TSKaigi 2026 ã®ã¹ããŒã«ãŒãããŒã¯æ
å ±ã§ãã 2026.tskaigi.org Phase 1 ã§ã¯ãtsc ã«ããããåœãŠã JavaScript ãã¡ã€ã«ã Deno binary ã«åã蟌ã¿ãV8 isolate å
ã§å®è¡ããŠããŸããã Phase 2 ã§ã¯ãtsgo ã fork ããŠåããã»ã¹ã§åããããšã§ãåãã§ãã¯ïŒ deno check ïŒãçŽ 2.5 ã 2.6 åã«é«éåãããŸãããäžæ¹ã§ãäžæµè¿œåŸãš LSP 察å¿ã®ã³ã¹ããéãããšã課é¡ãšãªã£ãŠããŸããã ãããŠçŸåšé²è¡äžã® Phase 3 ã§ã¯ãfork ããããDeno åŽã®ãœãŒã¹ãå
¬åŒ TypeScript ãèªãã圢㫠materialize ããŠãnpm ã®å
¬åŒ TypeScript ã«åŠçãããæ¹éãžãšé²ãã§ããŸãã ãfork ãåå®è£
ãé¿ãããããšããå¶çŽã®äžã§å
¬åŒ TypeScript ãžã®çµ±åãé²ãã Deno ã®æ¹éãå°è±¡çã§ããã TS 7: How We Got There ç»å£è
: Jake Bailey ãã TS 7: How We Got There | TSKaigi 2026 TSKaigi 2026 ã®ã¹ããŒã«ãŒãããŒã¯æ
å ±ã§ãã 2026.tskaigi.org TypeScript ããŒã æ¬äººã«ããåºèª¿è¬æŒã§ãTypeScript ã³ã³ãã€ã©ã Go èšèªãžç§»æ€ããèæ¯ãèªãããŸãããã»ãã·ã§ã³ã§ã¯ tsgo ã®ãã¢ãè¡ãããåŸæ¥ 2 åã»ã©ããã£ãŠããåãã§ãã¯ã 10 ç§ã«ççž®ãããæ§åã瀺ãããŸããã ã³ã³ãã€ã«æã®åŠç㯠ParseãBindãCheckãEmit ã®é ã§è¡ãããŸããç¹ã«å°è±¡çã ã£ãã®ã¯ãChecker ã§çæãããåæ
å ±ã Checker éã§å
±æããªãããšã§ã䞊åå®è¡æã®åæãªãŒããŒããããé¿ããŠé«éåãå®çŸããŠããç¹ã§ãã CLINICS ã§ãããŒã«ã«ç°å¢ã§ tsgo ã䜿çšããŠãããåãã§ãã¯ãé«éåããããšã§ãAI éçºã®ãã£ãŒãããã¯ãéããŠããŸãã å¶çŽãšæä»£ããèªã¿è§£ãTypeScriptã³ã³ãã€ã©èšèšå² ç»å£è
: Yoshiaki Togami ãã å¶çŽãšæä»£ããèªã¿è§£ãTypeScriptã³ã³ãã€ã©èšèšå² | TSKaigi 2026 TSKaigi 2026 ã®ã¹ããŒã«ãŒãããŒã¯æ
å ±ã§ãã 2026.tskaigi.org TypeScript ã³ã³ãã€ã©ã¯ãAST ã semantic æ
å ±ãèè² ãã埪ç°åç
§ã ããã®æ§é ã«ãªã£ãŠãããšããç¬ç¹ãªæ§æãæã£ãŠããŸãã Web ã®æŽå²ã®äžã§ Ajax é©åœã V8 / Chrome / Node.js ã®ç»å Žã«ãã JavaScript ã§å€§èŠæš¡ãªãœãããŠã§ã¢ãæžãããããã«ãªããMicrosoft å
éšã§ã Office ãªã©ã® Web ç§»æ€ãè¿«ãããŠããŸãããäžæ¹ã§ãåœæã® JavaScript åãéçºããŒãªã³ã°ã¯è²§åŒ±ã§ãå€§èŠæš¡éçºã®äœéšãæç«ããªãã£ããããããã解決ããããã« TypeScript ãéçºãããŸããã ããã«ãTypeScript ã«ã¯ IDE ã§ã®é«éãªå¿çãèŠä»¶ãšããŠèª²ããããŸãããæ¬æ¥ã§ããã° immutability ãšèŠªã¢ã¯ã»ã¹ãäž¡ç«ããä»çµã¿ãå¿
èŠã§ããããåœæã® JavaScript ã§ã¯å®çŸã§ãããçµæãšã㊠AST ã«çŽæ¥ symbol ã parent ãæžã蟌ãçŸåšã®æ§æã«èœã¡çããŠããŸãã tsgo ã§ã¯ãã€ãã£ãåãšå
±æã¡ã¢ãªã»ãã«ãã¹ã¬ããåã§çŽ 10 åã®é«éåãå®çŸãããŠããŸããæŽå²ãé¡ãããšã§ãçŸåšã® TypeScript ããªããã®ãããªèšèšã«ãªã£ãŠããã®ããšããèæ¯ãçè§£ã§ããŸããã ãŸãšã æ¬èšäºã§ã¯ãåŒç€Ÿã»é«æ©ã®ç»å£ãšãTSKaigi 2026 ã§å°è±¡ã«æ®ã£ãã»ãã·ã§ã³ã«ã€ããŠç޹ä»ããŸããã ä»å¹Žã®ã¡ãã¬ãŒããã¯ãBronzeã¹ãã³ãµãŒãšããŠã®åè³ãšé«æ©ã®ç»å£ã«å ããéå¶ã¹ã¿ãããšããŠã執氞ãšå±±æ²³ã® 2 åã TSKaigi 2026 ã«é¢ãããŸããã TSKaigi 2026 ã«åå ããã¡ãã¬ãŒã¡ã³ã㌠ã¡ãã¬ãŒã§ã¯ä»åŸã TypeScript ã³ãã¥ããã£ã®çºå±ã«è²¢ç®ãã瀟å
ã§ã®å®è·µãç¶ããŠãããŸãã éå»ã«ã¹ãã³ãµãŒãšããŠåè³ãã TSKaigi ã®åå ã¬ããŒãã¯ãã¡ãã§ãã TSKaigi 2025 åå ã¬ããŒãïŒæ°å2幎ç®ãšã³ãžãã¢ãæããTypeScriptã®æåç· | MEDLEY Developer Portal ã¯ããã« ããã«ã¡ã¯ïŒ 人æãã©ãããã©ãŒã æ¬éšãããã¯ãçµ±æ¬éšãããã¯ãéçºéšã¢ã«ãããŒéçºã°ã«ãŒãæå±ã®åéïŒã·ããïŒã§ãã ç§ã¯ 2024 幎 4 æã«æ°åãšã³ãžãã¢ãšããŠå
¥ç€ŸããçŸåšã¯ãªã³ã©ã€ã³åç»ç ä¿®ãµãŒãã¹ããžã§ãã¡ãã¬ãŒã¢ã«ã... developer.medley.jp TSKaigi 2024ã®ã¹ãã³ãµãŒLTã§TypeScriptã³ãŒãæ¹åã®åãçµã¿ã«ã€ããŠç޹ä»ããŸãã | MEDLEY Developer Portal ããã«ã¡ã¯ãå»çãã©ãããã©ãŒã æ¬éšãããã¯ãéçºå®€ CLINICS 第äºéçºã°ã«ãŒãæå±ã®é«æ©ã§ãã ã¡ãã¬ãŒã¯ 5 æ 11 æ¥ã«äžéã»ã³ãã©ã«ããŒã¯ã«ã³ãã¡ã¬ã³ã¹ã«ãŠéå¬ããã TSKaigi 2024 ã« Gold Sponsor ... developer.medley.jp Weâre hiring ã¡ãã¬ãŒã§ã¯äžç·ã«åã仲éã倧åéããŠããŸãïŒ ã«ãžã¥ã¢ã«é¢è«ã宿œããŠãããŸãã®ã§ããã話ã ãã§ãèããŠã¿ããïŒããã¡ãã£ãšéè«ããŠã¿ããïŒãã§ãæ§ããŸããã®ã§ããæ°è»œã«ãåãåãããã ããïŒ ã¡ãã¬ãŒã§åãïœæ ªåŒäŒç€Ÿã¡ãã¬ãŒ ã¡ãã¬ãŒã§ã®åãæ¹ã人äºå¶åºŠãæ±äººæ
å ±ãªã©ãæ¡çšã«é¢ããæ
å ±ãã玹ä»ããŸãã www.medley.jp Medley Engineer Entrance Book ãã®åºŠã¯æ ªåŒäŒç€Ÿã¡ãã¬ãŒã«èå³ããå¯ãããã ãããããšãããããŸããæ¬è³æã¯ãã¡ãã¬ãŒãžã®è»¢è·ããæ€èšããã ããŠããçæ§ã«ãåœç€Ÿãããæ·±ããçè§£ããã ãããã«äœæããããŸããã medley-inc.notion.site
æ¬èšäºã¯ 2026 幎 5 æ 11 æ¥ ã«å
¬éãããã Amazon Aurora DSQL connections: Drivers, strings, and best practices ãã翻蚳ãããã®ã§ãã Amazon Aurora DSQL ãžã®åããŠã®æ¥ç¶ãèšå®ããããšããŠããŸãã? PostgreSQL ã䜿ã£ãããšãããã°æµãã¯äŒŒãŠããŸãããããã€ãéèŠãªéãããããŸããé·æéæå¹ãªãã¹ã¯ãŒãã®ä»£ããã«ã çåœã® IAM èªèšŒããŒã¯ã³ ã䜿çšããŸããéçãªãšã³ããã€ã³ãã®ä»£ããã«ãè€æ°ã®ã¢ãã€ã©ããªãã£ãŸãŒã³ã«ãŸããã忣ã¯ã©ã¹ã¿ãŒãšã³ããã€ã³ãã䜿çšããŸããæ¥ç¶ã¿ã€ã ã¢ãŠãã®ãã©ãã«ã·ã¥ãŒãã£ã³ã°ãããŒã¯ã³ã®æå¹æé管çããã©ã€ããŒã®ååèšå®ãªã©ãæ¥ç¶ãã¿ãŒã³ãçè§£ããŠãããšäžè¬çãªåé¡ãåé¿ã§ããŸãã æ¬èšäºã§ã¯ãæ¥ç¶æååã®èšå®æ¹æ³ãPythonã»Javaã»Node.js ã§ã®ãã©ã€ããŒèšå®ãèªèšŒã»æ¥ç¶ããŒãªã³ã°ã»ã©ã€ããµã€ã¯ã«ç®¡çã®ãã¹ããã©ã¯ãã£ã¹ã«ã€ããŠèª¬æããŸãã æ¥ç¶ã¢ãŒããã¯ã㣠Amazon Aurora DSQL ã¯ãåŸæ¥ã® PostgreSQL ãããã€ãšã¯æ ¹æ¬çã«ç°ãªã忣æ¥ç¶ã¢ãŒããã¯ãã£ãæ¡çšããŠããŸããã¢ããªã±ãŒã·ã§ã³ã¯åäžã®ããŒã¿ããŒã¹ã€ã³ã¹ã¿ã³ã¹ã«æ¥ç¶ããã®ã§ã¯ãªããè€æ°ã®ã¢ãã€ã©ããªãã£ãŸãŒã³ã«ãã©ãã£ãã¯ã忣ããã«ãŒãã£ã³ã°ã¬ã€ã€ãŒãä»ããŠæ¥ç¶ããŸãããã©ã€ããŒãæ¥ç¶æååãèšå®ããåã«ããšã³ããã€ã³ãã®æ§é ãšã¯ã€ã€ãããã³ã«ã®åäœãçè§£ããŠããå¿
èŠããããŸãã以äžã®ã»ã¯ã·ã§ã³ã§ã¯ãæ¥ç¶åã«ç¥ã£ãŠããã¹ããšã³ããã€ã³ã圢åŒãšã¯ã€ã€ãããã³ã«ã®äºææ§ã«ã€ããŠèª¬æããŸãã ãšã³ããã€ã³ãåœ¢åŒ Amazon Aurora DSQL ã¯ã©ã¹ã¿ãŒã®ãšã³ããã€ã³ãã¯æ¬¡ã®ãã¿ãŒã³ã«åŸããŸãã <cluster-id>.dsql.<region>.on.aws äŸ: weaxxxxxxxxxxxxxxxxqdqqm.dsql.us-east-1.on.aws ãã¥ã¢ã«ã¹ã¿ãã¯åœ¢åŒã§ãIPv4 ãš IPv6 ã®äž¡æ¹ããµããŒãããŠããŸãããšã³ããã€ã³ã㯠Aurora DSQL ã®åæ£ã«ãŒãã£ã³ã°ã¬ã€ã€ãŒã«æ¥ç¶ããè€æ°ã®ã¢ãã€ã©ããªãã£ãŸãŒã³ãžã®æ¥ç¶åæ£ãèªåçã«åŠçããŸãã äž»èŠãªæ¥ç¶ãã©ã¡ãŒã¿: Host: ã¯ã©ã¹ã¿ãŒãšã³ããã€ã³ã (äžèšã®åœ¢åŒ)ã Port: 5432 (PostgreSQL æšæºããŒã)ã Database: postgres (ããã©ã«ãã®ããŒã¿ããŒã¹å)ã SSL Mode: ãã¹ãŠã®æ¥ç¶ã§å¿
é ã ã¯ã€ã€ãããã³ã«ã®äºææ§ Amazon Aurora DSQL ã¯æšæºã® PostgreSQL v3 ã¯ã€ã€ãããã³ã«ã䜿çšããŠãããpsqlãpgjdbcãpsycopgãpsycopg2 ãªã©ã®äžè¬ç㪠PostgreSQL ãã©ã€ããŒãšã®äºææ§ããããŸããæ¢åã®ããŒã«ãã©ã€ãã©ãªã¯ãæå°éã®èšå®å€æŽã§å©çšã§ããŸãã èªèšŒãšã»ãã¥ãªã㣠Aurora DSQL ã§ã¯ãåŸæ¥ã® PostgreSQL ããŒã¿ããŒã¹ãšã¯ç°ãªãèªèšŒæ¹åŒãšãããã¯ãŒã¯ã»ãã¥ãªãã£ãæ¡çšããŠããŸãã以äžã®ã»ã¯ã·ã§ã³ã§ã¯ãIAM ããŒã¹ã®ããŒã¯ã³çæããããã¯ãŒã¯æ¥ç¶ãªãã·ã§ã³ãèªèšŒæ
å ±ç®¡çã®ãã¹ããã©ã¯ãã£ã¹ã«ã€ããŠèª¬æããŸãã IAM ããŒã¹ã®èªèšŒ Amazon Aurora DSQL ã¯çåœã® IAM èªèšŒããŒã¯ã³ã®ã¿ã䜿çšããŸããIAM èªèšŒã«ã¯ä»¥äžã®ã»ãã¥ãªãã£äžã®å©ç¹ããããŸãã ã»ãã¥ãªãã£ã®åŒ·å: ãã¹ã¯ãŒãã®ä¿åãããŒããŒã·ã§ã³ã«äŒŽããªã¹ã¯ã軜æžããŸãã ã¢ã¯ã»ã¹å¶åŸ¡ã®äžå
å: AWS Identity and Access Management (AWS IAM) ã«ããçµ±äžçãªæš©é管çãå¯èœã§ãã ç£æ»èšŒè·¡: æ¥ç¶è©Šè¡ã AWS CloudTrail ã«èšé²ãããŸãã èªåæéåã: ããŒã¯ã³ã¯ããã©ã«ãã§ 15 ååŸã«æéåãã«ãªããŸã (æå€§ 1 é±éãŸã§èšå®å¯èœ)ãããã©ã«ããè¶
ããæå¹æéã®å»¶é·ã¯æšå¥šããŸãããæŒæŽ©ããé·åœããŒã¯ã³ã¯é倧ãªã»ãã¥ãªãã£ãªã¹ã¯ã§ããå»¶é·ãå¿
èŠãªå Žåã¯ãããŒã¯ã³ã®ã¹ã³ãŒããæå°éã®æš©éã«çµããCloudTrail ã§é·åœããŒã¯ã³ãç£èŠããŠãã ããã ã¢ã¯ã»ã¹å¶åŸ¡ãã¿ãŒã³ãšã»ãã¥ãªãã£ã®ãã¹ããã©ã¯ãã£ã¹ã®è©³çްã«ã€ããŠã¯ã Amazon Aurora DSQL ã®ã»ãã¥ãªãã£å¯ŸçïŒã¢ã¯ã»ã¹å¶åŸ¡ã®ãã¹ããã©ã¯ãã£ã¹ ãåç
§ããŠãã ããã AWS Command Line Interface (AWS CLI) ã§ã®ããŒã¯ã³çæ: 以äžã®ã³ãã³ãã§ãAWS CLI ã䜿çšã㊠Aurora DSQL ã¯ã©ã¹ã¿ãŒã®èªèšŒããŒã¯ã³ãçæããŸãã aws dsql generate-db-connect-admin-auth-token \ --region us-east-1 \ --hostname <your-cluster-id>.dsql.us-east-1.on.aws å¿
èŠãª IAM æš©é: { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dsql:DbConnect", "dsql:DbConnectAdmin" ], "Resource": "arn:aws:dsql:region:account-id:cluster/cluster-id", "Condition": { "IpAddress": { "aws:SourceIp": ["10.0.0.0/8"] } } } ] } dsql:DbConnect: éåžžã®ããŒã¿ããŒã¹ãŠãŒã¶ãŒãšããŠã®æ¥ç¶æš©éãä»äžããŸãã dsql:DbConnectAdmin: 管çè
æš©éãä»äžããŸãã æå°æš©éã®åå ãŠãŒã¹ã±ãŒã¹ããšã«å¿
èŠæå°éã®æš©éã®ã¿ãä»äžããŸãã æšæºã®ã¢ããªã±ãŒã·ã§ã³ã¢ã¯ã»ã¹ã«ã¯ dsql:DbConnect ã䜿çšããŸãã dsql:DbConnectAdmin ã¯ç®¡çã¿ã¹ã¯å°çšã«éå®ããŸãã æ¢ç¥ã®ãããã¯ãŒã¯ç¯å²ã®ã¿ã«ã¢ã¯ã»ã¹ãå¶éãããããIP ããŒã¹ã® æ¡ä»¶ ã远å ããŸãã ãããã¯ãŒã¯ã»ãã¥ãªã㣠Amazon Aurora DSQL ã¯ãããªãã¯ã¢ã¯ã»ã¹ãšãã©ã€ããŒãã¢ã¯ã»ã¹ã®äž¡æ¹ããµããŒãããŠããŸãã ãããªãã¯ãšã³ããã€ã³ãã¢ã¯ã»ã¹ ã¯ä»¥äžã«ããã»ãã¥ãªãã£ã確ä¿ããŸãã IAM ããŒã¹ã®èªèšŒ â ãã¹ã¯ãŒãããŒã¹ã®è匱æ§ã軜æžããŸãã IP ããŒã¹ã®ã¢ã¯ã»ã¹å¶åŸ¡ â IAM ããªã·ãŒæ¡ä»¶ã«ããæ¥ç¶ãå¶éããŸãã SSL/TLS æå·åã®å¿
é å â æå·åããããã©ã³ã¹ããŒããå¿
é ã§ãã ãã©ã€ããŒããšã³ããã€ã³ãã¢ã¯ã»ã¹ (AWS PrivateLink) ã¯ãã©ãã£ãã¯ã AWS å
ã«ä¿æããŸãã VPC ã€ã³ã¿ãŒãã§ã€ã¹ãšã³ããã€ã³ã â ã€ã³ã¿ãŒãããã«å
¬éãããªããã©ã€ããŒãæ¥ç¶ã VPC ãšã³ããã€ã³ãããªã·ãŒ â ãããã¯ãŒã¯ã¬ãã«ã®è¿œå ã®ã¢ã¯ã»ã¹å¶åŸ¡ã ã»ãã¥ãªãã£ã°ã«ãŒã â ç¹å®ã®ãµãããããšããŒããžã®ãã©ãã£ãã¯ãå¶éã VPC ãšã³ããã€ã³ãããªã·ãŒãã¢ã¿ããããŠããšã³ããã€ã³ãçµç±ã§æ¥ç¶ã§ããããªã³ã·ãã«ãå¶éããŸããèšå®ããªãå ŽåãVPC å
ã®ãã¹ãŠã®ããªã³ã·ãã«ããšã³ããã€ã³ãã䜿çšããŠã¯ã©ã¹ã¿ãŒã«æ¥ç¶ã§ããŸãã { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:role/your-app-role" }, "Action": [ "dsql:DbConnect" ], "Resource": "arn:aws:dsql:region:account-id:cluster/cluster-id" } ] } ãããã¯ãŒã¯ãšã°ã¬ã¹å¶åŸ¡ ã€ã³ããŠã³ãã¢ã¯ã»ã¹ã®å¶åŸ¡ã ãã§ã¯äžååã§ãããšã°ã¬ã¹å¶éããªããã°ã䟵害ãããã¢ããªã±ãŒã·ã§ã³ãå€éšã«ããŒã¿ãéåºããå¯èœæ§ããããŸããã¢ããªã±ãŒã·ã§ã³ãã¹ãããã®ã¢ãŠãããŠã³ããã©ãã£ãã¯ãå¶éããŠãã ããã ã»ãã¥ãªãã£ã°ã«ãŒãã®ã¢ãŠãããŠã³ãã«ãŒã« â å¿
èŠãªå®å
(Aurora DSQL ã®ããŒã 5432ãAWS ãµãŒãã¹ãšã³ããã€ã³ããªã©) ãžã®ãã©ãã£ãã¯ã®ã¿ãèš±å¯ããŸãã VPC Network ACLs â ã»ã«ã³ããªã¬ã€ã€ãŒãšããŠãµããããã¬ãã«ã®ãšã°ã¬ã¹å¶éã远å ããŸãã VPC Flow Logs â äºæããªãã¢ãŠãããŠã³ããã©ãã£ãã¯ãã¿ãŒã³ãç£èŠããŸãã AWS Network Firewall â ã»ãã¥ãªãã£ã°ã«ãŒããè¶
ããããã现ãããšã°ã¬ã¹ãã£ã«ã¿ãªã³ã°ã«äœ¿çšããŸãã èªèšŒæ
å ±ã®ç®¡ç Aurora DSQL ã«æ¥ç¶ããéã®èªèšŒæ
å ±ç®¡çã®ãã¹ããã©ã¯ãã£ã¹ã以äžã«ç€ºããŸãã èªèšŒæ
å ±ãããŒãã³ãŒãããªã â ã¢ããªã±ãŒã·ã§ã³ã³ãŒãã«åã蟌ãŸãªãã§ãã ããã ç°å¢å€æ°ã䜿çšãã â ãã¹ãåããªãŒãžã§ã³ãªã©ã®èšå®å€ã«ã¯ç°å¢å€æ°ã䜿çšããŸãã ããŒã¯ã³ãåçã«çæãã â æ¥ç¶æã« AWS SDK åŒã³åºãã§ããŒã¯ã³ãçæããŸãã AWS Secrets Manager ã䜿çšãã â æ¥ç¶èšå®ã®ä¿åã«å©çšããŸãã IAM èªèšŒæ
å ±ã宿çã«ããŒããŒã·ã§ã³ãã â AWS ã®ã»ãã¥ãªãã£ãã¹ããã©ã¯ãã£ã¹ ã«åŸããŸãã èªèšŒè©Šè¡ãç£èŠãã â CloudTrail ã«ããç°åžžæ€ç¥ ãæŽ»çšããŸãã èªèšŒããŒã¯ã³ããã°ã«èšé²ã»æ°žç¶åããªã â ããŒã¯ã³ã¯ããŒã¿ããŒã¹ãã¹ã¯ãŒããšããŠæž¡ããããããæ¥ç¶æååãã°ãã¢ããªã±ãŒã·ã§ã³ãã°ããšã©ãŒã¡ãã»ãŒãžã«æŒæŽ©ããå¯èœæ§ããããŸãããã®ã³ã°ãã¬ãŒã ã¯ãŒã¯ã§ãã¹ã¯ãŒããã£ãŒã«ãã確å®ã«ãã¹ã¯ããURL ã蚺æåºåã«ããŒã¯ã³ãå«ããªãã§ãã ããã æ¥ç¶ã®ç£èŠ CloudTrail ã¯ãã¹ãŠã® Aurora DSQL èªèšŒã€ãã³ããèšé²ããŸããç°åžžãªæ¥ç¶ã¢ã¯ãã£ããã£ãæ€ç¥ããã¢ã©ãŒããèšå®ããŠãã ããã èªèšŒå€±æ â DbConnect ãŸã㯠DbConnectAdmin ã®ç¹°ãè¿ã倱æã«å¯Ÿã㊠Amazon CloudWatch ã¢ã©ãŒã ãäœæããèªèšŒæ
å ±ã®æªçšãèšå®ãã¹ãæ€ç¥ããŸãã äºæããªãéä¿¡å
IP ããªãŒãžã§ã³ â CloudTrail ã€ãã³ãã sourceIPAddress ãš awsRegion ã§ãã£ã«ã¿ãªã³ã°ããæ³å®å€ã®ãããã¯ãŒã¯ç¯å²ããã®æ¥ç¶ããã©ã°ä»ãããŸãã ç°åžžãªæ¥ç¶ãã¿ãŒã³ â CloudWatch ç°åžžæ€ç¥ã䜿çšããŠãæ¥ç¶éã®æ¥å¢ãéåžžã®éçšæéå€ã®æ¥ç¶ãç£èŠããŸãã é·åœããŒã¯ã³ã®äœ¿çš â èŠæ±ãããæå¹æéãããã©ã«ãã® 15 åãè¶
ãã GenerateDbConnectAdminAuthToken åŒã³åºãã远跡ããŸãã èªå察å¿ãšããŠãCloudTrail ã€ãã³ãã® Amazon EventBridge ã«ãŒã«ã䜿çšããŠã Amazon Simple Notification Service (Amazon SNS) éç¥ã AWS Lambda ã«ãã修埩ã¯ãŒã¯ãããŒãããªã¬ãŒã§ããŸãã SSL/TLS ã®èšå® Amazon Aurora DSQL ã¯æ¥ç¶ã«æå·åãã©ã³ã¹ããŒããå¿
é ãšããŠããŸãã sslmode=require â æå·åã®æå°èŠä»¶ã sslmode=verify-full â å®å
šãªèšŒææžæ€èšŒãšãã¹ãåæ€èšŒã«ããã»ãã¥ãªãã£åŒ·åã æ¬çªç°å¢ã®æšå¥šäºé
: verify-full ã¢ãŒãã䜿çšããŠãã ãããèšŒææžãã§ãŒã³ãšãã¹ãåã®äž¡æ¹ãæ€èšŒããäžéè
æ»æãžã®å¯ŸçãšãªããŸãã Amazon Aurora DSQL ã³ãã¯ã¿ãŒ AWS 㯠Amazon Aurora DSQL ã³ãã¯ã¿ãŒãæäŸããŠããŸããã³ãã¯ã¿ãŒã¯ééçãªèªèšŒã¬ã€ã€ãŒãšããŠæ©èœããIAM ããŒã¯ã³ã®çæãšãªãã¬ãã·ã¥ãèªåçã«åŠçããŸããèªèšŒã³ãŒãã§ã¯ãªããæ¥ç¶ã³ãŒãã ããèšè¿°ããã°æžã¿ãŸãã å©çšå¯èœãªã³ãã¯ã¿ãŒ JDBC Connector â æšæºã® Java ããŒã¿ããŒã¹æ¥ç¶ã¬ã€ã€ãŒã« IAM èªèšŒãçµ±åããæ¢åã® Java ããŒã¿ã¢ã¯ã»ã¹ãã¬ãŒã ã¯ãŒã¯ãšã·ãŒã ã¬ã¹ã«é£æºããŸãã Python Connector â psycopgãpsycopg2ãasyncpg (éåæã¯ãŒã¯ããŒã) ããµããŒãããŸããèªèšŒãã©ã°ã€ã³ãšããŠåäœããæ¢åã®æ¥ç¶ã¯ãŒã¯ãããŒã倿Žããã«ããŒã¯ã³çæãåŠçããŸãã Node.js Connectors â node-postgres (pg) ãš Postgres.js ã®äž¡æ¹ã«å¯Ÿå¿ããŠããŸãã Go Connector â pgx ãã©ããããIAM èªèšŒã®èªååŠçãSSL èšå®ãæ¥ç¶ç®¡çãè¡ããŸãã Ruby Connector â Ruby ã¢ããªã±ãŒã·ã§ã³åãã® IAM ããŒã¹èªèšŒãæäŸããŸãã .NET Connector â Npgsql ãã©ããããIAM èªèšŒã®èªååŠçãSSL èšå®ãæ¥ç¶ç®¡çãè¡ããŸãã Rust Connector â SQLx ãã©ããããIAM èªèšŒã®èªååŠçãSSL èšå®ãæ¥ç¶ç®¡çãè¡ããŸãã å®è£
ã®è©³çްã«ã€ããŠã¯ã Amazon Aurora DSQL Connectors GitHub ãåç
§ããŠãã ããã ã³ãã¯ã¿ãŒäœ¿çšã®å©ç¹ ããŒã¯ã³ç®¡çã®èªåå â ã¯ã©ã¹ã¿ãŒãã¹ãåããã®ãªãŒãžã§ã³èªåæ€åºãå«ããIAM ããŒã¯ã³çæãšãªãã¬ãã·ã¥ã®ã©ã€ããµã€ã¯ã«å
šäœã管çããŸãã ã·ãŒã ã¬ã¹ãªçµ±å â æ¥ç¶ããŒãªã³ã°ã©ã€ãã©ãª (HikariCPãpsycopg ConnectionPoolãpsycopg2 ThreadedConnectionPoolãasyncpg ãã€ãã£ãããŒã«) ãšééçã«é£æºããŸãã ãã¬ãŒã ã¯ãŒã¯ãµããŒã â Spring BootãDjango ãªã©ãæšæºçãªããŒã¿ããŒã¹ãã©ã€ããŒã€ã³ã¿ãŒãã§ã€ã¹ã«äŸåãããã¬ãŒã ã¯ãŒã¯ãšäºææ§ããããŸãã ãã€ã©ãŒãã¬ãŒãã®åæž â æåã®ããŒã¯ã³çæã³ãŒãã®èšè¿°ãã¡ã³ããã³ã¹ãäžèŠã§ãã ã¯ã€ãã¯ã¹ã¿ãŒãäŸ (JDBC ã³ãã¯ã¿ãŒ) 以äžã®äŸã¯ãJava ã§ JDBC ã³ãã¯ã¿ãŒã䜿çšã㊠Aurora DSQL ã¯ã©ã¹ã¿ãŒã«æ¥ç¶ããæ¹æ³ã瀺ããŠããŸããã³ãŒããå®è¡ããåã«ããããžã§ã¯ãã®äŸåé¢ä¿ã« Aurora DSQL JDBC ãã©ã€ããŒã远å ããIAM èªèšŒæ
å ±ãèšå®æžã¿ã§ããããšã確èªããŠãã ãã (ç°å¢å€æ°ãã€ã³ã¹ã¿ã³ã¹ãããã¡ã€ã«ããŸã㯠AWS èªèšŒæ
å ±ãã¡ã€ã«ã®ãããã)ãJDBC URL ã« jdbc:aws-dsql:// ãã¬ãã£ãã¯ã¹ãèšå®ãã DriverManager.getConnection ãåŒã³åºããŸããã³ãã¯ã¿ãŒã IAM ããŒã¯ã³çæãèªåçã«åŠçãããããæåã®ããŒã¯ã³ã³ãŒãã¯äžèŠã§ããã³ãã¯ã¿ãŒã¯ãããŒã¯ã³ãé·æéãã£ãã·ã¥ããã®ã§ã¯ãªããæ°ããæ¥ç¶ãŸãã¯æ¥ç¶ããŒã«ã®åæåããšã«æ°ããããŒã¯ã³ãçæããŸãã // Change the JDBC URL prefix to jdbc:aws-dsql:// String url = "jdbc:aws-dsql://" + clusterEndpoint + ":5432/postgres"; Connection conn = DriverManager.getConnection(url, "admin", ""); // No password needed â the connector handles token generation automatically æåæ¥ç¶ãã¿ãŒã³ ã³ãã¯ã¿ãŒã䜿çšããªãå Žå (åŠç¿ç®çããããã°ãã«ã¹ã¿ã èªèšŒãããŒãªã©) ã¯ãAWS SDK ã§ IAM ããŒã¯ã³ãæåã§çæããããŒã¿ããŒã¹ãã¹ã¯ãŒããšããŠæž¡ããŸãã æ¥ç¶ã«ã¯æäœé sslmode=require ãå¿
èŠã§ããããŒã¯ã³ã¯ãåŒã³åºãå
ã® IAM ã¢ã€ãã³ãã£ãã£ããæŽŸçããç¹å®ã®ã¯ã©ã¹ã¿ãŒãã¹ãåã«ã¹ã³ãŒãããããæå¹æéä»ãã®èªèšŒæ
å ±ã§ãã SDK ããŒã¯ã³çæã¡ãœãã Python (boto3) generate_db_connect_admin_auth_token Java DsqlClient.generateDbConnectAdminAuthToken Node.js GenerateDbConnectAdminAuthTokenCommand Go dsql.GenerateDbConnectAdminAuthToken Ruby Aws::DSQL::Client#generate_db_connect_admin_auth_token .NET AmazonDSQLClient.GenerateDBConnectAdminAuthToken Rust dsql::Client::generate_db_connect_admin_auth_token çæããããŒã¯ã³ããæ¥ç¶ç¢ºç«æã«ããŒã¿ããŒã¹ãã¹ã¯ãŒããšããŠæž¡ããŸãã å®å
šãªã³ãŒãäŸã«ã€ããŠã¯ã Amazon Aurora DSQL ãŠãŒã¶ãŒã¬ã€ã ãš Amazon Aurora DSQL Code Samples ãåç
§ããŠãã ããã æ¥ç¶ããŒãªã³ã° é©åã«èšå®ãããæ¥ç¶ããŒãªã³ã°ã¯ãã¬ã€ãã³ã·ãŒãäœæžããAurora DSQL ã®æ¥ç¶ã¬ãŒãå¶éãžã®å°éãåé¿ããŸããæ¬ã»ã¯ã·ã§ã³ã§ã¯ãããŒã«ã®èšå®ããµã€ãžã³ã°ãèæ
®ãã¹ãäž»èŠãªå¶çŽã«ã€ããŠèª¬æããŸãã ã¯ã©ã€ã¢ã³ãåŽããŒãªã³ã°ãå¿
é Aurora DSQL ã«ã¯ãµãŒãã¹ã¬ã€ã€ãŒã§ã®çµã¿èŸŒã¿æ¥ç¶ããŒãªã³ã°ããããŸãããæ°ããæ¥ç¶ããšã« TLS ãã³ãã·ã§ã€ã¯ãšãµãŒãã¹ã«ããèªèšŒãå¿
èŠã§ããæ¥ç¶ãããŒã«ããã°ããã®ã³ã¹ãããªã¯ãšã¹ãããšã§ã¯ãªãäžåºŠã ãæ¯æãã°ãããªããŸãã PgBouncer ã pgpool-II ãªã©ã®ãµãŒããŒåŽã³ãã¯ã·ã§ã³ããŒã©ãŒã¯äœ¿çšããªãã§ãã ããã ãããã®ããŒã«ã¯åŸæ¥ã® PostgreSQL ã¢ãŒããã¯ãã£åãã«èšèšãããŠãããAmazon Aurora DSQL ã®åæ£æ¥ç¶åŠçã§å¯çšæ§ã®åé¡ãåŒãèµ·ããå¯èœæ§ããããŸãã ããŒã«èšå® æãéèŠãªãã©ã¡ãŒã¿ã¯ æå€§æ¥ç¶å¯¿åœ ã§ããAmazon Aurora DSQL ã¯æ¥ç¶æéã« 60 åã®ããŒããªããããé©çšããŸããããŒã«ã®æå€§ã©ã€ãã¿ã€ã ã 45ã55 åã«èšå®ããAurora DSQL ãæ¥ç¶ãåæããåã«ããã¢ã¯ãã£ãã«ãªãµã€ã¯ã«ããŠãã ããã Java ã§ HikariCP ã䜿çšããå Žåã¯ã maximumPoolSize ã maxLifetime (60 åæªæº) ãèšå®ããæåã®ããŒã¯ã³ç®¡çãé¿ããããã« JDBC Connector ã䜿çšããŸããHikariCP ã®å®å
šãªèšå®ã«ã€ããŠã¯ãå
¬åŒã¬ã€ãã Using Amazon Aurora DSQL with JDBC, Hibernate, and HikariCP ããåç
§ããŠãã ããã Python ã®å Žåã¯ãæåã§çæãã IAM ããŒã¯ã³ã䜿çšã㊠psycopg2 ã§æ¥ç¶ããã ( Amazon Aurora DSQL ãŠãŒã¶ãŒã¬ã€ã â Psycopg2 ã®äœ¿çš ãåç
§)ã Amazon Aurora DSQL Python Connector (GitHub) ã䜿çšããŠããŒã¯ã³ã®ãã€ã©ãŒãã¬ãŒããå®å
šã«æé€ã§ããŸãã æ¥ç¶å¶éãšã¯ã©ãŒã¿ æ¥ç¶ããŒã«ã®ãµã€ãžã³ã°ã決å®ããåã«ãAmazon Aurora DSQL ã®æ¥ç¶å¶éãçè§£ããŠããå¿
èŠããããŸããAmazon Aurora DSQL ã¯æ¥ç¶äœæã¬ãŒãã®å¶åŸ¡ã« ããŒã¯ã³ãã±ããã¢ã«ãŽãªãºã ã䜿çšããŠããŸããæ°ããæ¥ç¶ããšã«ããŒã¯ã³ã 1 ã€æ¶è²»ãããã±ããã¯äžå®ã¬ãŒãã§è£å
ãããŸãããã±ãã容éãäžéãšããŠããŒã¹ããå¯èœã§ãã ã¯ã©ã¹ã¿ãŒãããã®ããã©ã«ãå¶éã¯ä»¥äžã®ãšããã§ãã ã¯ã©ãŒã¿ ããã©ã«ãå€ åè æå€§ç¢ºç«æ¥ç¶æ° 10,000 ã¯ã©ã¹ã¿ãŒããšã®å¶éãService Quotas ã§èª¿æŽå¯èœ æ°èŠæ¥ç¶ã¬ãŒã (å®åžžç¶æ
) 100 æ¥ç¶/ç§ ããŒã¯ã³ãã±ããã®è£å
ã¬ãŒã ããŒã¹ã容é 1,000 æ¥ç¶ è£å
åã® t=0 æç¹ã§å©çšå¯èœãªããŒã¯ã³æ° æå€§æ¥ç¶æé 60 å ããŒããªãããã1 æéåŸã«æ¥ç¶åæ æå€§ãã©ã³ã¶ã¯ã·ã§ã³æé 5 å ãã©ã³ã¶ã¯ã·ã§ã³ããš (BEGIN ãã COMMIT ãŸã§) ããŒã¯ã³ãã±ããã®å®éã®åäœ: ã¢ããªã±ãŒã·ã§ã³èµ·åæã« 1,000 æ¥ç¶ãéããå Žåããã¹ãŠæåããŸã (ããŒã¹ãããŒã¯ã³ 1,000 å)ããã ãããã±ããã¯ç©ºã«ãªããŸãã1,001 çªç®ã®æ¥ç¶ã¯ããã±ããã 100 ããŒã¯ã³/ç§ã§è£å
ãããã®ãåŸ
ã€å¿
èŠããããŸããã¯ã©ã€ã¢ã³ãåŽããŒãªã³ã°ãéèŠãªçç±ã¯ããã«ãããŸããæ¥ç¶ãåå©çšããã°ãäœæããžã§ããã®æ¶è²»ãé¿ããããŸãã æ¥ç¶ã©ã€ããµã€ã¯ã« Aurora DSQL ã®æ¥ç¶ã«ã¯æå€§ã©ã€ãã¿ã€ã ãåºå®ãããŠãããæå¹æéä»ãããŒã¯ã³ã䜿çšãããããã¢ããªã±ãŒã·ã§ã³ã¯æ¥ç¶ã®ãªãµã€ã¯ã«ãšããŒã¯ã³ãªãã¬ãã·ã¥ãé©åã«åŠçããå¿
èŠããããŸãã 1 æéã®æ¥ç¶å¶é Amazon Aurora DSQL ã®ãã¹ãŠã®æ¥ç¶ã®æå€§ã©ã€ãã¿ã€ã 㯠60 åã§ãã1 æéåŸãæ¥ç¶ãã¢ã€ãã«ç¶æ
ã§ãã¢ã¯ãã£ãç¶æ
ã§ãããµãŒãã¹ãæ¥ç¶ãåæããŸããããã¯èšèšäžã®ä»æ§ã§ããAurora DSQL ã®åæ£ã¢ãŒããã¯ãã£ã§ã¯å
éšã³ã³ããŒãã³ããããã¯ã°ã©ãŠã³ãã§é害埩æ§ã亀æãããããã1 æéã®å¶éã«ããã¢ããªã±ãŒã·ã§ã³ã宿çã«æ°ããæ¥ç¶ã確ç«ããæ£åžžãªã€ã³ãã©ã«èªç¶ã«æ¥ç¶ãããããã«ãªã£ãŠããŸããAurora DSQL ã¯åæã«ãžãã¿ãŒãé©çšãããããæ¥ç¶ãåæã«åæãããããšã¯ãªãããã©ã³ã¶ã¯ã·ã§ã³äžã®æ¥ç¶ã¯åæãããŸããã ããŒã¯ã³ã®æå¹æé管ç ããŒã¯ã³ã¯ããã©ã«ãã§ 15 ååŸã«æéåãã«ãªããŸã (æå€§ 1 é±éãŸã§èšå®å¯èœ)ãéèŠãªãã€ã³ã: æå¹ãªããŒã¯ã³ã§æ¥ç¶ã確ç«ãããåŸã¯ãããŒã¯ã³ãæéåãã«ãªã£ãŠãæ¥ç¶ã¯æå¹ãªãŸãŸã§ããæ°ããããŒã¯ã³ãå¿
èŠãªã®ã¯æ°ããæ¥ç¶ã確ç«ãããšãã ãã§ããã60 åã®æ¥ç¶å¶éããã€ã³ãã£ã³ã°å¶çŽãšãªããŸããããŒã¯ã³ã®æå¹æéã¯å¶çŽã«ãªããŸããã ããŒã¯ã³ã¯ãªãŒãžã§ã³ã¹ã³ãŒãã§ããããŸãã region=us-east-1 ã§çæãããããŒã¯ã³ã¯ us-east-1 ãšã³ããã€ã³ããžã®æ¥ç¶ã«ã®ã¿æå¹ã§ãåããã«ããªãŒãžã§ã³ã¯ã©ã¹ã¿ãŒã® us-east-2 ãšã³ããã€ã³ãã«ã¯äœ¿çšã§ããŸããããã«ããªãŒãžã§ã³ãããã€ã§ã¯ãã¢ããªã±ãŒã·ã§ã³ãæ¥ç¶ããåãªãŒãžã§ã³ãšã³ããã€ã³ãã«å¯ŸããŠåå¥ã®ããŒã¯ã³ãçæããŠãã ããã æšå¥šã¢ãããŒã: Amazon Aurora DSQL ã³ãã¯ã¿ãŒ ã䜿çšããŠãã ãããæ°ããæ¥ç¶ããšã«èªåçã«ããŒã¯ã³ãçæãããããããŒã¯ã³ç®¡çã³ãŒããäžèŠã§ãã æ¥ç¶ãªãã©ã€ããžãã¯ åæ£ã·ã¹ãã ã§ã¯äžæçãªæ¥ç¶é害ã¯äŸå€ã§ã¯ãªãéåžžã®åäœã§ããå
éšã³ã³ããŒãã³ãã«é害ãçºçããå ŽåãAurora DSQL ãèªåçã«åŠçããŸãããã¢ããªã±ãŒã·ã§ã³åŽã§ã¯ãã®æ¥ç¶ã«å¯Ÿãããšã©ãŒãçºçããŸãã SerializationFailure (OCC ã³ã³ããªã¯ã) ãš OperationalError (äžæçãªé害) ã®äž¡æ¹ã«å¯ŸããŠããšã¯ã¹ããã³ã·ã£ã«ããã¯ãªããšãžãã¿ãŒã䌎ããªãã©ã€ããžãã¯ãå®è£
ããŠãã ãããæšå¥šãã¿ãŒã³ã«ã€ããŠã¯ãAmazon Aurora DSQL ã®åæå®è¡å¶åŸ¡ããã¥ã¡ã³ããš AWS Buildersâ Library â ã¿ã€ã ã¢ãŠãããªãã©ã€ããžãã¿ãŒä»ãããã¯ãªã ãåç
§ããŠãã ããã ãã«ããªãŒãžã§ã³æ¥ç¶ãã¿ãŒã³ å°ççãªãŒãžã§ã³ããŸããã é«å¯çšæ§ãå¿
èŠãªã¢ããªã±ãŒã·ã§ã³åãã«ãAmazon Aurora DSQL ãã«ããªãŒãžã§ã³ã¯ã©ã¹ã¿ãŒã¯ãªãŒãžã§ã³ãšã³ããã€ã³ãã§èªã¿æžãäž¡æ¹ããµããŒãããã¢ã¯ãã£ã-ã¢ã¯ãã£ãã¢ãŒããã¯ãã£ãæäŸããŸãã ã¢ã¯ãã£ã-ã¢ã¯ãã£ã ãã«ããªãŒãžã§ã³ã¢ãŒããã¯ã㣠Amazon Aurora DSQL ãã«ããªãŒãžã§ã³ã¯ã©ã¹ã¿ãŒã¯ãã¢ã¯ãã£ã-ã¢ã¯ãã£ãã¢ã¯ã»ã¹ã®ããã®ãªãŒãžã§ã³ãšã³ããã€ã³ããæäŸããŸããã¢ããªã±ãŒã·ã§ã³ã¯ã©ã¡ãã®ãšã³ããã€ã³ãã«ãæ¥ç¶ããŠèªã¿æžããå¯èœã§ãå°ççãªåæ£ãšãªãŒãžã§ã³ãã§ã€ã«ãªãŒããŒãå®çŸããŸãã ãšã³ããã€ã³ãéžææŠç¥ ã¬ã€ãã³ã·ãŒã®ããã«æå¯ãã®ãªãŒãžã§ã³ãšã³ããã€ã³ãã«æ¥ç¶ãããã©ã€ããªãªãŒãžã§ã³ã«åé¡ãããå Žåã¯ã»ã«ã³ããªãšã³ããã€ã³ããžã®ãã«ã¹ããŒã¹ã®ãã§ã€ã«ãªãŒããŒãå®è£
ããŸãã ãã§ã€ã«ãªãŒããŒããžãã¯ã¯äºåã«ãã¹ãããŠãããŠãã ããã äžè¬çãªæ¥ç¶åé¡ã®ãã©ãã«ã·ã¥ãŒãã£ã³ã° æ¬ã»ã¯ã·ã§ã³ã§ã¯ãAurora DSQL ã«æ¥ç¶ããéã«çºçãããããšã©ãŒãæ¥ç¶é害ãšããã®åå ããã³æšå¥šãããå¯ŸåŠæ¹æ³ã«ã€ããŠèª¬æããŸããèªèšŒå€±æãã¿ã€ã ã¢ãŠããšã©ãŒããã©ã€ããŒã®äºææ§ã®åé¡ã®ãããã®å Žåãã以äžã®ã¬ã€ãã³ã¹ã§åé¡ãè¿
éã«èšºæã»è§£æ±ºã§ããŸãã åé¡ 1: âConnection Attempt Failedâ çç¶: Amazon Aurora DSQL ãšã³ããã€ã³ããžã®æ¥ç¶ã確ç«ã§ããªã äžè¬çãªåå : IAM æš©éã®äžåãèªèšŒããŒã¯ã³ã®æéåãããããã¯ãŒã¯æ¥ç¶ã®åé¡ããšã³ããã€ã³ã圢åŒã®èª€ã è§£æ±ºæ¹æ³: æ¥ç¶å€±æã解決ããã«ã¯ã以äžã®æé ãé ã«å®è¡ããŠãã ããããŸããIAM ãŠãŒã¶ãŒãŸãã¯ããŒã«ã®ããªã·ãŒã«é©å㪠dsql:DbConnect ãŸã㯠dsql:DbConnectAdmin æš©éãã¢ã¿ãããããŠããããšã確èªããŸããæ¬¡ã«ãèªèšŒããŒã¯ã³ãæéåãã§ãªãããšã確èªããŸããããŒã¯ã³ã¯çåœã§ãããæ°ããæ¥ç¶è©Šè¡ã®ãã³ã«åçæãå¿
èŠã§ããã¯ã©ã¹ã¿ãŒãšã³ããã€ã³ãã®åœ¢åŒãæ£ããããšãããŒã 5432 ãžã®ã¢ãŠãããŠã³ããã©ãã£ãã¯ããããã¯ãããããã¯ãŒã¯ã¬ãã«ã®å¶é (ã»ãã¥ãªãã£ã°ã«ãŒããVPC ã«ãŒãã£ã³ã°ã«ãŒã«ããã¡ã€ã¢ãŠã©ãŒã«ããªã·ãŒãªã©) ããªãããšã確èªããŠãã ããã以äžã®äŸã¯ãæ°ããããŒã¯ã³ãçæããŠæç€ºçãªãšã©ãŒãã³ããªã³ã°ã§æ¥ç¶ã詊ã¿ãããšã§ãæ ¹æ¬åå ãç¹å®ããããããæ¹æ³ã瀺ããŠããŸãã # Verify IAM permissions aws iam get-user # Test token generation aws dsql generate-db-connect-admin-auth-token \ --region us-east-1 \ --hostname <cluster-id>.dsql.us-east-1.on.aws # Test network connectivity nc -zv <cluster-id>.dsql.us-east-1.on.aws 5432 åé¡ 2: âAccess Deniedâ ãšã©ãŒ çç¶: æ¥ç¶ã¯ç¢ºç«ããããèªèšŒã«å€±æãã è§£æ±ºæ¹æ³: IAM ããªã·ãŒã« dsql:DbConnect ãŸã㯠dsql:DbConnectAdmin ãå«ãŸããŠããããšã確èªããŸãã IAM ããªã·ãŒã®ã¢ã¯ã»ã¹å¶éæ¡ä»¶ (aws:SourceIpãaws:RequestedRegionãaws:PrincipalTag ãªã©) ã確èªããŸããåºæ¬æš©éãä»äžãããŠããŠããæ¡ä»¶ã«ãã£ãŠæ¥ç¶ããµã€ã¬ã³ãã«æåŠãããå ŽåããããŸãã ããŒã¯ã³ãæ£ãããªãŒãžã§ã³ã§çæãããŠããããšã確èªããŸãã AWS èªèšŒæ
å ±ãæéåãã§ãªãããšã確èªããŸãã åé¡ 3: PrivateLink æ¥ç¶ã®åé¡ VPC ã®å€éšãã PrivateLink çµç±ã§æ¥ç¶ããå Žåãã¯ã©ã€ã¢ã³ãã¯ã¯ã©ã¹ã¿ãŒãšã³ããã€ã³ãã VPC ãšã³ããã€ã³ã IP ã«è§£æ±ºããå¿
èŠããããŸãã2 ã€ã®ã¢ãããŒãããããŸãã ãªãã·ã§ã³ 1: PGHOSTADDR ã§ IP ã¢ãã¬ã¹ããªãŒããŒã©ã€ã export PGHOSTADDR=<vpce-ip-address> export HOSTNAME=<cluster-id>.dsql.<region>.on.aws psql -h $HOSTNAME -U admin -d postgres SNI ã«æ£ãããã¹ãåã䜿çšããªãã VPC ãšã³ããã€ã³ã IP ã«æ¥ç¶ããŸãã ãªãã·ã§ã³ 2: amzn-cluster-id æ¥ç¶ãªãã·ã§ã³ãäœ¿çš (DNS äžèŠ) export CLUSTERID=<cluster-id> export PGOPTIONS="-c amzn-cluster-id=$CLUSTERID" psql -h <vpce-endpoint> -U admin -d postgres ã¯ã©ã¹ã¿ãŒèå¥åãæ¥ç¶ãªãã·ã§ã³ãšããŠçŽæ¥æž¡ããDNS 解決ãäžèŠã«ããŸããVPC ãšã³ããã€ã³ãã®ãã©ã€ããŒã DNS ãèšå®ãããŠããªãå Žåã«äŸ¿å©ã§ãã 詳现ã«ã€ããŠã¯ã PrivateLink æ¥ç¶ãšã³ããã€ã³ãã䜿çšãã Amazon Aurora DSQL ãžã®æ¥ç¶ ãåç
§ããŠãã ããã åé¡ 4: æ¥ç¶ããŒã«ã®ãã«ã¹ãã§ãã¯ã¹ããŒã çç¶: è² è·ã¹ãã€ã¯æã®å€§éã®æ¥ç¶åæãšå確ç«ãã«ã¹ã±ãŒãçãªãã«ã¹ãã§ãã¯å€±æãæ¥ç¶ã¬ãŒãå¶éãšã©ãŒ åå : çããã«ã¹ãã§ãã¯éé (HikariCP ã®ããã©ã«ã 5 ç§ã¿ã€ã ã¢ãŠããªã©) ã«ãããæ°åã®ããŒã«æ¥ç¶ã«å¯ŸããŠåæã«ãã«ã¹ãã§ãã¯ãããªã¬ãŒãããå ŽåããããŸãã倿°ã®ãã§ãã¯ãåæã«å€±æãããšãããŒã«ããã¹ãŠã®æ¥ç¶ã®å確ç«ã詊ã¿ã100 æ¥ç¶/ç§ã®ã¬ãŒãå¶éã䜿ãæãããŠé害ãã«ã¹ã±ãŒãããŸãã è§£æ±ºæ¹æ³: ãã¹ãŠã®æ¥ç¶ã«åºå®ééã䜿çšããã®ã§ã¯ãªããæ¥ç¶éã§ãã«ã¹ãã§ãã¯ééãããããŸãã äžèŠãªæ¥ç¶ãªãµã€ã¯ã«ãé¿ãããããã¢ã€ãã«ã¿ã€ã ã¢ãŠããå¢ãããŸãã HikariCP ã®å Žåã connectionTimeout ãš validationTimeout ãããã©ã«ãããé·ãèšå®ããŸãã maxLifetime ã«ååãªãžãã¿ãŒãèšå®ããŸã (HikariCP ã¯èªåç㫠±2.5% ãé©çš)ãåæããæ¥ç¶æéåããåé¿ã§ããŸãã ãŸãšã æ¬èšäºã§ã¯ãJDBC ã PostgreSQL äºæã¯ã©ã€ã¢ã³ããAWS CLI ãªã©ãããŸããŸãªãã©ã€ããŒãããŒã«ã䜿çšã㊠Amazon Aurora DSQL ã«æ¥ç¶ããæ¹æ³ã玹ä»ããŸãããæ¥ç¶ã¢ãŒããã¯ãã£ãIAM ããŒã¹ã®èªèšŒããŒã¯ã³ã®çæãšäœ¿ç𿹿³ãèªèšŒæ
å ±ç®¡çãšæ¥ç¶ããŒãªã³ã°ã®ãã¹ããã©ã¯ãã£ã¹ã«ã€ããŠè§£èª¬ããŸãããã¯ã€ãã¯ã¹ã¿ãŒãäŸãšãäžè¬çãªæ¥ç¶åé¡ã®èšºæã»è§£æ±ºã«åœ¹ç«ã€ãã©ãã«ã·ã¥ãŒãã£ã³ã°ã¬ã€ããæäŸããŸããã å®éã«è©ŠããŠã¿ããã§ãã? ãã¬ã€ã°ã©ãŠã³ã ã§ã»ããã¢ãããªãã« Aurora DSQL ãäœéšã§ããŸã ãæ¥ç¶ã®æäœãã¯ãšãªã®å®è¡ãæ¬èšäºã§ç޹ä»ããæ©èœã®ç¢ºèªãå®éã«è¡ããŸãã èè
ã«ã€ã㊠Alex Pawvathil Alex ã¯ãAWS ã®ã·ãã¢ãã¯ãã«ã«ã¢ã«ãŠã³ããããŒãžã£ãŒã§ãããŒã¿ããŒã¹ã¢ãŒããã¯ãã£ãšãšã³ã¿ãŒãã©ã€ãºèŠæš¡ã®å®è£
ãå°éãšããŠããŸããã¯ã©ãŠãã¢ãŒããã¯ãã£ãããŒã¿ããŒã¹æŠç¥ããšã³ã¿ãŒãã©ã€ãºã¢ããã€ã¶ãªãŒã§ 14 幎以äžã®å®åçµéšããããAmazon RDS for SQL Server ã®å®è£
ãšãšã³ã¿ãŒãã©ã€ãºèŠæš¡ã®ãããã€ã¡ã³ãã®å°éå®¶ã§ãã Sandhya Khanderia Sandhya ã¯ãAWS ã®ã·ãã¢ãã¯ãã«ã«ã¢ã«ãŠã³ããããŒãžã£ãŒå
ŒããŒã¿ã¢ããªãã£ã¯ã¹ã¹ãã·ã£ãªã¹ãã§ããAWS ã®ã客æ§ãšå¯æ¥ã«é£æºããç¶ç¶çãªãµããŒããšæè¡ã¬ã€ãã³ã¹ãæäŸããŠããŸãããã¹ããã©ã¯ãã£ã¹ã掻çšãããœãªã¥ãŒã·ã§ã³ã®èšç»ã»æ§ç¯ãæ¯æŽããªãããAWS ç°å¢ã®éçšç¶æ
ãããã¢ã¯ãã£ãã«å¥å
šã«ä¿ã€ããšã«åãçµãã§ããŸãã Rob Petersen Rob ã¯ãAWS ã®ã·ãã¢ãã¯ãã«ã«ã¢ã«ãŠã³ããããŒãžã£ãŒã§ãIT æ¥çã§ã® 20 幎ã®çµéšã掻ãããã客æ§ã®ã¯ã©ãŠãå°å
¥ãžã£ãŒããŒãæ¯æŽããŠããŸããå€§èŠæš¡ãªã¯ã©ãŠããã€ã°ã¬ãŒã·ã§ã³ã®ãªãŒããšãã€ããªããã€ã³ãã©ã¹ãã©ã¯ãã£ã®éçšç®¡çã®äž¡æ¹ã®çµéšããããã¯ã©ãŠãå°å
¥æã«çµç¹ãçŽé¢ãã課é¡ãšæ©äŒã«ã€ããŠç¬èªã®èŠç¹ãæã£ãŠããŸãã ãã®èšäºã¯ Kiro ã翻蚳ãæ
åœããSolutions Architect ã® Arisa Izuno ãã¬ãã¥ãŒããŸããã













