
- TOP
- ã¿ã°äžèЧ
- Python
Python
Pythonã¯æç¢ºã§èªã¿ãããæ§æãæã£ãŠãããããããã°ã©ãã³ã°åå¿è ã«ãããããã®èšèªã§ãããŸãå€ãã®ã³ãã¥ããã£ãããããããããã©ã€ãã©ãªéçºããã¬ãŒã ã¯ãŒã¯éçºã«è²¢ç®ããŠããŸãã
ã€ãã³ã
ãã¬ãžã³
æè¡ããã°
ãã®èšäºã§ãããããš MCPãµãŒããŒã¯PythonãTypeScriptã ãã§ãªããSpring AIã䜿ãã°Java(Spring Boot)ã§ãæ§ç¯ã§ãã MCPãµãŒããŒæ©èœã¯ãSpring AIã®å
¬åŒã¹ã¿ãŒã¿ãŒã䜿ãã°ç°¡åã«æ¢åã®Spring Bootã¢ããªã«çµã¿èŸŒãã(ãµãŒããŒèšå®ã¯application.ymlã®ã¿) æ¢åã¢ããªãSpring Securityã®OAuth2 Resource Serverã§èªèšŒããŠããã°ãMCPã®èªå¯ã«å¿
èŠãªã¡ã¿ããŒã¿å
¬é(RFC 9728)ãå«ããŠSpring Securityã®æšæºæ©èœã§å¯Ÿå¿ã§ãã AIãšãŒãžã§ã³ããCMDBã®æ§ææ
å ±ãèªåã§åç
§ã§ããããã«ãªããšãAtlassian MCPãªã©ä»ã®MCPãšãçµã¿åããã£ãŠãè匱æ§å¯Ÿå¿ãEOL察å¿ãšãã£ãæ¥åããšãŒãžã§ã³ããšã®1ã€ã®äŒè©±ã§å®çµãã ã¯ããã« ããã«ã¡ã¯ãKINTOãã¯ãããžãŒãº(以äžãKTC) ãã©ãããã©ãŒã ã°ã«ãŒã Platform EngineeringããŒã ã®å±±ç°ã§ããæ®æ®µã¯ç€Ÿå
åãã®CMDBãå
補éçºããŠããŠãããæè¿ã¯CMDBãšçæAIãçµã¿åãããåãçµã¿ãç¶ããŠããŸãã CMDBãã®ãã®ãSpring AIã«ã€ããŠã¯éå»ã®èšäºã§ç޹ä»ããŠããã®ã§ãããããŠã芧ãã ããïŒ(CMDBã®èšäºã¯å°ãå€ãã§ãããé°å²æ°ã¯äŒããããšæããŸã) https://blog.kinto-technologies.com/posts/2023-12-14-CMDB/ https://blog.kinto-technologies.com/posts/2025-06-11-springAI/ ä»åã¯ãã®ç¶ããšããŠãCMDBæ¬äœ(Spring Boot補)ã«MCPãµãŒããŒæ©èœã远å ããAIãšãŒãžã§ã³ããã瀟å
ã®æ§ææ
å ±ãçŽæ¥æ€çŽ¢ã§ããããã«ããŸããã èæ¯ Claude Codeãªã©ã®AIãšãŒãžã§ã³ãã ãã§æ¥åãé²ããå Žé¢ãããã®1幎ã§äžæ°ã«å¢ããŠããŠãããšæããŸãã瀟å
ã§ãåçš®MCPãµãŒããŒãã¹ãã«ãªã©ã®æŽåãé²ã¿ã調æ»ã»å®è£
ã»ããã¥ã¡ã³ãäœæã®å€ãããšãŒãžã§ã³ãã«ä»»ããããããã«ãªã£ãŠããŸãã äžæ¹ã§ãå°ã£ãŠããã®ããä»åã®äž»åœ¹ã§ããCMDB (Configuration Management Database: æ§æç®¡çããŒã¿ããŒã¹) ã®ããŒã¿ã§ããCMDBã¯ããããã¯ãã»ããŒã ã»GitHubãªããžããªã»è匱æ§ã»SBOMãšãã£ã瀟å
ã®æ§ææ
å ±ãäžå
管çããããŒã¿ããŒã¹ã§ãKTCã§ã¯å
補éçºããŠããŸã(詳ããã¯åé ã®éå»èšäºãã芧ãã ãã)ããã£ããæ§ææ
å ±ãéçŽããŠããã®ã«ããããŸã§ã®åç
§ææ®µã¯Webã¢ããªã ãã§ããããã®ããããšãŒãžã§ã³ãã§äœæ¥ãããŠããŠCMDBã®ããŒã¿ãå¿
èŠã«ãªããã³ã«ã以äžã®äœæ¥ãçºçããŠããŸããã CMDBã®Webã¢ããªãéããŠããŒã¯ãŒãæ€çŽ¢ãã æ€çŽ¢çµæã®ããã¹ããã³ããŒããŠããšãŒãžã§ã³ãã®ããã³ããã«è²Œãä»ãã ãã®éããšãŒãžã§ã³ãã®äœæ¥ã¯æ¢ãŸãã人ãWebã¢ããªãšãšãŒãžã§ã³ãã®éã§ããŒã¿ãåãæž¡ãã ãã®äœæ¥ã«æéãåãããŸãããã£ããæ§ææ
å ±ãäžå
åããã®ã«ãAIãšãŒãžã§ã³ãããã¯åç
§ã§ããªãç¶æ
ã§ããã ãã®æäœæ¥ã§ã®åãæž¡ãããªãããããCMDBãMCPãµãŒããŒåããããšã«ããŸããã CMDBã®MCPãµãŒããŒã§äœãã§ããããã«ãªã£ãã å
ã«ãã§ããããã«ãªã£ãããšã®ç޹ä»ã§ãã ããšãã°ãããã©ã€ãã©ãªã«è匱æ§ãèŠã€ãã£ããšããŸããSBOMã»GitHubãªããžããªã»ãããã¯ãã»ããŒã ã»ãŠãŒã¶ãŒãªã©ã管çããCMDBã®MCPãµãŒããŒãã§ããããšã§ãããããè匱æ§å¯Ÿå¿ãAIãšãŒãžã§ã³ããšã®1ã€ã®äŒè©±ã®äžã§å®çµã§ããããã«ãªããŸãããå
·äœçã«ã¯ãSBOMæ
å ±ããè匱æ§ã®ããããŒãžã§ã³ã®ã©ã€ãã©ãªã䜿ã£ãŠããGitHubãªããžããªãæŽãåºãããªããžããªã«çŽã¥ããããã¯ããšç®¡çããŒã ã»æ
åœè
ãç¹å®ããæ
åœè
åãã®Jiraãã±ããã®èµ·ç¥šãããã«ã¯è匱æ§ãè§£æ¶ããPRã®äœæãŸã§é²ããããŸãã â ãâ¢ãšâ€ãCMDBã®MCPããŒã«ãâ£ã¯Atlassian MCPãâ¥ã¯ãšãŒãžã§ã³ãèªèº«ã®ã³ãŒãã£ã³ã°æ©èœã§ãã ãã€ã³ãã¯ãCMDBã®MCPãµãŒããŒåäœã§å®çµããã®ã§ã¯ãªããä»ã®MCPããšãŒãžã§ã³ãã®æ©èœãšçµã¿åãããããšã§æ¥åãäžæ°é貫ã«ãªãããšã§ããAIãšãŒãžã§ã³ãã¯ãåç
§ã§ããã³ã³ããã¹ããå¢ããã»ã©ã察å¿ã§ããæ¥åã®å¹
ãåºãããŸããCMDBã«ã¯ãšãŒãžã§ã³ããæã£ãŠããªã瀟å
ã®æ§ææ
å ±ãéãŸã£ãŠããŸãããããŸã§äººãéœåºŠè£ã£ãŠãããããã®æ
å ±ãMCPã§æäŸããããšã§ããšãŒãžã§ã³ãã«ä»»ããããç¯å²ãã®ãã®ãåºããããšãã§ããŸããã è匱æ§å¯Ÿå¿ã®ä»ã«ããããšãã°EOL(ãµããŒãæé)察å¿ã«ãåãèŠé ã§äœ¿ããŸããæéåããè¿ãã³ã³ããŒãã³ããšããã䜿ã£ãŠãããããã¯ããCMDBã®MCPããŒã«ã§æŽãåºããæ
åœããŒã ã®ç¹å®ããJiraãã±ããã®èµ·ç¥šãŸã§ãããã®ãŸãŸ1ã€ã®äŒè©±ã§é²ããããŸãã MCPãµãŒããŒã®å®è£
ã«Spring AIãéžãã çç± MCPãµãŒããŒã®æ§ç¯ãšãããšãPythonãTypeScriptã®ã€ã¡ãŒãžã匷ãããšæããŸããå
¬åŒSDKã®å
å®åºŠãFastMCPã®ãããªãã¬ãŒã ã¯ãŒã¯ã®ååšããããå®è£
èšäºããã®2ã€ã«åã£ãŠããå°è±¡ã§ãã ãã ãä»åMCPãµãŒããŒåããã察象ã¯ãSpring Bootã§å®è£
æžã¿ã®æ¢åã¢ããªã§ãããå¥ããã»ã¹ã§PythonãTypeScriptã®MCPãµãŒããŒãç«ãŠãŠAPIãäžç¶ãããæ§æãèããããŸãããSpring AIã䜿ã£ãŠæ¢åã¢ããªã«MCPãµãŒããŒæ©èœãçµã¿èŸŒãã°ã以äžã®è³ç£ããã®ãŸãŸäœ¿ãåããŸãã REST APIã®ããã«å®è£
ããŠããããžãã¹ããžãã¯(serviceå±€) Spring Securityã䜿ã£ãèªèšŒèªå¯ã®ä»çµã¿ ECSãžã®ãããã€ãç£èŠãªã©ã®éçšã®ä»çµã¿ å¯äžã®äžå®ã¯ãEntra IDã䜿ã£ãæ¢åã®èªèšŒèªå¯ããAIãšãŒãžã§ã³ãçžæã§ãåãããã«äœ¿ããã®ããã§ãããMCPã®èªå¯ä»æ§ã¯OAuth 2.1ããŒã¹ã§æ¯èŒçæ°ãããæ€èšŒãããŸã§ã¯æ£çŽææ¢ãã§ããããçµè«ããèšããšSpring Securityã®æšæºæ©èœã§å¯Ÿå¿ã§ããŸãã(詳现ã¯å®è£
ã®ç¯ã§ã話ãããŸã)ã ããSpring Bootã§ã¢ããªã±ãŒã·ã§ã³ãéçºã»éçšããŠããããŒã ã§ããã°ãMCPãµãŒããŒã®æ§ç¯ã«Spring AIãéžã¶ã¡ãªããã¯å€§ãããšæããŸãã æè¡ã¹ã¿ã㯠Java 21 Spring Boot 4.0 Spring AI 2.0 (spring-ai-starter-mcp-server-webmvc) Spring Security (OAuth2 Resource Server) Microsoft Entra ID (èªå¯ãµãŒããŒ) AWS (CloudFront + ALB + ECS ãªã©) ã·ã¹ãã æ§æ æ¢åã®CMDBããã¯ãšã³ã(Spring Boot)ã«ãMCPãšã³ããã€ã³ã /mcp ã远å ããæ§æã§ããMCPãµãŒããŒã®ããã«æ°ãã远å ããã€ã³ãã©ã¯ãããŸããããªããå³ã¯MCPãµãŒããŒã«é¢ä¿ããéšåã«çµã£ãŠãããããã³ããšã³ãã®é
ä¿¡çµè·¯ãªã©ã¯çç¥ããŠããŸãã å®è£
ããããã¯å®è£
å
容ã玹ä»ããŸãããªããèšäºäžã®ã³ãŒãã¯äžéšãçç¥ã»ç·šéããŠããŸãã äŸåé¢ä¿ã®èšå® build.gradleã«Spring AIã®BOMãšMCPãµãŒããŒçšã¹ã¿ãŒã¿ãŒã远å ããŸãã远å ããäŸåé¢ä¿ã¯ããã ãã§ãã ext { set('springAiVersion', "2.0.0") } dependencies { implementation 'org.springframework.ai:spring-ai-starter-mcp-server-webmvc' } dependencyManagement { imports { mavenBom "org.springframework.ai:spring-ai-bom:${springAiVersion}" } } ãµãŒããŒèšå®ã¯application.ymlã®ã¿ MCPãµãŒããŒãšããŠã®èšå®ã¯application.ymlã«æžãã ãã§ãJavaã®èšå®ã¯ã©ã¹ã¯1ã€ãäœã£ãŠããŸãããããããŠãJWTæ€èšŒ(OAuth2 Resource Server)ã®èšå®ãæç²ããŸãã spring: security: oauth2: resourceserver: jwt: issuer-uri: https://login.microsoftonline.com/${TENANT_ID}/v2.0 ai: mcp: server: name: cmdb-mcp version: 0.0.1 instructions: >- CMDB 㯠KINTO Technologies (ç¥: KTC) 瀟å
ã®æ§æç®¡çããŒã¿ããŒã¹ã®ããšã ãããã¯ãã»ããŒã ã»ãªããžããªã»è匱æ§ãªã©ã®ç€Ÿå
æ§ææ
å ±ãæ€çŽ¢ã§ããã protocol: STATELESS type: SYNC stateless: mcp-endpoint: /mcp annotation-scanner: enabled: true èšå®ã®ãã€ã³ãã2ã€ç޹ä»ããŸãã 1ã€ç®ã¯ instructions ã§ããããã«æžããæç« ã¯MCPã®åæåæã«äžåºŠã ããšãŒãžã§ã³ããžæž¡ãããŸãããCMDBãšã¯äœããã®ãããªåæç¥èãããã«çœ®ããŠãããšãåããŒã«ã®descriptionã§åã説æãç¹°ãè¿ããã«æžã¿ãããŒã«å®çŸ©ã®ããŒã¯ã³ãç¯çŽã§ããŸãã 2ã€ç®ã¯ annotation-scanner ã§ãããããæå¹ã«ãããšãåŸè¿°ãã @McpTool ã®ä»ããã¡ãœãããèªåã§ããŒã«ãšããŠç»é²ããããããããŒã«ç»é²çšã®Beanå®çŸ©ãäžèŠã«ãªããŸãã @McpToolã§ããŒã«ã®å®è£
ããŒã«ã¯ @McpTool ãä»ããã¡ãœãããšããŠå®è£
ããŸãããããã¯ãæ€çŽ¢ããŒã«ãäŸã«ãå®è£
ã®å
šäœåã玹ä»ããŸãã @Component public class ProductMcpTools { private final ProductService productService; public ProductMcpTools(ProductService productService) { this.productService = productService; } @McpTool( name = "searchProducts", description = """ ãããã¯ããæ€çŽ¢ããŸããäžèЧã»çµã蟌ã¿ã»è©³çްååŸã¯ãã¹ãŠãã®ããŒã«\ (productId æå®ã§1ä»¶ã®è©³çŽ°ãæªæå®ã§äžèЧ)ã""", annotations = @McpTool.McpAnnotations( readOnlyHint = true, destructiveHint = false, idempotentHint = true, openWorldHint = false)) public ProductSearchMcpResult searchProducts( @McpToolParam(description = "ãããã¯ãIDãæå®ãããš1ä»¶ã®è©³çްãè¿ããäžèŠ§çµæã® productId ãæž¡ã", required = false) Integer productId, @McpToolParam(description = "ãããã¯ãã®æå±éšçœ²(ã°ã«ãŒãID)ã§çµã蟌ã¿", required = false) String groupId, @McpToolParam(description = "true ã§å逿žã¿ãããã¯ããæ€çŽ¢ãå逿žã¿ã¯ãã®æå®æã®ã¿ååŸå¯(æ¢å®: false)", required = false) Boolean deleteFlag) { SearchProductServiceParameter parameter = new SearchProductServiceParameter(); parameter.setProductId(productId); parameter.setGroupId(groupId); parameter.setDeleteFlag(Boolean.TRUE.equals(deleteFlag)); // æ¢åã®REST APIçšserviceããã®ãŸãŸåŒã³åºã SearchProductServiceResult result = productService.searchProduct(parameter); return productId != null ? ProductSearchMcpResult.ofDetail(result) : ProductSearchMcpResult.ofList(result); } } ãã®ã¯ã©ã¹ã®åœ¹å²ã¯Controllerãšåãã§ããåŒæ°ãçµã¿ç«ãŠãŠæ¢åã®serviceãåŒã³ãçµæããšãŒãžã§ã³ãåãã«æŽåœ¢ããã ãã§ãããžãã¹ããžãã¯ã¯çœ®ããŸãããæ€çŽ¢ããžãã¯æ¬äœã¯ãREST APIã®ããã«å®è£
æžã¿ã® ProductService ããã®ãŸãŸåŒãã§ããŸãã ããã ãã§MCPãµãŒããŒã®ããŒã«ãå®è£
ã§ããŠããŸããŸãã ä»åå®è£
ããæ€çŽ¢ããŒã«12åã®ã»ãšãã©ã¯ãæ¢åã®serviceå±€ã倿Žããããšãªãåå©çšã§ããŸãããREST APIã®ããã«å®è£
ããŠããserviceå±€ããMCPããŒã«ãããã®ãŸãŸåå©çšã§ããã®ããæ¢åã¢ããªã«çµã¿èŸŒãæ§æã®ãã¡ã°ãã®ã¡ãªããã ãšæããŸãã ããŒã« æŠèŠ searchProducts ãããã¯ãã®äžèЧã»è©³çްæ€çŽ¢ searchGroups éšçœ²(ã°ã«ãŒã)ã®äžèЧååŸ searchTeams ããŒã ãšã¡ã³ããŒã®æ€çŽ¢ searchUsers ãŠãŒã¶ãŒã®æ€çŽ¢ searchDomains ãã¡ã€ã³ã®æ€çŽ¢ searchGithubRepositories GitHubãªããžããªã®æ€çŽ¢ searchVulnerabilitySummaries è匱æ§ãµããªã®æšªææ€çŽ¢ searchVulnerabilityDetails è匱æ§è©³çŽ°ã®æ€çŽ¢ searchSbom SBOM(ãœãããŠã§ã¢éšå衚)ã®æ€çŽ¢ searchEol EOL(ãµããŒãæé)ã®æ€çŽ¢ searchArn AWSãªãœãŒã¹(ARN)ã®æ€çŽ¢ searchSchedules éçºç°å¢ã®ã³ã¹ãåæžãç®çãšãããAWSãªãœãŒã¹èµ·å忢ã¹ã±ãžã¥ãŒã«ã®æ€çŽ¢ å®è£
ã«ããã£ãŠã3ç¹è£è¶³ããŸãã 1ã€ç®ã¯ããŒã«ãã³ã(annotations)ã§ããMCPã®ä»æ§ã§ã¯ããã³ããæªæå®ã®ããŒã«ã¯ readOnlyHint=false ã» destructiveHint=true ãã€ãŸããç Žå£çãªæäœããããããããªãããŒã«ããšããããã©ã«ãã§æ±ãããŸãããšãŒãžã§ã³ããæ€çŽ¢ããŒã«ã®å©çšããããããªããããèªã¿åãå°çšã§ããããšããã³ãã§æç€ºããŠããŸãã 2ã€ç®ã¯åŒæ°ã®åœ¢ã§ããåŒæ°ã¯1ã€ã®ãªããžã§ã¯ãã«ãŸãšããããã©ããã«äžŠã¹ãŠããŸããSpring AIã¯ã¡ãœããã®åŒæ°ãããããinputSchemaã®ããããã£ã«å€æãããããREST APIã®ããã«ãã©ã¡ãŒã¿ã¯ã©ã¹ãžãŸãšãããšããšãŒãžã§ã³ãããèŠããJSONã¹ããŒãã«äœèšãªéå±€ãã§ããŠããŸããŸããæ¢åã®ãã©ã¡ãŒã¿ã¯ã©ã¹ã®æµåãšã¯æå³çã«å€ããŠããéšåã§ãã 3ã€ç®ã¯ã¬ã¹ãã³ã¹ã®ä»¶æ°ã§ããCMDBã¯ãSBOMã®ããã«ä»¶æ°ãèšå€§ãªããŒã¿ãæã£ãŠããŸã(å·çæç¹ã§50äžä»¶è¶
)ãããããããŒã¿ããã®ãŸãŸè¿ããšããšãŒãžã§ã³ãã®ã³ã³ããã¹ããå§è¿«ããMCPã®çµæãµã€ãºäžéã«ãåŒã£ããããŸããä»¶æ°ã®å€ãããŒã¿ãæ±ãããŒã«ã§ã¯çµãèŸŒã¿æ¡ä»¶ãå¿
é ã«ãã1ããŒãž50ä»¶ã®ããŒãžã³ã°ãšç·ä»¶æ°(totalCount)ã®è¿åŽãããããŠå®è£
ããŠããŸããããŒãžãåããŠããããŒã¿ãè¶³ããªããã°ãšãŒãžã§ã³ããpageãå€ããŠèªåã§ããŒã«ãåŒã³çŽããŠããããããè€æ°åã®åŒã³åºãã§å¿
èŠãªããŒã¿ãéããããŸãã èªèšŒèªå¯ äžçªäžå®ã ã£ãèªèšŒèªå¯ã§ãããçµè«ãšããŠã¯èªåã®èªå¯ãµãŒããŒãå®è£
ããå¿
èŠã¯ãªããæ¢åã®Entra IDããã®ãŸãŸèªå¯ãµãŒããŒãšããŠäœ¿ããŸãããMCPã®èªå¯ä»æ§ã®ç»å Žäººç©ãšæµãã¯ä»¥äžã®ãšããã§ãã sequenceDiagram participant Agent as AIãšãŒãžã§ã³ã<br/>(Claude Codeç) participant MCP as CMDBããã¯ãšã³ã<br/>(MCPãµãŒããŒ) participant Entra as Microsoft Entra ID Agent->>MCP: â POST /mcp(ããŒã¯ã³ãªã) MCP-->>Agent: â¡ 401 + WWW-Authenticate<br/>(ã¡ã¿ããŒã¿ã®å Žæãæ¡å
) Agent->>MCP: ⢠GET /.well-known/oauth-protected-resource MCP-->>Agent: ⣠ã¡ã¿ããŒã¿å¿ç<br/>(èªå¯ãµãŒã㌠= Entra ID ã®å Žæ) Agent->>Entra: †èªå¯ã³ãŒããããŒ(PKCE)<br/>ãã©ãŠã¶ã§SSOãã°ã€ã³ Entra-->>Agent: ⥠ã¢ã¯ã»ã¹ããŒã¯ã³(JWT) Agent->>MCP: ⊠BearerããŒã¯ã³ä»ãã§ããŒã«å®è¡ MCP->>MCP: â§ JWTæ€èšŒ(眲åã»issuerã»æå¹æé) MCP-->>Agent: âš æ€çŽ¢çµæ éèŠãªã®ãâ¢â£ã®Protected Resource Metadata (RFC 9728)ã§ããMCPãµãŒããŒã¯ /.well-known/oauth-protected-resource ã§ã¡ã¿ããŒã¿ãå
¬éããããã®ãµãŒããŒã®èªå¯ãµãŒããŒã¯ã©ãããããšãŒãžã§ã³ãã«æããŸãããšãŒãžã§ã³ãã¯ãããèªãã§ãèªåçã«Entra IDã®ãã°ã€ã³ç»é¢(ãã©ãŠã¶ã®SSO)ãžãŠãŒã¶ãŒãèªå°ããŠãããŸãã SpringåŽã®å®è£
ã¯ãã»ãŒæšæºæ©èœã®çµã¿åããã§æžã¿ãŸããã JWTæ€èšŒ: Spring Securityã®OAuth2 Resource Serverãapplication.ymlã® issuer-uri ã®èšå®ã ãã§ãEntra IDãçºè¡ããJWTã®æ€èšŒãåããŸã ã¡ã¿ããŒã¿ã®å
¬é: Spring Securityãæšæºã§RFC 9728ããµããŒãããŠãã( OAuth2ProtectedResourceMetadataFilter )ãèªå¯ãµãŒããŒã®å Žæãªã©ãJavaã®èšå®ã³ãŒãæ°è¡ã®ã«ã¹ã¿ãã€ãºã ãã§å
¬éã§ããŸã 1ç¹ã ãã€ã³ãã©åŽã®å¯Ÿå¿ãå¿
èŠã§ãããRFC 9728ã®ã¡ã¿ããŒã¿ã¯ãã¡ã€ã³ã«ãŒãã® /.well-known/ é
äžã§å
¬éããå¿
èŠããããŸãããããã¯ãšã³ã㯠/api ã®ã³ã³ããã¹ããã¹ã§åããŠããŸããããã§ãCloudFrontã§ /.well-known/oauth-protected-resource* ãžã®ãªã¯ãšã¹ããALB(ãªãªãžã³ãã¹ /api )ã«ã«ãŒãã£ã³ã°ããŠè§£æ±ºããŸããã ã¡ãªã¿ã«ãSpring AIã®ããã¥ã¡ã³ãã«ã¯ãMCPãµãŒããŒã®èªèšŒèªå¯ãã³ãã¥ããã£ã¢ãžã¥ãŒã«ã® mcp-security ã§å®çŸããæ¹æ³ã玹ä»ãããŠããŸãã ãªããAIãšãŒãžã§ã³ãã«ãã£ãŠOAuthåšãã®å®è£
ã«ã¯åŸ®åŠã«å·®ãããããããšãŒãžã§ã³ãã§ã¯åé¡ãªãæ¥ç¶ã§ããŠããå¥ã®ãšãŒãžã§ã³ãã§ã¯ãšã©ãŒã«ãªãããšããããŸãããMCPãµãŒããŒã瀟å
ã«å±éããå Žåã¯ãå©çšãæ³å®ããããšãŒãžã§ã³ãã§æ©ãã«æ¥ç¶ç¢ºèªãããŠãããšå®å¿ã§ãã AOPã«ããå©çšç¶æ³ã㰠瀟å
å±éåŸã®å©çšç¶æ³ãææ¡ãããããããŒã«åŒã³åºãã®ãã°ãä»èŸŒã¿ãŸããã @McpTool ã¢ãããŒã·ã§ã³ã察象ã«ããAOPã®ã¢ã¹ãã¯ãã1ã€æžãã ãã§ãããŒã«ã¯ã©ã¹ãä»åŸå¢ããŠãèªåã§ãã°å¯Ÿè±¡ã«ãªããŸãããã°ã«ã¯ããŒã«åã»ãŠãŒã¶ãŒID(JWTã®ã¯ã¬ãŒã ããååŸ)ã»æ€çŽ¢æ¡ä»¶ãæ§é åãã£ãŒã«ããšããŠåºåããããã·ã¥ããŒãã§ã誰ãã©ã®ããŒã«ãã©ããªæ¡ä»¶ã§äœ¿ã£ãŠãããããéèšã§ããããã«ããŠããŸãã å®è¡çµæ æåŸã«ã瀟å
æ
å ±ã®ãããèŠãã§ããéšåãå°ãªããªã£ãŠããŸããŸãããå®éã®äœ¿çšæãã玹ä»ããŸãã æ¥ç¶ (Claude Codeã®å Žå) 以äžã®ã³ãã³ãã§Claude Codeã«CMDBã®MCPãç»é²ããŸãã claude mcp add --transport http cmdb-mcp https://xxxxx/api/mcp \ --client-id xxx \ --callback-port 29352 ãµãŒããŒäžèЧã§CMDBã®MCPãéžæããèªèšŒãéå§ããŸãã ãã©ãŠã¶ã§èªèšŒãããŸãã ããŒã«ãåŒã³åºããŠã¿ã 詊ãã«Spring Bootã§æ§ç¯ããŠãããããã¯ãäžèЧãåºããŠã¿ãŸãã ãSpring Bootã§æ§ç¯ããŠãããããã¯ããæŽãåºããŠããšèããŠã¿ããšãCMDBã®MCPãµãŒããŒã«ããSBOMæ€çŽ¢ããŒã«ã spring-boot-autoconfigure ã®ã³ã³ããŒãã³ããæ€çŽ¢æ¡ä»¶ã«å
¥ããŠåŒã³åºããŸãã ãã¡ããã¬ã¹ãã³ã¹ã®äžéšã«ãªããŸããå
šéšã§31ãããã¯ããSpring Bootãæ¡çšããŠããããã§ããå€ãã§ããã æ¬¡ã®ã¹ããã æŽæ°ç³»ããŒã«ãžã®æ¡åŒµ: çŸåšã¯æ€çŽ¢å°çšã§ãããç»é²ã»æŽæ°ç³»ã®ããŒã«ãèŠæããããŸãã誀æäœã®ãªã¹ã¯ãæ€çŽ¢ãšã¯æ®µéããªã®ã§ãæš©éå¶åŸ¡ãå®è¡åã®ç¢ºèªã®ä»çµã¿ãšã»ããã§æ€èšããŠãããããšæããŸã ãããã« ä»åã¯ãSpring Boot補ã®ç€Ÿå
CMDBãSpring AIã§MCPãµãŒããŒåããAIãšãŒãžã§ã³ããã瀟å
ã®æ§ææ
å ±ãæ€çŽ¢ã§ããããã«ããåãçµã¿ã«ã€ããŠã話ãããŸããã MCPãµãŒããŒã®æ§ç¯ã¯PythonãTypeScriptã®æ
å ±ãå€ãã§ãããæ¢åã®Spring Bootã¢ããªãæã£ãŠãããªããserviceå±€ãèªèšŒãã€ã³ãã©ããã®ãŸãŸäœ¿ãåããSpring AIã¯ååæåãªéžæè¢ã§ãããã®èšäºããJavaã§ã®MCPãµãŒããŒæ§ç¯ãæ€èšããŠããæ¹ã®åèã«ãªãã°å¬ããã§ãã AIãšãŒãžã§ã³ããäžå¿ãšããåãæ¹ã¯ãŸã ãŸã é²åããŠãããšæãã®ã§ããã£ããã¢ãããšå®è·µãç¹°ãè¿ããªãããPlatform EngineeringããŒã ãšããŠããŒã«ã®æŽåãé²ããŠãããããšæããŸãã
æ¬èšäºã¯ã Build full-stack AWS applications in minutes with AI-powered scaffolding ãã翻蚳ãããã®ã§ãã AI ã¢ã·ã¹ã¿ã³ãã䜿ãã°ãAWS äžã§åãã¢ããªã±ãŒã·ã§ã³ã Web ãµã€ããæ°åã§ç«ã¡äžããããŸããããããå®éã®ã客æ§ã«æäŸã§ããæ¬çªçžåœã®ãã®ã«ãã©ãçãã®ã¯ãäŸç¶ãšããŠé£ããéšåã§ããã»ãã¥ãªãã£ãå¯èŠ³æž¬æ§ãåå®å
šæ§ããããŠã¬ãžãªãšã³ã¹ã¯ãæ¬çªéçšã§ã¯è²ããªãèŠä»¶ã§ããAI ã¢ã·ã¹ã¿ã³ããããããã¹ãŠãäžåºŠã§æ£ããå®è£
ã§ããããšã¯ãŸãã§ããã®åºåãæ¬çªå質ãŸã§åºããã«ã¯ãã¬ãã¥ãŒã»ä¿®æ£ã»ãã¹ãã®ãµã€ã¯ã«ãäœåºŠãç¹°ãè¿ãå¿
èŠããããŸãã ãã®ã®ã£ãããåãããããç§ãã¡ã¯ Nx Plugin for AWS ã®ããŒãžã§ã³ 1.0 ããªãªãŒã¹ããŸãã æ¬èšäºã§ã¯ããããäœã§ãããããªããã®ããã«äœã£ãã®ãããããŠãã客æ§ã§ãã Bingo Industries ãããã䜿ã£ãŠãã«ããšãŒãžã§ã³ãã®ãœãªã¥ãŒã·ã§ã³ãã¢ã€ãã¢ããæ¬çªãŸã§ 3 é±éæªæºã§é²ããäºäŸãç°¡åã«ã玹ä»ããŸãã Nx Plugin for AWS ãšã¯äœã Nx ã¯ãåäžã®ãªããžããªã®äžã§ã¢ããªã±ãŒã·ã§ã³ãæ§æãã倿°ã®ãããžã§ã¯ãã管çãããæ¡åŒµå¯èœãªãªãŒãã³ãœãŒã¹ã®ãã«ãã·ã¹ãã ã§ããNx 㯠ãã©ã°ã€ã³ ã«ãã£ãŠæ¡åŒµã§ããNx Plugin for AWS ã¯ãã®ã²ãšã€ã§ãAWS äžã«ã¢ããªã±ãŒã·ã§ã³ãã¹ãã£ãã©ãŒã«ãã£ã³ã°ããããã®ãªãŒãã³ãœãŒã¹ã®ããŒã«ãããã§ãããã㯠Nx ãžã§ãã¬ãŒã¿ãŒ ã®ã©ã€ãã©ãªã§ãåãžã§ãã¬ãŒã¿ãŒã¯ãªã¯ãšã¹ãã«å¿ããŠã¢ããªã±ãŒã·ã§ã³ã®äžéšïŒAPIãWeb ãµã€ããAI ãšãŒãžã§ã³ãïŒããããããåããããã®ã¯ã©ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£ãšãšãã«æ§ç¯ããŸãã åãžã§ãã¬ãŒã¿ãŒã¯ãåäœããããã€å¯èœãªã¢ããªã±ãŒã·ã§ã³ã®äžéšãæžãåºããŸããããããã®éšåã«ã¯ãã»ãã¥ãªãã£ã»å¯èŠ³æž¬æ§ã»åå®å
šæ§ã®ãã¹ããã©ã¯ãã£ã¹ããããããçµã¿èŸŒãŸããŠããŸãããŸãåãžã§ãã¬ãŒã¿ãŒã¯æ±ºå®çïŒdeterministicïŒã§ããã€ãŸããæ¯ååãçµæãçæããŸããããã«ãããAI ã¢ã·ã¹ã¿ã³ããèªãèãåºããªããã°ãªããªããã®ã§ã¯ãªããä¿¡é Œã§ããåå°ãšããŠãžã§ãã¬ãŒã¿ãŒã®äžã«æ§ç¯ãé²ããããŸããAI ã¢ã·ã¹ã¿ã³ãã¯ãããã®ãžã§ãã¬ãŒã¿ãŒãèªåã§å®è¡ã§ããããã䟡å€ã®ããéšåãããªãã¡ã¢ããªã±ãŒã·ã§ã³ãããªãã®ãã®ã«ããããžãã¯ã«åŽåãå²ããããã«ãªããŸãã äžã®å³ã¯ Nx Plugin for AWS ãèŠèŠçã«ç€ºãããã®ã§ããã¯ãŒã¯ã¹ããŒã¹ãäœæãããšãŒãžã§ã³ããŸã㯠CLI ã䜿ã£ãŠã¢ããªã±ãŒã·ã§ã³ã®åéšåãã¹ãã£ãã©ãŒã«ãã£ã³ã°ããŸãã ã¯ã€ãã¯ã¹ã¿ãŒã: ãã«ã¹ã¿ãã¯ã®ãšãŒãžã§ã³ãã£ãã¯ã¢ããªã±ãŒã·ã§ã³ãæ°åã§ ãŸãã¯ã¯ãŒã¯ã¹ããŒã¹ãã€ãŸã空㮠Nx ã¢ãã¬ãããå§ããŸããã¯ãŒã¯ã¹ããŒã¹ãäœæããã«ã¯ãã¿ãŒããã«ã§æ¬¡ã®ã³ãã³ããå®è¡ããŸãã pnpm create @aws/nx-workspace my-project --no-interactive ãã®äŸã§ã¯ pnpm ã䜿ã£ãŠããŸãããã奜ã¿ã§ npm ã yarn ã bun ã䜿ããŸããããã©ã«ãã§ã¯ã€ã³ãã©ã¹ãã©ã¯ãã£ã¯ AWS Cloud Development Kit (CDK) ã§å®çŸ©ãããŸããã Terraform ãã奜ã¿ã®å Žåã¯äžèšã®ã³ãã³ãã« --iac terraform ãä»ããŠå®è¡ã§ããŸãããšãŒãžã§ã³ããæ§ç¯ããã®ã§ãAmazon Bedrock ãåŒã³åºãã AWS èªèšŒæ
å ± ãå¿
èŠã§ãã ã¯ãŒã¯ã¹ããŒã¹ã Kiro CLI ãªã©ã® AI ã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãã§éããã¢ããªã±ãŒã·ã§ã³ã®æ§ç¯ãäŸé ŒããŸããããšãã°æ¬¡ã®ããã«ããŸãã Nx Plugin for AWS ã䜿ã£ãŠãshadcn ãš Cognito èªèšŒãåãã React ã® Web ãµã€ãããAG-UI ãããã³ã«çµç±ã§ TypeScript ã® Strands ãšãŒãžã§ã³ãã«æ¥ç¶ããããããããã€ããããã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãããªããã«ã¹ã¿ãã¯ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããŠãã ããã AI ãšãŒãžã§ã³ãã¯ãäžèšã®ã³ãã³ãã§äœæãããã¹ãŠã®ã¯ãŒã¯ã¹ããŒã¹ã«ãããããèšå®ãããŠãã Nx Plugin for AWS MCP ãµãŒã㌠ã䜿çšããŸãããã®ããã³ããã«ãã£ãŠã Strands ãšãŒãžã§ã³ããAmazon Cognito ãã°ã€ã³ãåãã React ããã³ããšã³ãã AG-UI ãããã³ã« çµç±ã§ãŠãŒã¶ãŒãšãšãŒãžã§ã³ããããåããã CopilotKit ã®ãã£ããã€ã³ã¿ãŒãã§ã€ã¹ããããŠãããžã§ã¯ãããããã€ããããã«å¿
èŠãª AWS ãªãœãŒã¹ãå®çŸ©ããã€ã³ãã©ã¹ãã©ã¯ãã£ãããžã§ã¯ããæã«å
¥ããŸãã Web ãµã€ããšãšãŒãžã§ã³ããèªåã®ãã·ã³äžã§ããŒã«ã«ã«èµ·åããã«ã¯ã次ãå®è¡ããŸãã pnpm dev Web ãµã€ããšãšãŒãžã§ã³ãã¯ãã³ãŒããç·šéãããšã©ã¡ããããããªããŒããããŸããããŒã«ã«ã§ã®å€æŽã«æºè¶³ãããããšãŒãžã§ã³ãã« AWS ãžã®ãããã€ãäŸé Œã§ããŸãã ããã§ã¯ Nx Plugin for AWS ããšãŒãžã§ã³ãã§é§åããŸããããã奜ã¿ã§ CLI ã䜿ã£ãŠã¢ããªã±ãŒã·ã§ã³ãæäœæ¥ã§çµã¿ç«ãŠãããšãã§ããŸããã¹ããããã€ã¹ãããã®äŸã¯åŸè¿°ããŸããã ã¯ã€ãã¯ã¹ã¿ãŒãã¬ã€ã ãã芧ãã ãããNx ãš Nx Plugin for AWS ã®æ©æµãåããããã«ãŒãããå§ããå¿
èŠã¯ãªããããã¥ã¡ã³ãã§ã¯ æ¢åãããžã§ã¯ããžã®ãã©ã°ã€ã³è¿œå ã«ã€ããŠã解説ããŠããŸãã ãªããããäœã£ãã®ã ç§ãã¡ã¯ AWS ã® PACEïŒPrototyping and AI Customer EngineeringïŒããŒã ã®äžå¡ã§ãã¹ããŒããšæ¬çªéçšãžã®åããšããç·åŒµé¢ä¿ã«æ¥ã
åãåã£ãŠããŸããç§ãã¡ã¯ããŸã æç¢ºãªçãã®ãªãåé¡ãããããŸã§äœãããããšã®ãªãæè¡çã«ãªã¹ã¯ã®ããã¢ã€ãã¢ã«ã€ããŠãã客æ§ãšäžç·ã«åãçµã¿ãŸããåãšã³ã²ãŒãžã¡ã³ãã®æé㯠4ã6 é±éã§ãç®æšã¯ãã ã²ãšã€ãç¹å®ã®ã¢ã€ãã¢ãå®çŸå¯èœãã©ããã蚌æããããšã§ãã ãããã¿ã€ãã®äŸ¡å€ã¯ãåé¡ã®æãé£ããéšåãã€ãŸãåŸãã¹ã確ç«ããããã¿ãŒã³ãååšããªãéšåããçãŸããŸããããã»ã©çãã¿ã€ã ã©ã€ã³ã§ã¯ãç§ãã¡ã®ãšã³ãžãã¢ã¯æ¬çªéçšã«åããããŒããã³ã°ã§ã¯ãªããã客æ§ã®äžæ žçãªèª²é¡ã«æéã䜿ãå¿
èŠããããŸãããšã¯ããããããã¿ã€ãã¯äœ¿ãæšãŠãã®ã§ã¯ãªãæ¬çªãŸã§æã£ãŠãããã»ãããã客æ§ã«ãšã£ãŠãã圹ã«ç«ã¡ãŸãã AWS äžã§ã®æ§ç¯ã¯éåžžãInfrastructure as Codeãããã¯ãšã³ããµãŒãã¹ãããã³ããšã³ãããããŠå€ãã®å Žåãåäžãããžã§ã¯ãå
ã«è€æ°ã®èšèªãæ··åšããããšãæå³ããŸããç§ãã¡ã«ã¯ãéžãã èšèªã«äŸåããã倿°ã®å¯åéšãããªããããžã§ã¯ãã管çã§ãããã«ãã·ã¹ãã ãå¿
èŠã§ãããç§ãã¡ã®ããŒã 㯠Nx ã«ãã©ãçãããŸãã«ãã®ç®çã®ããã«æ°å¹Žé䜿ã£ãŠããŸãããNx ã¯ãããžã§ã¯ãããšã«äžè²«ããã¢ãã¬ãã®ã¯ãŒã¯ãããŒããæè¡éžå®ã«ãããããæäŸããŠãããŸãããã ãNx ã«ã¢ãã¬ããä»»ããŠããªããç§ãã¡ã¯åãšã³ã²ãŒãžã¡ã³ãã®åé ã§ãããžã§ã¯ãã®åå°ãæäœæ¥ã§çµã¿ç«ãŠãŠããŸãããç§ãã¡ã¯ãèªåãã¡ã®ãã¹ããã©ã¯ãã£ã¹ããããããçµã¿èŸŒãã 圢ã§åå°ãã¹ãã£ãã©ãŒã«ãã£ã³ã°ããæ¬çªã«è¿ããšããããã¹ã¿ãŒãããŠãéãããæéãã客æ§ã®èª²é¡ã«å¹çãã䜿ããããšèããŸããã ãžã§ãã¬ãŒã¿ãŒããã³ãã¬ãŒããã©ã€ãã©ãªã«åã£ãçç± çŸåšã®åœ¢ã«ãã©ãçããŸã§ã«ãç§ãã¡ã¯ããã€ãã®ã¢ãããŒãã詊ããŸããã æåã¯ãåãšã³ã²ãŒãžã¡ã³ãã®åé ã§ãã©ãŒã¯ããã¹ã¿ãŒã¿ãŒãã³ãã¬ãŒãããå§ããŸããããã©ãŒã¯ã¯å€æŽããç¬éã«ããªããïŒä¹é¢ïŒããŸãããã³ãã¬ãŒãåŽã§å ããä¿®æ£ã¯ãã©ãŒã¯ã«ã¯æ±ºããŠå±ãããå¿
èŠãã©ããã«ããããããã³ãã¬ãŒãå
šäœãåŒãç¶ãããšã«ãªããŸãã æ¬¡ã«ãã©ã€ãã©ãªããŒã¹ã®ã¢ãããŒãã詊ãããããžã§ã¯ãæ§é ã»ã¢ããªã±ãŒã·ã§ã³ã³ãŒãã»ã€ã³ãã©ã¹ãã©ã¯ãã£ã³ãŒãããåå©çšå¯èœã§åä»ãã®ãã«ãã£ã³ã°ãããã¯ãšããŠå®çŸ©ããŸãããããã¯ãã³ãã¬ãŒãã®åé¡ã®å€ãã解決ããŸãããå¿
èŠãªéšåã ãã䜿ããŠãã©ã€ãã©ãªãžã®æ¹åã¯ããã䜿ããã¹ãŠã®ãããžã§ã¯ãã«åã蟌ããŸããããããããã€ãå¶çŽããããŸããããšã³ãžãã¢ãã©ã€ãã©ãªã®å
¬éããŠããªãèšå®ãå¿
èŠãšããç¬éã«ãæãæ¢ãŸã£ãŠããŸãã®ã§ããã©ã€ãã©ãªããµããŒãããç¯å²ãè¶
ããã«ã¹ã¿ãã€ãºã«ã¯ãåããã«ããåé¿çãã©ã€ãã©ãªåšãã®ã³ããŒïŒããŒã¹ãããããã¯ã©ã€ãã©ãªã®ãªãŒããŒãæ¡åŒµããŠãããã®ãåŸ
ã€ããšãå¿
èŠã§ãããPACE ãšã³ã²ãŒãžã¡ã³ãã® 4ã6 é±éãšããã¿ã€ã ã©ã€ã³ã§ã¯ãã©ã®éžæè¢ãçŸå®çã§ã¯ãããŸããã§ããã æçµçã«ãã£ããæ¥ãã®ã Nx ãžã§ãã¬ãŒã¿ãŒ ã§ããããã©ãŒã¯ãããã³ãã¬ãŒããäŸåããã©ã€ãã©ãªã§ã¯ãªãããžã§ãã¬ãŒã¿ãŒã¯ã³ãŒããçŽæ¥ããªãã®ã¯ãŒã¯ã¹ããŒã¹ã«æžã蟌ã¿ãŸããçæãããç¬éãããã®ã³ãŒãã¯ããªãã®ãã®ã§ãããæ±ãã®ã«ãã©ã°ã€ã³åºæã®ç¥èã¯äžåå¿
èŠãããŸããããžã§ãã¬ãŒã¿ãŒãæ³å®ããŠããªãã£ãäœãã倿Žããããªã£ããããã€ãéãã«ã³ãŒããç·šéã§ããŸãããããŠããã³ãã¬ãŒãã§ã¯çæã³ãŒããåãæ®ãããŠããã®ã«å¯Ÿãã Nx ãã€ã°ã¬ãŒã·ã§ã³ ã«ãã£ãŠãç§ãã¡ãæäŸããæ¹åãã以åã«ã¹ãã£ãã©ãŒã«ãã£ã³ã°ããã¯ãŒã¯ã¹ããŒã¹ã«ãå±ããŸãããžã§ãã¬ãŒã¿ãŒã¯ãã€ã§ãå®è¡ã§ããã®ã§ãæ¢åã® Web ãµã€ãã«èªèšŒã远å ããããæ°ãæåã«äœã£ã API ã«ããã³ããšã³ããæ¥ç¶ãããã§ããŸããåãžã§ãã¬ãŒã¿ãŒã¯æå³çã«èªå·±å®çµããŠããŠæç¢ºã«èª¬æãããŠãããããåã
ã®ãã¡ã€ã«ã§ã¯ãªããããé«ãã¬ãã«ã®ãã«ãã£ã³ã°ãããã¯ã§èããããããã«ãªããŸããæäœæ¥ã§ã AI ã¢ã·ã¹ã¿ã³ãã䜿ãå Žåã§ããåäžã®ã³ãã³ãã§çµã¿ç«ãŠããããã³ã³ããŒãã³ãäžžããšã®åäœã§èããããã®ã§ãã Nx Plugin for AWS ã®ä»çµã¿ ãŸãã¯ãŒã¯ã¹ããŒã¹ãäœæããæ¬¡ã«ãžã§ãã¬ãŒã¿ãŒã䜿ã£ãŠã¢ããªã±ãŒã·ã§ã³ãçµã¿ç«ãŠãå¿
èŠãªãã®ãå¿
èŠãªãšãã«ã ã远å ããŠãããŸãããžã§ãã¬ãŒã¿ãŒã¯åãªããã¡ã€ã«ãã³ãã¬ãŒã以äžã®ãã®ã§ããæ°ãããã¡ã€ã«ãæžãåºãã ãã§ãªããæ¢åã®ãã¡ã€ã«ã倿ŽããäŸåé¢ä¿ãé
ç·ããèšå®ãæŽæ°ããŸãã APIã»Web ãµã€ãã»ããŒã¿ããŒã¹ã»AI ãšãŒãžã§ã³ãåãã®ã³ã¢ãžã§ãã¬ãŒã¿ãŒ ãžã§ãã¬ãŒã¿ãŒã¯ãã»ãšãã©ã® AWS ã¢ããªã±ãŒã·ã§ã³ãæ§æãããäž»èŠãªã³ã³ããŒãã³ãããTypeScript ãš Python ã®äž¡æ¹ã§ã«ããŒããŸããããšãã°æ¬¡ã®ãšããã§ãã tRPC ã FastAPI ã Smithy ã䜿ã£ã API ãšããããããããã€ããããã®ã€ã³ãã©ã¹ãã©ã¯ã㣠ãªãã·ã§ã³ã§ Amazon Cognito èªèšŒãåãã React ã® Web ãµã€ã Amazon DynamoDB ãš Amazon Aurora äžã®ããŒã¿ããŒã¹ ãšãŒãžã§ã³ãã£ã㯠AI: Strands Agents SDK ã䜿ã£ããšãŒãžã§ã³ããš Model Context Protocol ïŒMCPïŒãµãŒããŒã®æ§ç¯ããããã Amazon Bedrock AgentCore äžã«ãããã€ãããŸãã ããã©ã«ãã§ã¯ãåãžã§ãã¬ãŒã¿ãŒã¯æ¬æ¥ãªãèªåã§è¿œå ããªããã°ãªããªããã¹ããã©ã¯ãã£ã¹ãåããŠåºè·ãããŸãã API ãã³ãã©ãŒã«ã¯ãæ§é åãã®ã³ã°ã»AWS X-Ray ãã¬ãŒã·ã³ã°ã»Amazon CloudWatch ã¡ããªã¯ã¹ã®ããã« AWS Lambda Powertools ãé
ç·æžã¿ã§çµã¿èŸŒãŸããŸãã çæããã DynamoDB ããŒãã«ã¯ãèªåããŒããŒããŒã·ã§ã³ä»ãã®ã«ã¹ã¿ããŒãããŒãžã KMS æå·åããã€ã³ãã€ã³ã¿ã€ã ãªã«ããªãåé€ä¿è·ã䜿çšããŸãã çæããã Aurora ããŒã¿ããŒã¹ã¯ IAM èªèšŒãåãã Amazon RDS Proxy ã®èåŸã«é
眮ãããããŒã¿ããŒã¹ã®ã¹ããŒããšãã€ã°ã¬ãŒã·ã§ã³ã¯ãTypeScript åãã«ã¯ Prisma ãPython åãã«ã¯ SQLModel ãš Alembic ã§ãããããèšå®ãããŸãã ãšãŒãžã§ã³ããš MCP ãµãŒããŒã¯ AgentCore Observability ãèšå®ãããç¶æ
ã§æäŸãããAgentCore Gateway ã«ã¯ ãšãŒãžã§ã³ãã®ã»ãã¥ãªãã£å¶åŸ¡ã®ããã®ããªã·ãŒ ãæžãå§ããã®ã«å¿
èŠãªãã®ããã¹ãŠæã£ãŠããŸãã ã¹ã¿ãã¯å
šäœã«ãããåå®å
šãªæ¥ç¶ ãããã®ã³ã³ããŒãã³ããçµã³ã€ããã®ã connection ãžã§ãã¬ãŒã¿ãŒã§ããReact ã® Web ãµã€ããš tRPC ã® API ããããšããŸããconnection ãžã§ãã¬ãŒã¿ãŒãå®è¡ãããšãäž¡è
ãåå®å
šãªã¯ã©ã€ã¢ã³ãã§é
ç·ãããAPI ã®åœ¢ç¶ã«å¯Ÿãã倿Žããæ¬çªã§ã®åŒã³åºã倱æãšããŠã§ã¯ãªãããããã€åã«ããã³ããšã³ãã®åãšã©ãŒãšããŠçŸããããã«ãªããŸããReact ããã³ããšã³ãããšãŒãžã§ã³ãã«æ¥ç¶ããå Žåãåæ§ã§ãã AG-UI ãããã³ã« ïŒãªããã§ã€ã³ã¿ã©ã¯ãã£ããªãšãŒãžã§ã³ãã®å¿çãããã³ããšã³ããžã¹ããªãŒãã³ã°ããããã®ãªãŒãã³ã¹ã¿ã³ããŒãïŒã§çæããããšãŒãžã§ã³ãã«å¯ŸããŠã¯ãå¿çã®ã¹ããªãŒãã³ã°ãããŒã«åŒã³åºãã®ã¬ã³ããªã³ã°ãç¶æ
管çãåãã CopilotKit ã®ãã£ããã€ã³ã¿ãŒãã§ã€ã¹ãçæããŸãããã¹ãŠã®ãžã§ãã¬ãŒã¿ãŒãããŒã«ã«éçºããµããŒãããŠããã Nx continuous tasks ã䜿ãã°ãåäžã®ã³ãã³ãã§çžäºæ¥ç¶ãããåéšåïŒWeb ãµã€ãããã® APIããšãŒãžã§ã³ãïŒããããªãã®ãã·ã³äžã§ããããªããŒãããªããäžæã«ç«ã¡äžãããããäœããããã€ããã«å€æŽããã¹ãã§ããŸãã å®éã«ã¯ãã³ã³ããŒãã³ãã®éžæãšãããã®æ¥ç¶ã¯ AI ã«ä»»ããŠé§åããŸããããã®ã¢ãããŒãã«ãããã奜ã¿ãªãã¢ããªã±ãŒã·ã§ã³å
šäœãèŠèŠçã«ã¹ãã£ãã©ãŒã«ãã£ã³ã°ããããšãã§ããŸãã ãã®ã¹ã¯ãªãŒã³ã·ã§ãã㯠Nx Plugin for AWS ã® Graph Builder ã®ãã®ã§ããäœãããã¢ããªã±ãŒã·ã§ã³ãå³ãšããŠæãããããã¹ãã£ãã©ãŒã«ãã£ã³ã°ããããã®ã³ãã³ããã³ããŒã§ããŸãã ããªãã®ã³ãŒããããªãã®ã€ã³ãã©ã¹ãã©ã¯ãã£éžæ çæãããã³ãŒãã¯äž»æµã®ãã¬ãŒã ã¯ãŒã¯äžã«æ§ç¯ãããããªãã®ãã®ã«ãªããŸãããã©ã°ã€ã³ãžã®ã©ã³ã¿ã€ã äŸåã¯ãªããçæãããå
容ãç·šéããã®ã劚ãããã®ã¯äœããããŸããããžã§ãã¬ãŒã¿ãŒã¯åºçºç¹ã§ãã£ãŠã³ãããã¡ã³ãã§ã¯ãããŸãããäœããããã®ã«æãè¿ããã®ãéžã³ãããããèªåã®æ¹åãžé²ããŠãã ãããã€ã³ãã©ã¹ãã©ã¯ãã£ã®å®çŸ©æ¹æ³ãéžã¹ãŸãããžã§ãã¬ãŒã¿ãŒã¯ AWS Cloud Development Kit (AWS CDK) ã®ã³ã³ã¹ãã©ã¯ãã Terraform ã®ã¢ãžã¥ãŒã«ã®ãããããçæããããã§ãã Nx ãã€ã°ã¬ãŒã·ã§ã³ã§ææ°ã«ä¿ã€ ã³ãŒããææããããšã¯éåžžãã©ã€ãã©ãªãäžããŠãããŠããå¯äžã®ãã®ãããªãã¡åŸããæ¹åããããã«åãèŸŒãææ®µãç ç²ã«ããããšãæå³ããŸããv1.0 ã§ã¯ãNx Plugin for AWS 㯠Nx ãã€ã°ã¬ãŒã·ã§ã³ ã«ãã£ãŠãã®ã®ã£ãããçããŸããç§ãã¡ãæ°ããããŒãžã§ã³ãåºè·ãããã å
¬éããããã€ã°ã¬ãŒã·ã§ã³ãé©çš ããŠã¯ãŒã¯ã¹ããŒã¹ãæŽæ°ã§ããŸãããã€ã°ã¬ãŒã·ã§ã³ã¯ãã¢ããªã±ãŒã·ã§ã³ã³ãŒãã ãã§ãªãããžã§ãã¬ãŒã¿ãŒãæžãããã¹ãŠã«å±ããŸããããšãã°ãéæšå¥šã«ãªã£ã Vite ã®èšå®ãªãã·ã§ã³ãçŸè¡ã® API ã«çœ®ãæããããéç Web ãµã€ãã®ã¢ã¯ã»ã¹ãã°ã Amazon Simple Storage Service (Amazon S3) ãã±ãããã CloudWatch ãžç§»ããŠãç£èŠãã¢ã©ãŒã ãèšå®ã§ããããã«ãããããŸãããšãŒãžã§ã³ãã«ãã©ã°ã€ã³ã®ã¢ããã°ã¬ãŒããäŸé Œããããšãã§ããŸãããCLI ã䜿ã£ãŠãã€ã°ã¬ãŒã·ã§ã³ãé§åããããšãã§ããŸãã # Install the latest version and prepare migrations pnpm nx migrate @aws/nx-plugin@latest # Apply the migrations to your codebase pnpm nx migrate --run-migrations 倿Žã«å€æãå¿
èŠã§èªåçã«é©çšã§ããªãå Žåã¯ããªãã·ã§ã³ã®ãšãŒãžã§ã³ãã£ãã¯ãã€ã°ã¬ãŒã·ã§ã³ããããªããæŸçœ®ããã«ã³ãŒãã£ã³ã°ãšãŒãžã§ã³ããéããŠãã®å€æŽãã¬ã€ãããŸããææ°ã«ä¿ã€ããšãããªãªãŒã¹ããŒãããã«ãªã¯ãšã¹ããæäœæ¥ã§ã¬ãã¥ãŒããäœæ¥ã§ã¯ãªããæ¥åžžçãªã³ãã³ãã«ãªããŸãã ã¹ããããã€ã¹ãããã®äŸ: CLI ã䜿ã£ãã¹ãã£ãã©ãŒã«ãã£ã³ã° ã¯ãŒã¯ã¹ããŒã¹ãäœæããåŸãæãææ©ãå§ããã«ã¯ AI ã«ãžã§ãã¬ãŒã¿ãŒãé§åãããã®ãè¯ãã§ãããã奜ã¿ã§åãžã§ãã¬ãŒã¿ãŒã CLI ããæäœæ¥ã§åŒã³åºãããšãã§ããŸãããã®ã»ã¯ã·ã§ã³ã§ã¯ãCLI ã³ãã³ããšããã€ãã®å°ããªã³ãŒãç·šéã§ãè€æ°èšèªã®ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããæ¹æ³ãé ã远ã£ãŠèª¬æããŸãã AWS èªèšŒæ
å ± ã«å ããŠãPython ãšãŒãžã§ã³ãçšã« UV ãã€ã³ã¹ããŒã«ããŠããå¿
èŠããããŸãã # Create a new workspace with pnpm (yarn, bun and npm are also supported) pnpm create @aws/nx-workspace my-project --no-interactive cd my-project # Create a Python project and add an agent pnpm nx g @aws/nx-plugin:py#project backend --no-interactive pnpm nx g @aws/nx-plugin:py#agent --project backend --auth=cognito --protocol=ag-ui --no-interactive # Add a website with Cognito login pnpm nx g @aws/nx-plugin:ts#website website --no-interactive pnpm nx g @aws/nx-plugin:ts#website#auth --project website --no-interactive # Connect the website to the agent pnpm nx g @aws/nx-plugin:connection --source-project=website --target-project=backend --no-interactive # Create a CDK project to deploy to AWS pnpm nx g @aws/nx-plugin:ts#infra infra --no-interactive Terraform ã䜿ãããå Žåã¯ãã¯ãŒã¯ã¹ããŒã¹ã®äœææã« --iac=terraform ãæž¡ãã ts#infra ã®ä»£ããã« terraform#project ã䜿ããŸããåããã¿ãŒã³ããã¹ãŠã®ãžã§ãã¬ãŒã¿ãŒã«åœãŠã¯ãŸããŸãããšãŒãžã§ã³ãã tRPC ã FastAPI ã®ããã¯ãšã³ãã«å·®ãæ¿ããã°ãconnection ãžã§ãã¬ãŒã¿ãŒã¯ä»£ããã«ãã®ããã¯ãšã³ããž Web ãµã€ããé
ç·ããŸãã connection ãžã§ãã¬ãŒã¿ãŒã¯ãã§ã« CopilotKit ããšãŒãžã§ã³ããšå®å
šã«éä¿¡ããããé
ç·æžã¿ãªã®ã§ãããšã¯ React ã³ã³ããŒãã³ããã€ã³ã¹ã¿ã³ã¹åããã ãã§ããããšãã°ããŒã ããŒãžã§æ¬¡ã®ããã«ããŸãã // packages/website/src/routes/index.tsx import { createFileRoute } from '@tanstack/react-router'; import { BackendAgentChat } from '../components/backend-agent-chat'; export const Route = createFileRoute('/')({ component: RouteComponent, }); function RouteComponent() { return <BackendAgentChat />; } pnpm dev ãå®è¡ãããšãããŒã«ã«ã® Web ãµã€ããšãšãŒãžã§ã³ããèµ·åã§ããŸãã AWS èªèšŒæ
å ± ãèšå®ãããŠããã°ããšãŒãžã§ã³ã㯠Amazon Bedrock äžã® Strands ã®ããã©ã«ãã¢ãã«ã䜿çšããŸããããŒã«ã«éçºãµãŒããŒãéããŠããšãŒãžã§ã³ããšã®ãã£ãããå§ããããŸãã æºåãã§ããããçæããã CDK ã³ã³ã¹ãã©ã¯ããèªåã®ã¹ã¿ãã¯ã«çµã¿èŸŒã¿ãŸãã // packages/infra/src/stacks/application-stack.ts import { Stack, StackProps } from 'aws-cdk-lib'; import { Construct } from 'constructs'; import { BackendAgent, UserIdentity, Website } from '@my-project/common-constructs'; export class ApplicationStack extends Stack { constructor(scope: Construct, id: string, props?: StackProps) { super(scope, id, props); // Create the Cognito resources const identity = new UserIdentity(this, 'Identity'); // Create the agent new BackendAgent(this, 'Agent', { identity, }); // Create the website new Website(this, 'Website'); } } éçºçšã¹ã¿ãã¯ã AWS ã«ãããã€ããã«ã¯ã pnpm nx deploy-sandbox infra ãå®è¡ãããããã€ããããŠãŒã¶ãŒããŒã«ã« Amazon Cognito ãŠãŒã¶ãŒãäœæ ããCloudFront ãã£ã¹ããªãã¥ãŒã·ã§ã³ã® URL ãéããŠãµã€ã³ã€ã³ãããããã€ããã¢ããªã±ãŒã·ã§ã³ã䜿çšããŸãã çµãã£ãã AWS ãªãœãŒã¹ãã¯ãªãŒã³ã¢ããããããã« pnpm nx destroy-sandbox infra ãå®è¡ããAmazon Cognito ãš Amazon S3 ã®ãªãœãŒã¹ã AWS ãããžã¡ã³ãã³ã³ãœãŒã«ããåé€ããŸãïŒãããã¯ããŒã¿æå€±ãé²ãããã«ããã©ã«ãã§ã¯ä¿æãããŸãïŒã ãããŒå
šäœã®è©³ãããŠã©ãŒã¯ã¹ã«ãŒïŒããã¹ãããŒã¹ã®ãšãŒãžã§ã³ãã£ãã¯ãªã²ãŒã ã®äŸã®æ§ç¯ãå«ãïŒã¯ã Dungeon Adventure ãã¥ãŒããªã¢ã« ãã芧ãã ããã ã客æ§äºäŸ: Bingo Industries ã®ãã«ããšãŒãžã§ã³ããœãªã¥ãŒã·ã§ã³ ãªãŒã¹ãã©ãªã¢ã®ãªãµã€ã¯ã«ã»å»æ£ç©ç®¡çäŒæ¥ã§ãã Bingo Industries ã¯ãNx Plugin for AWS ã䜿ã£ãŠãã«ããšãŒãžã§ã³ãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããæ¬çªç°å¢ã«æå
¥ããŸããã圌ããæ§ç¯ããã¢ãŒããã¯ãã£ã¯æ¬¡ã®ãšããã§ãã 以äžã¯ã圌ãèªèº«ã®èšèã«ãããäœãæ§ç¯ãããã®èª¬æã§ãã Bingo ã®ãªãã¬ãŒã·ã§ã³ã»ç©æµéšéã¯ãããžãã¹ãã¹ã ãŒãºã«æ©èœããããšãæ¯ããäžå¿çãªåœ¹å²ãæ
ã£ãŠããŸãããã®éšéã«ã¯ã24 æéåžžæé«ãå¯çšæ§ãç¶æãã€ã€ãå¹ççã«ã¹ã±ãŒã«ã§ããå¿
èŠã®ããå¹
åºãã¢ããªã±ãŒã·ã§ã³ãå«ãŸããŸãããããã®ã¢ããªã±ãŒã·ã§ã³ã¯ãã¢ãã±ãŒã¿ãŒãã«ã¹ã¿ããŒãµãŒãã¹æ
åœè
ãã³ã³ã¿ã¯ãã»ã³ã¿ãŒã¹ã¿ããããªãã¬ãŒã¿ãŒãã¢ããªã¹ããªã©ã倿§ãªãŠãŒã¶ãŒã°ã«ãŒãã«ãã£ãŠå©çšãããŠãããå
šå¡ãæ¥ã
ã®æ¥åã§ãããã®ããŒã«ã«é Œã£ãŠããŸããé¢ããæ¥åãè€éãªããããŠãŒã¶ãŒã¯è€æ°ã®ç»é¢ãè¡ãæ¥ããããŸããŸãªãã£ã«ã¿ãŒã»ã¯ãšãªã»æ€çŽ¢ã䜿ãããªãããšãå€ãããã®ããã»ã¹ã¯æéããããç
©éã«ãªããã¡ã§ãããããã課é¡ã軜æžãå¹çãé«ãããããç§ãã¡ã¯è€æ°ã®ããŒã¿ãœãŒã¹ããã°ã®æ
å ±ãæŽ»çšããŠãŠãŒã¶ãŒããã®åãåããã«å¿çããããã«ããšãŒãžã§ã³ã AI ãœãªã¥ãŒã·ã§ã³ãå®è£
ããããšã«ããŸããã ãã«ããšãŒãžã§ã³ã AI ãœãªã¥ãŒã·ã§ã³ããŒãããéçºããã¢ãããŒãã¯æ°å€ããããŸããããç§ãã¡ã¯æéãšãªãœãŒã¹ã®å¶çŽã«çŽé¢ããŠããŸããããã®å¶çŽãä¹ãè¶ãããããç§ãã¡ã¯ Nx Plugin for AWS ãéžã³ãŸãããããã¯ãŸã 䜿ã£ãããšã®ãªãæ¹ã
ã«åŒ·ãããããã§ããããŒã«ã§ãããã®ããŒã«ã¯ AWS ããŒã¹ã®ã¢ããªã±ãŒã·ã§ã³ã®ããã®ãå éãããã¹ãã£ãã©ãŒã«ãã£ã³ã°ã®çºå°å°ãšããŠæ©èœããAI ãšãŒãžã§ã³ããçŽ æ©ãç«ã¡äžããããã«å¿
èŠãªã¢ããªã±ãŒã·ã§ã³ã³ãŒããšã¯ã©ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£ããããããåãå²ã API ãããã³ããšã³ããšãšãã«çæããŸãã ãã®åå°ã®äžã«ãç§ãã¡ã¯ãŠãŒã¶ãŒããã®åãåããã«åçãã説æãæäŸã§ãããã«ããšãŒãžã§ã³ãã®ãã£ããããããéçºããŸãããã²ãšã€ã®å·šå€§ãªãšãŒãžã§ã³ãããã¹ãŠãããªãããšããã®ã§ã¯ãªãããã®ãœãªã¥ãŒã·ã§ã³ã¯å質åãé©åãªã¹ãã·ã£ãªã¹ããšãŒãžã§ã³ãã«ã«ãŒãã£ã³ã°ããŸããããã«ããåãšãŒãžã§ã³ãã®çŠç¹ãçµããããã®åçã®ä¿¡é Œæ§ãä¿ãããŸããäžæ¹ã§ãåºç€ãšãªã AWS ã®çæ AI ãµãŒãã¹ããå
šäœãçµã³ã€ããèšèªçè§£ãæäŸããŸãã ãã®ã¢ãããŒãã®å€§ããªå©ç¹ã¯ãAG-UIïŒãªããã§ã€ã³ã¿ã©ã¯ãã£ããªãšãŒãžã§ã³ãã®å¿çãããã³ããšã³ããžçŽæ¥ã¹ããªãŒãã³ã°ããïŒã A2AïŒãšãŒãžã§ã³ãå士ãçŽæ¥åŒã³åºãåããããã«ããïŒãšãã£ããããã³ã«ãå«ããæçãã€ã€ããæ°ããã¹ã¿ã³ããŒãããããããæçããã«ã€ããŠçŽ æ©ãæ¡çšã§ããããšã§ããç§ãã¡ã®ããŒã ã¯ãã»ããã¢ããã»èªèšŒã»é
ç·ããŒãããèãåºãå¿
èŠããªãããã®åå°ããããããæŽã£ãåœ¢ã§æã«å
¥ãã代ããã«ããžãã¹ããžãã¯ã«éäžã§ããŸããããŸãããã¹ãŠãäžããèããå¿
èŠããªããAWS æšå¥šã®ãã©ã¯ãã£ã¹ãš AWS Well-Architected Framework ã«æ²¿ã£ã匷åãªåºçºç¹ãåŸãããŸãããæåã®æ¬çªããŒã³ãã«å°éãããŸã§ã3 é±é匱ã§ããã ããšãã°ããã©ã³ã¶ã¯ã·ã§ã³ã倱æãããšãããã£ãããããã¯ããããé害ã·ããªãªã®äžããèããããåå ã®èšºæãæå©ãã§ãããªãã¬ãŒã¿ãŒã¯è€æ°ã®ã·ã¹ãã ããŸããã§æäœæ¥ã§ç¶æ³ãçµã¿ç«ãŠããããéã解決ãžãã©ãçããŸããããã«ãŠãŒã¶ãŒã¯ãããã³ããããŒã¹ã®ã¬ããŒãããªã¢ã«ã¿ã€ã ã«çæã§ããåæãæ
å ±ã«åºã¥ããæææ±ºå®ãä¿é²ããŸãããã®ãããžã§ã¯ããéããŠååçã«æ¯æŽããŠããã AWS ããŒã ã«æè¬ããŸãã â Alex ToïŒPrincipal EngineerïŒãBalaji RavichandranïŒHead of EngineeringïŒãBingo Industries Alex 㯠Nx Plugin for AWS ã«å€å€§ãªè²¢ç®ãéå
ããŠãããŠãããç§ãã¡ã¯åœŒã®å°œåã«å€§ãã«æè¬ããŠããŸããçæãããã³ãŒãã¯åœŒããèªç±ã«å€æŽã§ãããã®ã§ãã£ããããBingo Industries ã¯ãããã®å€æŽãæå
ã«çããŠããããšãã§ããŸãããã代ããã«ããããã¢ããã¹ããªãŒã ã«è²¢ç®ããŠããã圌ãã®æ¹å㯠v1.0 ã圢äœã£ããã®ã®äžéšã«ãªã£ãŠããŸãã èªåãã¡ã®ãžã§ãã¬ãŒã¿ãŒã§æ¡åŒµãã ã¢ããã¹ããªãŒã ãžã®è²¢ç®ã¯ã²ãšã€ã®éã«ããããå€ãã®ããŒã ãå¿
èŠãšããéã§ããããŸãããç§ãã¡ã¯ãžã§ãã¬ãŒã¿ãŒã SDK ãšããŠå
¬éããŠããã®ã§ãèªåãã¡ã®ããŒãºã«åãããŠæ¡åŒµã»é©å¿ã§ããŸããããªãã®çµç¹ç¬èªã®ãã¹ããã©ã¯ãã£ã¹ã®ãã¿ãŒã³ã奜ã¿ã®ãã¬ãŒã ã¯ãŒã¯ããç§ãã¡ãèªåãã¡ã®ãã®ããšã³ã³ãŒãããã®ãšãŸã£ããåãããã«ãšã³ã³ãŒãã§ããŸããããã«ãããããªãã®ãšã³ãžãã¢ãšåœŒãã® AI ã¢ã·ã¹ã¿ã³ãããããŒã ããŸããã§ãåãæ±ºå®çã§ã¬ãã¥ãŒæžã¿ã®åå°ããæ§ç¯ã§ããããã«ãªããŸãã Nx Plugin ãžã§ãã¬ãŒã¿ãŒ ã䜿ã£ãŠèªåã®ãã©ã°ã€ã³ãã¹ãã£ãã©ãŒã«ãã£ã³ã°ããèªåã®ãžã§ãã¬ãŒã¿ãŒãäœããããã MCP ãµãŒããŒçµç±ã§å
¬éããŠãã ããã ã³ãã¥ããã£ã«åå ãã Nx Plugin for AWS 㯠Apache 2.0 ã©ã€ã»ã³ã¹ã®ããš GitHub ã§å
¬éãããŠãããç§ãã¡ã¯è²¢ç®ãæè¿ããŸãã質åã»ãã°ã»ã¢ã€ãã¢ãããã° issue ã discussion ãéããŠãã ããã æåã®ãã«ãªã¯ãšã¹ãã«åããããã«ã¯ã ãžã§ãã¬ãŒã¿ãŒè²¢ç®ã®ãã¥ãŒããªã¢ã« ã«åŸã£ãŠãã ããã ãã¹ãŠã®ãžã§ãã¬ãŒã¿ãŒã®ã¬ã€ããå«ãããã¥ã¡ã³ã㯠awslabs.github.io/nx-plugin-for-aws ã«ãããŸãã ãŸãã CDK.dev Slack ã® #nx-plugin-for-aws ãã£ã³ãã«ã§ãããã䜿ã£ãŠæ§ç¯ããŠããä»ã®äººãã¡ãšäžç·ã«ç§ãã¡ãèŠã€ããããŸãã ç§ãã¡ããããäœã£ãã®ã¯ãèªåãã¡ã«å¿
èŠã ã£ãããã§ããããªãŒãã³ã«äœã£ãã®ã¯ãããã解決ããåé¡ãç§ãã¡ã®ããŒã ã ãã®ãã®ã§ã¯ãªãããã§ããããªãã AWS äžã§æ§ç¯ããŠããŠãåãåå°ãäœåºŠãæžããŠããèªåã«æ°ã¥ããªãããžã§ãã¬ãŒã¿ãŒãããè¯ããããæäŒãããã²ãé¡ããããã§ãã ãªãŒãã³ãœãŒã¹ã®äžã«ç¯ãããŠãã Nx Plugin for AWS ã¯ãå€ãã®ãªãŒãã³ãœãŒã¹ã³ãã¥ããã£ã®ææã®äžã«æãç«ã£ãŠããŸãã Nx : Nx Plugin for AWS ãæ§ç¯ãããŠãããæ¡åŒµå¯èœãªã¢ãã¬ãã®ãã«ãã·ã¹ãã tRPC : TypeScript ã§ã®ãšã³ãããŒãšã³ãã®åå®å
šãª API FastAPI ãš Pydantic : API ãšãšãŒãžã§ã³ãã®ãžã§ãã¬ãŒã¿ãŒã®èåŸã«ãã Python ã® Web ãã¬ãŒã ã¯ãŒã¯ãšããŒã¿ããªããŒã·ã§ã³ã©ã€ãã©ãª Smithy : API ãã¢ããªã³ã°ããããã®ãããã³ã«éäŸåã®ã€ã³ã¿ãŒãã§ã€ã¹å®çŸ©èšèª React : Web ãµã€ããžã§ãã¬ãŒã¿ãŒã®èåŸã«ãã UI ã©ã€ãã©ãª Vite ãš Rolldown : TypeScript ã® Web ãµã€ããšããã¯ãšã³ãã®ãã«ãã»ãã³ãã«çš Shadcn ãš CloudScape : Web ãµã€ããžã§ãã¬ãŒã¿ãŒãèšå®ã§ãã UX ãã¬ãŒã ã¯ãŒã¯ TanStack : Web ãµã€ãã®ã«ãŒãã£ã³ã°ãš API åãã®åå®å
šãªãã㯠CopilotKit ãš AG-UI ãããã³ã« : ãšãŒãžã§ã³ãããã³ããšã³ãåãã®ãã£ããã€ã³ã¿ãŒãã§ã€ã¹ãšã¹ããªãŒãã³ã°ãããã³ã« A2A ãš a2a-sdk : çæããããšãŒãžã§ã³ããäºããçºèŠãå§è²ã§ããããã«ããããšãŒãžã§ã³ãéãããã³ã«ãš SDK Strands Agents SDK ãš LangChain : ãšãŒãžã§ã³ããžã§ãã¬ãŒã¿ãŒã䜿çšãããšãŒãžã§ã³ããã¬ãŒã ã¯ãŒã¯ Model Context Protocol : AI ã¢ã·ã¹ã¿ã³ãããžã§ãã¬ãŒã¿ãŒãé§åã§ããããã«ããã¹ã¿ã³ããŒã AWS CDK ãš Terraform : ãžã§ãã¬ãŒã¿ãŒã察象ãšãã 2 ã€ã® Infrastructure as Code ã®éžæè¢ AWS Lambda Powertools : çæããã API ãã³ãã©ãŒã®å¯èŠ³æž¬æ§ã®ããã©ã«ã Prisma ã ElectroDB ã SQLModel ã Alembic ã PynamoDB : ããŒã¿ããŒã¹ãžã§ãã¬ãŒã¿ãŒã® ORM ãšãšã³ãã£ãã£ã¢ããªã³ã°ã®ã¬ã€ã€ãŒ GritQL : ãžã§ãã¬ãŒã¿ãŒãšãã€ã°ã¬ãŒã·ã§ã³ã«ããå
ç¢ãªã³ãŒãç·šéãæ¯ãã Biome : ã¯ãŒã¯ã¹ããŒã¹å
šäœã§ã® TypeScript ã®ãªã³ãã£ã³ã°ãšãã©ãŒãããçš uv ã ty ã Ruff : Python ã®ããã±ãŒãžç®¡çã»åãã§ãã¯ã»ãªã³ãã£ã³ã°ã»ãã©ãŒãããçš ããããã¡ã³ããã³ã¹ããŠãã ãã£ãŠãããã¹ãŠã®æ¹ã
ã«æè¬ããŸãã
2026 幎 8 æ 31 æ¥é±ã Claude Fable 5.1 ã AWS ã§å©çšå¯èœã«ãªããŸãã ãAnthropic ã«ãããšãClaude Fable 5.1 ã¯ãã³ãŒãã£ã³ã°ãç§åŠç ç©¶ããšã³ã¿ãŒãã©ã€ãºã¯ãŒã¯ãããŒã«ãããé«åºŠãªã¿ã¹ã¯ã«ãææ°éã®ã€ã³ããªãžã§ã³ã¹ãæäŸããŸããClaude Fable 5.1 ã¯ãäœæ¥ãäœæéã«ãããã£ãŠç¶ãã倿°ã®ã¢ããªã±ãŒã·ã§ã³ã暪æçã«äœ¿çšãããé·æéãã€éèŠåºŠã®é«ãäœæ¥åãã«æ§ç¯ãããŠããŸãããœãããŠã§ã¢ãããžã§ã¯ãã®ããå€ãã®éšåãåç¬ã§æ
åœã§ããé·æéã®ã»ãã·ã§ã³ãéããŠãã³ãŒãããŒã¹å
šäœã«ãããæ©èœãã³ãŒãã¬ãã¥ãŒãããã©ãŒãã³ã¹é¢é£ã®äœæ¥ãæ±ãããšãã§ããŸãã Anthropic ã¯ãFable 5.1 ã 察象ã¢ãã« ã«æå®ããŠããŸãã察象ã¢ãã«ãšã¯ãæäŸå
ãåããã远å ã®ããŒã¿ä¿æãå®å
šæ§ã¬ãã¥ãŒãã¢ã¯ã»ã¹ããªã·ãŒãé©çšããã Claude ã¢ãã«ã®ã«ããŽãªã§ããClaude Fable 5.1 ã¯ãæ°ãã aws_review ããŒã¿ä¿æã¢ãŒã ã«ãããæå€§ 30 æ¥éã®ããŒã¿ä¿æãšãAmazon æ
åœè
ãè¡ã人çã¬ãã¥ãŒã®å¯Ÿè±¡ãšãªããŸãããã®ã¢ãŒãã§ã¯ãAWS ã¯ã客æ§ã®ããã³ãããšåºåå
容ã AWS ã®å¢çå
ã§äººçãªå®å
šæ§ã¬ãã¥ãŒçšã«ä¿æããŸãã provider_data_share ã¢ãŒãã¯ã¬ã¬ã·ãŒã¢ãŒãã§ãããAmazon Bedrock ã¯ã¢ãã«ãããã€ããŒãšããŒã¿ãå
±æããŸãããå ããŠãAWS ãš Anthropic ã®ããŒãããŒã·ããã«ããæ§ç¯ããã ãšã³ã¿ãŒãã©ã€ãºããã³ãã£ã¢ã»ãŒãã¬ãŒã (EFS) ã«ããã察象ãšãªãã客æ§ã¯ãèªåã®ç®¡çããã¯ã©ãŠãç°å¢ã«ããŒã¿ãä¿æãããŸãŸã察象ã¢ãã«ã䜿çšã§ããŸãã Claude Fable 5.1 ã«ã¢ã¯ã»ã¹ããã«ã¯ãAmazon Bedrock ãš Claude Platform on AWS ã® 2 ã€ã®æ¹æ³ããããŸãã詳现ã«ã€ããŠã¯ã Amazon Bedrock ã® Claude Fable 5.1 ã¢ãã«ã«ãŒã ãšã Claude Platform on AWS ããåç
§ããŠãã ããã 8 æ 31 æ¥é±ã®ãªãªãŒã¹ ç§ã泚ç®ãããªãªãŒã¹ãããã€ãã玹ä»ããŸãã Amazon Linux 2027 (AL2027) ããããªãã¯ãã¬ãã¥ãŒäž : AL2027 㯠Amazon Linux ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®æ¬¡æããŒãžã§ã³ã§ããã«ãŒãã« 7.1 以éã§åäœããããã©ãŒãã³ã¹ãã¹ã±ãŒã«ãã»ãã¥ãªãã£ã念é ã«çœ®ã㊠AWS äžã®ã¯ã©ãŠããã€ãã£ãã¯ãŒã¯ããŒãå°çšã«æ§ç¯ãããŠããŸããAL2023 ã®ããŒã¹ã©ã€ã³ã«åºã¥ããŠæ§ç¯ããã AL2027 ã¯ããŠã§ãã¢ããªã±ãŒã·ã§ã³ãããŒã¿ããŒã¹ãã³ã³ããåããããã€ã¯ããµãŒãã¹ãAI/ML ã¯ãŒã¯ããŒããããã³å€§èŠæš¡ã€ã³ãã©ã¹ãã©ã¯ãã£ãå®è¡ãããå®å
šãã€å®å®ãã AWS ãã€ãã£ããªãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãå¿
èŠãšããã客æ§åãã«èšèšãããŠããŸãã Amazon EC2 R9g ããã³ R9gd ã®ã¡ã¢ãªæé©åã€ã³ã¹ã¿ã³ã¹ : ãããã®ã€ã³ã¹ã¿ã³ã¹ã¯ AWS Graviton5 ããã»ããµã䜿çšããŠãããAmazon EC2 ã§å®è¡ãããã¡ã¢ãªã倧éã«æ¶è²»ããã¯ãŒã¯ããŒãã«æé©ãªæéããã©ãŒãã³ã¹ãæäŸããŸããR9g ããã³ R9gd ã€ã³ã¹ã¿ã³ã¹ã¯ãAWS Graviton4 ããŒã¹ã® R8g ããã³ R8gd ã€ã³ã¹ã¿ã³ã¹ãšæ¯èŒããŠæå€§ 25% åªããã³ã³ãã¥ãŒãã£ã³ã°ããã©ãŒãã³ã¹ãæäŸããŸããããŒã¿ããŒã¹ã§ã¯æå€§ 30%ããŠã§ãã¢ããªã±ãŒã·ã§ã³ã§ã¯æå€§ 35%ãæ©æ¢°åŠç¿ã§ã¯æå€§ 35% é«éã«ãªããŸãã詳现ã«ã€ããŠã¯ã Daniel ã®ããã°èšäº ããèªã¿ãã ããã ã³ã³ããã€ã¡ãŒãžé¢æ°çš AWS Lambda SnapStart : Lambda SnapStart ã¯ãªããã€ã³æ©èœã§ãããªãœãŒã¹ãããããžã§ãã³ã°ããããè€éãªããã©ãŒãã³ã¹æé©åãå®è£
ãããããªããŠããå¿çæ§ãé«ãã¹ã±ãŒã©ãã«ãªã¢ããªã±ãŒã·ã§ã³ãç°¡åã«æ§ç¯ã§ããŸãã ãããŸã§ãSnapStart ã¯ãããŒãžãã©ã³ã¿ã€ã (Pythonã.NETãJava) ã§ã®ã¿ãµããŒããããŠããŸãããä»åŸã¯ãSnapStart ãã³ã³ããã€ã¡ãŒãžã«äœ¿çšããŠãML æšè«ãã€ã³ã¿ã©ã¯ãã£ã API ãªã©ã®é
å»¶ã®åœ±é¿ãåããããã¯ãŒã¯ããŒãã®èµ·åæéãæ°ç§ãã 1 ç§æªæºã«ççž®ã§ããŸãã AWS Agent Registry ã®äžè¬æäŸéå§ : AWS Agent Registry ã¯ãçµç¹å
ã®ãšãŒãžã§ã³ããããŒã«ãã¹ãã«ãMCP ãµãŒããŒãããã³ã«ã¹ã¿ã ãªãœãŒã¹çšã«ã管çããããã©ã€ããŒããªã«ã¿ãã°ããã³æ€åºã¬ã€ã€ãŒãæäŸããŸãããã¬ãã¥ãŒã§å°å
¥ãããæ©èœ (æåããã³ URL ããŒã¹ã®ã¬ã³ãŒãäœæãæ¿èªã¯ãŒã¯ãããŒãã»ãã³ãã£ãã¯æ€çŽ¢ãããŒã¯ãŒãæ€çŽ¢ãAWS CloudTrail ç£æ»èšŒè·¡) ã«å ããŠãä»å Registry ã«ã¯æ°ãããšã³ã¿ãŒãã©ã€ãºåãã®æ©èœã远å ãããŸããã詳现ã«ã€ããŠã¯ã AI ããã°ã®èšäº ãã芧ãã ããã Amazon Redshift ã Apache Iceberg v3 ããŒãã«ã®ãµããŒããéå§ : Amazon Redshift ã®ããŒã¿ã¬ã€ã¯ã«ãã Apache Iceberg v3 ããŒãã«ããã®èªã¿åããšæžã蟌ã¿ãå¯èœã«ãªããŸããä»åã®ãªãªãŒã¹ã«ãããAmazon Redshift ã«ã¯ããã©ã«ãã®åå€ãè¡ç³»çµ±ãããã³åé€ãã¯ãã«ã®ãµããŒããå°å
¥ãããŸããAmazon Redshift ã® Graviton ããŒã¹ã®ããããžã§ãã³ã°ã¯ã©ã¹ã¿ãŒãšãµãŒããŒã¬ã¹ã¯ã©ã¹ã¿ãŒã¯ãæ°ãã v3 ãã©ãŒãããããµããŒãããŠããŸãã詳现ã«ã€ããŠã¯ãã Redshift ã® Apache Iceberg v3 ã®æ©èœ ããã芧ãã ããã AWS ã®ãç¥ããã«é¢ãã詳ãããªã¹ãã«ã€ããŠã¯ãã AWS ã®ææ°æ
å ± ãããŒãžãã芧ãã ããã AWS ã®ãã®ä»ã®ãã¥ãŒã¹ è峿·±ããšæããããã®ä»ã®ãããžã§ã¯ãããã¥ãŒã¹é
ç®ãããã€ãã玹ä»ããããŸãã 2026 幎ã®ã¬ãŒãããŒããžãã¯ã¯ã¢ãã©ã³ãã®æŠç¥çã¯ã©ãŠããã©ãããã©ãŒã ãµãŒãã¹éšéã§ AWS ããªãŒããŒã«éžåº : ã¬ãŒãããŒç€Ÿã¯ 2026 幎ã®ããžãã¯ã¯ã¢ãã©ã³ãã®æŠç¥çã¯ã©ãŠããã©ãããã©ãŒã ãµãŒãã¹éšéã§ AWS ã 16 幎é£ç¶ã§ãªãŒããŒã«èªå®ããå®è¡èœåã®è»žã§åã³ AWS ãæé«ã©ã³ã¯ã«äœçœ®ä»ããŸããããã®è©äŸ¡ã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£ãš AI ããã»ãã¥ãªãã£ãéçšã«è³ããŸã§ãæãåºç¯ã§å¥¥æ·±ãã¯ã©ãŠãæ©èœã»ãããæäŸãããšããåœç€Ÿã®åãçµã¿ãåæ ããããã®ã§ãããšèããŠãããã客æ§ã«ã¯å®å¿ããŠæ§ç¯ã驿°ãã¹ã±ãŒã«ã«åãçµãã§ããã ããŸãã AWS Certified AI Business Strategist : ãã®æ°ããèªå®ã¯ãçµç¹å
ã® AI ã€ãã·ã¢ãããè©äŸ¡ããæ¯æããæ¡å€§ããå°éå®¶ã察象ãšããŠããŸããããã«ã¯ãããŒã å
šäœã§å°å
¥ãæšé²ããåºå¹¹æ¥åãªãŒããŒã顧客㫠AI ã®äŸ¡å€ããããããã説æããå¶æ¥æ
åœè
ãå®éšããæ¬çšŒåãŸã§ã®ã¯ã©ã€ã¢ã³ãæŠç¥ãå°ãã³ã³ãµã«ã¿ã³ããAI ãžã®æè³ãããžãã¹ã®ææãžãšçµã³ã€ããããã°ã©ã ãããŒãžã£ãŒãªã©ãæããããŸããããŒã¿è©Šéšã®ç»é²ã¯ 2026 幎 9 æ 1 æ¥ã«éå§ããã詊éšã®é
信㯠9 æ 29 æ¥ããéå§ãããŸãã ãšãŒãžã§ã³ãã»ãã¥ãªãã£: ãã·ã³ã¹ããŒãã§ã®æ€ç¥ãšå¯Ÿå¿ : ç§ãã¡ã¯ãã»ãã¥ãªãã£ã¯ AI ã®å°å
¥åŸã§ã¯ãªãããã®åã«é²åãã¹ãã ãšèããŠããŸãããã®ä¿¡å¿µã®ããšãç§ãã¡ã®ããŒã 㯠SANS Institute ãšååããŠã2026 幎çºè¡ã® Cloud Security Exchange eBook ã«æ°ããªç« ãèšããŸãããæ¬ç« ã§ã¯ããšã³ã¿ãŒãã©ã€ãºèŠæš¡ã§ãšãŒãžã§ã³ãã¯ãŒã¯ããŒããä¿è·ããããã®å®è·µçãªãã¬ãŒã ã¯ãŒã¯ã«ã€ããŠèª¬æããŠããŸãããŸããè©äŸ¡ã詊éšéçšãå€§èŠæš¡éçšãåããããšãŒãžã§ã³ãã£ã㯠AI å°å
¥ã®ããããæç段éã«ããã»ãã¥ãªãã£ããŒã ã«å¯ŸããŠãå
·äœçãªã¢ãŒããã¯ãã£ãã¿ãŒã³ãå®è£
ã¬ã€ãã³ã¹ããã¬ãŒã ã¯ãŒã¯ãæäŸãããšãŒãžã§ã³ãã¯ãŒã¯ããŒãã®ä¿è·ã«ã€ããŠãããã«æ·±ãæãäžããŠããŸãã AWS ã®ããã°èšäºäžèЧã«ã€ããŠã¯ã AWS ããã° ããŒãžãã確èªãã ããã AWS ã®è©³çްã«ã€ããŠåŠã³ãä»åŸäºå®ãããŠãã AWS äž»å¬ã®å¯Ÿé¢ã€ãã³ããããŒãã£ã«ã€ãã³ã ã ã¹ã¿ãŒãã¢ããã€ãã³ã ã éçºè
åãã€ãã³ã ( AWS re:Invent ã AWS Summit ã AWS Community Day ãªã©) ãé²èЧããŠããåå ãã ããã AWS Builder Center ã«åå ããŠããã«ããŒãšã€ãªããããœãªã¥ãŒã·ã§ã³ãå
±æããéçºããµããŒãããã³ã³ãã³ãã«ã¢ã¯ã»ã¹ããŸãããã 9 æ 7 æ¥é±ã®ãã¥ãŒã¹ã¯ä»¥äžã§ãã9 æ 14 æ¥é±ã«åã³ã¢ã¯ã»ã¹ããŠãæ°ããª1é±éã®ãŸãšãããã²ãèªã¿ãã ãã! â Channy åæã¯ ãã¡ã ã§ãã





















