- TOP
- ã¿ã°äžèЧ
- .NET
.NET
ã€ãã³ã
ãã¬ãžã³
該åœããã³ã³ãã³ããèŠã€ãããŸããã§ãã
æè¡ããã°
2026 幎 7 æ 20 æ¥é±ãç§ã¯ãµã³ããŠãã§äžåç±³åå°ã®ãã¯ãã«ã«ãã«ããŒãš 3 æ¥ééããæ©äŒã«æµãŸããŸãããããã§ã¯ãæ·±ãæãäžããã»ãã·ã§ã³ããã³ãºãªã³ã¯ãŒã¯ã·ã§ãããã客æ§ãããŒãããŒãšã®äŒè©±ãçãã ãããã®å°åã®æè¡ã€ãã³ãã«åå ããŸãããç§ãæãæéãåããã®ã¯ãåäžã®ã»ãã·ã§ã³ã§ã¯ãªããåãéšå±ã«ããæ©äŒã¯ãã£ãã«ãªãæè¡ã³ãã¥ããã£ã®ãšãã«ã®ãŒã§ããã人ã
ã¯ã³ãŒããŒã飲ã¿ãªããã¢ãŒããã¯ãã£ã®ã¢ã€ãã¢ã亀æãããã¯ã€ãããŒãã«è§£æ±ºçãã¹ã±ããããå°çãããšããããé·ãã詊ããŠã¿ããããšãã®ãªã¹ããæã«ããŠåž°ã£ãŠãããŸãããç§ãã¡ãæ§ç¯ãããã¹ãŠã®ããŒã«ã«ãããŠããããåãå·»ãã³ãã¥ããã£ããããã¯ãããžãŒãå®çãããŠããããšãæãåºãããŠãããŸãã ãã®ã³ãã¥ããã£ã®ç²Ÿç¥ã¯ã 7 æ 27 æ¥é±ã®æå€§ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ãã¥ãŒã¹ãšããŸãçµã³ã€ããŠããŸããããã¯ãAWS ããã«ããŒãå®éã«ããå Žæã®è¿ãã«å±ããããšã«é¢ãããã®ã§ãã ããã§ã¯ã7 æ 27 æ¥é±ã® AWS ãã¥ãŒã¹ãèŠãŠãããŸããã⊠䞻ãªããã㯠ã®ãªã·ã£ã®ã¢ããã® AWS ããŒã«ã«ãŸãŒã³ : AWS ã¯ã®ãªã·ã£ã®ã¢ããã«æ°ããããŒã«ã«ãŸãŒã³ãéèšããŸãããããã¯ãAmazon S3 ãš Amazon EBS ããŒã«ã«ã¹ãããã·ã§ããããµããŒããã EMEA ã® 2 çªç®ã®ããŒã«ã«ãŸãŒã³ã§ããããã«ãããã®ãªã·ã£åœå
ã§ããŒã¿ãä¿åããã³åŠçããŠãããŒã«ã«ã®ããŒã¿ã¬ãžãã³ã·ãŒèŠä»¶ãæºããã®ã«åœ¹ç«ã¡ãŸããã¢ããããŒã«ã«ãŸãŒã³ã¯ãAmazon EC2 (C7iãM7iãããã³ R7i ã€ã³ã¹ã¿ã³ã¹)ãã¯ã³ãŸãŒã³äœé »åºŠã¢ã¯ã»ã¹ã¹ãã¬ãŒãžã¯ã©ã¹ã® Amazon S3ãAmazon EBSãããã³ Amazon ECS ããµããŒãããŠããŸãã AWS ããŒã«ã«ãŸãŒã³ã¯ãAWS ã€ã³ãã©ã¹ãã©ã¯ãã£ã倧å¢ã®äººå£ãæ¥çã®ããã®è¿ãã«é
眮ããŠããŸããããã«ããããªã¢ã«ã¿ã€ã ã²ãŒã ãã¡ãã£ã¢å¶äœãéèãµãŒãã¹ãªã©ãæ°ããªç§ã®ã¬ã€ãã³ã·ãŒãå¿
èŠãšããã¢ããªã±ãŒã·ã§ã³ãããšã³ããŠãŒã¶ãŒãå®éã«ããå Žæã§å®è¡ã§ããããã«ãªããŸããã®ãªã·ã£ã®ãã«ããŒã¯ãã¬ã€ãã³ã·ãŒã®åœ±é¿ãåããããã¯ãŒã¯ããŒããããŒã«ã«ã§å®è¡ãããšåæã«ãäœã¬ã€ãã³ã·ãŒãå¿
èŠãšããªããµãŒãã¹ã®ããã«æãè¿ã AWS ãªãŒãžã§ã³ã«ã·ãŒã ã¬ã¹ã«æ¥ç¶ã§ããããã«ãªããŸãããããã«ãããç¬èªã®ããŒã¿ã»ã³ã¿ãŒã€ã³ãã©ã¹ãã©ã¯ãã£ã管çããªããŠããã¬ã€ãã³ã·ãŒãæé©åããããã€ããªããã¢ããªã±ãŒã·ã§ã³ãæè»ã«èšèšã§ããŸãã詳现ã«ã€ããŠã¯ã AWS ã°ããŒãã«ã€ã³ãã©ã¹ãã©ã¯ãã£ãšæç¶å¯èœæ§ã«é¢ããããã°æçš¿ ãã芧ãã ããã 7 æ 20 æ¥é±ã®ãªãªãŒã¹ 7 æ 20 æ¥é±ã®ãªãªãŒã¹ã®ãã¡ãç§ã泚ç®ãããªãªãŒã¹ãããã€ãã玹ä»ããŸã: AWS äžã® Claude Opus 5 : Anthropic ã® Claude Opus 5 ã䜿çšã§ããŸããããã¯ããããŸã§ã§æãå
é²ç㪠Opus ã¢ãã«ã§ãããå€ãã®åéã§ Claude Fable 5 ã®ãããã¯ã©ã¹ã®ã€ã³ããªãžã§ã³ã¹ã«å¹æµãããOpus ã¬ãã«ã®æéäœç³»ã§ãå©çšããã ããŸããAmazon Bedrock ã§ã¯ãããã©ã«ãã§ãŒãããŒã¿ä¿æ (ZDR) ãæå¹ã«ãªã£ãŠãã Claude Opus 5 ãæäŸããŠããŸããããã«ãããClaude Fable 5 ãšã¯ç°ãªããããŒã¿ã¬ããã³ã¹èŠä»¶ãæºãããªãããOpus ã®æé«ã¬ãã«ã®ã€ã³ããªãžã§ã³ã¹ãæäŸã§ããŸããClaude Opus 5 ã«ã¢ã¯ã»ã¹ããã«ã¯ãAmazon Bedrock ãš Claude Platform on AWS ã® 2 ã€ã®æ¹æ³ããããŸãã詳现ã«ã€ããŠã¯ã 詳现ãªããã°æçš¿ ã«ã¢ã¯ã»ã¹ããŠãã ããã .NET çšã® AWS Lambda æ°žç¶å®è¡ SDK ãäžè¬å
¬éãããŸãã : ã«ã¹ã¿ã ã®é²æè¿œè·¡ãå®è£
ããããå€éšã®ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãµãŒãã¹ãçµ±åãããããªããŠããLambda ã®æ°žç¶é¢æ°ã䜿çšããŠãå埩åã®ããé·æéå®è¡ã¯ãŒã¯ãããŒã C# ã§æ§ç¯ã§ããããã«ãªããŸãããSDKã¯ãæ¯æãåŠçãã€ãã©ã€ã³ãAI ãšãŒãžã§ã³ããªãŒã±ã¹ãã¬ãŒã·ã§ã³ããã¥ãŒãã³ã€ã³ã¶ã«ãŒãæ¿èªãªã©ã®è€æ°ã¹ãããã®ã¢ããªã±ãŒã·ã§ã³ã«æé©ã§ããé²è¡ç¶æ³ãèªåçã«ãã§ãã¯ãã€ã³ãã§ç¢ºèªããå®è¡ãæå€§ 1 幎é忢ã§ããŸããã客æ§ããµãŒããŒã¬ã¹ã¯ãŒã¯ãããŒãæ§ç¯ããŠãã .NET éçºè
ã§ããå Žåãããã«ãã£ãŠæäœæ¥ã§èšè¿°ããŠãããã©ãã³ã°ã®å€§éšåãäžèŠã«ãªããŸãã Amazon Bedrock AgentCore ã§ã¯ããã¬ãŒã¹ãšãã°ã 1 ã€ã®ãã°ã°ã«ãŒãã«ãŸãšããããšã§ãçµ±äžããããªãã¶ãŒãããªãã£ãå®çŸã§ããããã«ãªããŸãã : Amazon Bedrock AgentCore ã¯ããšãŒãžã§ã³ãã®ãã¬ãŒã¹ãšããã³ãããããšãŒãžã§ã³ãã®ãã°ãšåã Amazon CloudWatch ãã°ã°ã«ãŒãã«é
ä¿¡ããããã«ãªããŸããã以åã¯ããã¬ã¡ããªã¯éä¿¡å
ã«åæ£ããããã¬ãŒã¹ã¹ãã³ã¯å
±æãã°ã°ã«ãŒãã«éãããããã³ãããå
¥åãåºåã¯å¥ã®ãã°ã°ã«ãŒãã«éãããŸããããã®ããã1 åã®ãšãŒãžã§ã³ãåŒã³åºãããããã°ããã«ã¯è€æ°ã®å Žæãæ€çŽ¢ããå¿
èŠããããŸãããåŒã³åºãã 1 ãæã§ãããã°ãããã现ããªã¢ã¯ã»ã¹å¶åŸ¡ãšã«ã¹ã¿ããŒãããŒãžãã㌠(CMK) æå·åãåã
ã®ãšãŒãžã§ã³ãã¬ãã«ã§é©çšã§ããããã«ãªããŸããã Amazon Connect ãããèªç¶ãªãšãŒãžã§ã³ãé³å£°äœéšãæäŸ : Amazon Connect ã¯ãçŸåšããã«ãã¬ã«èªãã¹ãã€ã³èªããã©ã³ã¹èªãã€ã¿ãªã¢èªãæ¥æ¬èªãéåœèªãã¿ã€èªãå«ã 50 以äžã®èšèªã§ãããèªç¶ã§äººéã«èããããšãŒãžã§ã³ãåé³å£°äœéšããµããŒãããããã«ãªããŸããã100 ãè¶
ããæ°ããé³å£°ãªãã·ã§ã³ãšäŒè©±ã®æ¹åã«ãããAI ã€ã³ã¿ã©ã¯ã·ã§ã³ãããã¹ã ãŒãºã«èãããããã«ãªããŸãããConnect ã®ãšãŒãžã§ã³ãåã»ã«ããµãŒãã¹ã«ãããAI ãšãŒãžã§ã³ãã¯é¡§å®¢ã®å£èª¿ãææ
ã«åãããŠãé³å£°ãããžã¿ã«ãã£ãã«å
šäœã§çè§£ããæšè«ããè¡åã«ç§»ãããšãã§ããŸãã顧客ãå®éã«è©±ãèšèªã®ãã¡ããããŸã§ãããã¯ããã«å€ãã®èšèªã§ãçºä¿¡è
ã«å¯ŸããŠèªç¶ã«æããããã³ã³ã¿ã¯ãã»ã³ã¿ãŒäœéšãæ§ç¯ã§ããããã«ãªããŸããã Amazon SageMaker Unified Studio ã Amazon OpenSearch ããµããŒãããããã«ãªããŸãã : Amazon OpenSearch ã®æ€çŽ¢ããŒã¿ããã°åæããŒã¿ããAmazon SageMaker Unified Studio ã®ä»ã®ããŒã¿è³ç£ãšäžç·ã«çŽæ¥ã¯ãšãªããŠåæã§ããããã«ãªããŸããããã®æ¥ç¶ã«ãããOpenSearch ã®éçšæ€çŽ¢ããŒã¿ã Amazon RedshiftãAmazon S3ããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãªã©ã®ãœãŒã¹ããã®ããŒã¿ãšããã¹ãŠåäžã®ç®¡çãããç°å¢å
ã§çµã¿åãããããšãã§ããŸããã¢ããªã±ãŒã·ã§ã³ãã°ããã©ã³ã¶ã¯ã·ã§ã³ããŒã¿ãšçµã¿åãããŠã€ã³ãµã€ããåŒãåºããªã©ãåæã¯ãŒã¯ããŒããšéçšã¯ãŒã¯ããŒããçžäºã«é¢é£ä»ããå¿
èŠãããå Žåã«ç¹ã«åœ¹ç«ã¡ãŸãã Amazon CloudWatch ãã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãã®ã€ã³ãµã€ããçºè¡š : Amazon CloudWatch ã«ããããšã³ãžãã¢ãªã³ã°ãªãŒããŒã¯ AI ã³ãŒãã£ã³ã°ããŒã«ãçµç¹å
šäœã§ã©ã®ããã«äŸ¡å€ããããããŠããããææ¡ã§ããããã«ãªããŸãããã³ãŒãã£ã³ã°ãšãŒãžã§ã³ãã€ã³ãµã€ã㯠AWS çšã® Claude ã¢ããªã²ãŒããŠã§ã€ãšçµ±åãããŠããããã远å ã®ã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ãªãã§ Claude Code ãããã¬ã¡ããªãåéã§ããŸãããŸããCodex ã GitHub Copilot ãªã©ã®ãšãŒãžã§ã³ãããµããŒãããŠããŸããããŒã ã AI ã³ãŒãã£ã³ã°ã®æ¡çšãæ¡å€§ããã«ã€ããŠãOpenTelemetry ã§æ§ç¯ãããã¡ããªã¯ã¹ã䜿çšããŠãã®æè³åççãæž¬å®ã§ããããã«ãªããŸãããã«ã¹ã¿ã ã€ã³ã¹ãã«ã¡ã³ããŒã·ã§ã³ã¯å¿
èŠãããŸããã AWS ã®ãç¥ããã«é¢ãã詳ãããªã¹ãã«ã€ããŠã¯ãã AWS ã®ææ°æ
å ± ãããŒãžãã芧ãã ããã AWS ã®ãã®ä»ã®ãã¥ãŒã¹ è峿·±ããšæããã远å ã®èšäºããªãœãŒã¹ãããã€ãã玹ä»ããŸã: AI ãšãŒãžã§ã³ãã®è©äŸ¡: Strands ãš AgentCore ã䜿ã£ãæ¬çªç°å¢ãã«ãŒããªã³ã : Strands Agents ãš Amazon Bedrock AgentCore ã䜿çšããŠãæ¬çªç°å¢ã«ç§»è¡ããååŸã« AI ãšãŒãžã§ã³ããè©äŸ¡ããããã®å®è·µã¬ã€ãããšãŒãžã§ã³ãããããã¿ã€ãããæ¬çªç°å¢ã«ç§»è¡ããŠããå Žåããã®æçš¿ã¯äžèšã® AgentCore Observability ã®ã¢ããããŒãã«åœ¹ç«ã¡ãŸãããšãŒãžã§ã³ãã®å質ãçŽæã§ã¯ãªãäœç³»çã«æž¬å®ããæ¹æ³ã説æããŠããŸãã AWS CloudFormation ã«ã¹ã¿ã ãªãœãŒã¹ãããã€ã®ããã®ãã«ããªãŒãžã§ã³ã®èé害æ§ã®æ§ç¯ : åäžãªãŒãžã§ã³ã«åé¡ãçºçããå Žåã§ããã³ãŒããšããŠã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã®ãããã€ã®ä¿¡é Œæ§ãç¶æãããããã«ããã«ããªãŒãžã§ã³ã®èé害æ§ãå®çŸããããã« CloudFormation ã«ã¹ã¿ã ãªãœãŒã¹ãèšèšããæ¹æ³ãåŠãã§ãã ããã Amazon Simple Email Service (SES) æéãã©ã³ã®ãçŽ¹ä» : Amazon SES ã§ã¯ãE ã¡ãŒã«ã®éãå¢ããŠãã³ã¹ããäºæž¬ã§ããæéãã©ã³ãæäŸãããããã«ãªããŸããã倧éã«éä¿¡ããå Žåãè«æ±ã倧å¹
ã«ç°¡çŽ åãããŸãã è¿æ¥éå¬äºå®ã® AWS ã€ãã³ã ã«ã¬ã³ããŒã確èªããŠãè¿æ¥éå¬äºå®ã® AWS ã€ãã³ãã«ãµã€ã³ã¢ããããŸãããã AWS Summits : AWS Summits ã¯ãã¯ã©ãŠãã AI ã®ã³ãã¥ããã£ãäžå ã«äŒããã€ãªãããåŠã³ãææ°ã®ãã¯ãããžãŒãæ¢æ±ããããã®ç¡æã®ã€ãã³ãã§ããã«ã¬ã³ããŒå
šäœãã芧ã«ãªã£ãŠã2026 幎åŸåã«ãè¿ãã§éå¬ããããµããããèŠã€ããŠãã ããã AWS Community Days : ã³ãã¥ããã£ãªãŒããŒãã¡ãã³ã³ãã³ããèšç»ã調éãæäŸããã³ãã¥ããã£äž»å°ã®ã«ã³ãã¡ã¬ã³ã¹ãã©ãã³ã¢ã¡ãªã«ã«ãäœãŸãã®æ¹ã¯ã8 æ 22 æ¥ã«éå¬ããã AWS Community Day Belo Horizonte ããèŠéããªããç»é²ã¯ awscommunityday.com.br ã§åä»äžã§ãã AWS Builder Center ã«åå ããŠããã«ããŒãšã€ãªããããœãªã¥ãŒã·ã§ã³ãå
±æããéçºããµããŒãããã³ã³ãã³ãã«ã¢ã¯ã»ã¹ããŸãããã ãã¡ã ãããä»åŸéå¬ããããã¹ãŠã® AWS äž»å°ã®å¯Ÿé¢ã€ãã³ãããã³ä»®æ³ã€ãã³ããšããããããŒåãã®ã€ãã³ããã芧ããã ããŸãã 7 æ 27 æ¥é±ã®ãã¥ãŒã¹ã¯ä»¥äžã§ããïŒ æ 3 æ¥é±ã® Weekly Roundup ããæ¥œãã¿ã«! ãã®èšäºã¯ãWeekly Roundup ã·ãªãŒãºã®äžéšã§ããAWS ããã®è峿·±ããã¥ãŒã¹ãçºè¡šãç°¡åã«ãŸãšããŠæ¯é±ã玹ä»ããŸã! åæã¯ ãã¡ã ã§ãã
å€§èŠæš¡ãªããŒã¿éãéçšããããã§ãéçšé¢ã§ã®éèŠãªèª²é¡ã«çŽé¢ããŸããSimilarweb ã§ã¯ Apache HBase ã§ãããã®èª²é¡ã«çŽé¢ãã Amazon DynamoDB ã§è§£æ±ºçãèŠåºããŸããã Similarweb ã¯ã Web ãµã€ãã®ãã©ãã£ãã¯ãã¢ããªã®å©çšç¶æ³ãåžå Žãã¬ã³ãã«é¢ãã AI é§åã®ã€ã³ãµã€ã ãæäŸããããžã¿ã«ã€ã³ããªãžã§ã³ã¹ãã©ãããã©ãŒã ã§ãããäŒæ¥ãç«¶åããã³ãããŒã¯ããæé·æŠç¥ãæé©åããã®ã«åœ¹ç«ã¡ãŸãã ç§ãã¡ã¯æ¢åã® Apache HBase ã€ã³ãã©ã¹ãã©ã¯ãã£ã§ã¹ã±ãŒã©ããªãã£ãšéçšäžã®è€éãã®åé¡ãå¢å€§ããŠãããããæè»ã§å¹ççãªä»£æ¿æ¡ã暡玢ããããšã«ãªããŸãããæ¬èšäºã§ã¯ãããŒã¿ã¹ãã¬ãŒãžã Apache HBase ãã DynamoDB ãžç§»è¡ããéçšã玹ä»ããŸããæè¡çãªèª²é¡ãç§»è¡ã¢ãããŒããããŒã¿ã¢ããªã³ã°æŠç¥ãã³ã¹ãæé©åãã¯ããã¯ããããŠåŸãããäž»ãªã¡ãªããã«ã€ããŠè°è«ããŸããDynamoDB ãžç§»è¡ããããšã§ãããã©ãŒãã³ã¹ãšã¹ã±ãŒã©ããªãã£ãåäžããã¡ã³ããã³ã¹è² è·ã軜æžãããããŒã ã¯ã€ã³ãã©ç®¡çãããã€ãããŒã·ã§ã³ã«æ³šåã§ããããã«ãªããŸãããåŠãã æèšãšããã®ç§»è¡ãæ¥åãªãã¬ãŒã·ã§ã³ã«äžãã圱é¿ã«ã€ããŠãæ¢ã£ãŠãããŸãã èæ¯ ç§ãã¡ã® Web ã¢ããªã±ãŒã·ã§ã³ã§ã¯ããŠãŒã¶ãŒã«å€§éã®ããŒã¿ãæäŸããããã«å
ç¢ãªããŒã¿ããŒã¹ãœãªã¥ãŒã·ã§ã³ãå¿
èŠã§ãããã®ãœãªã¥ãŒã·ã§ã³ã¯ãããŒã¿ã广çã«ä¿åããè¿
éã«ååŸãããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã«çµæãè¿ãåã«éèšãã°ã«ãŒãã³ã°ããœãŒããªã©ã®æäœãå®è¡ããå¿
èŠããããŸãããããå®çŸãããããããŒã¿ã®æ§è³ªãšã¯ãšãªãã¿ãŒã³ã«åºã¥ãã 2 ã€ã®ã¢ãããŒããæ¡çšããWeb ã¢ããªã±ãŒã·ã§ã³ãå¿çæ§ãé«ãã€ã³ã¿ã©ã¯ãã£ãã«ä¿ã€ããèšèšããŠããŸãã æåã®ã¢ãããŒãã¯ããŠãŒã¶ãŒå
¥åã«äŸåããåçã¯ãšãªãããµã€ãã°ã«ãŒãã®ã¹ãéåã®ããŒã¿ãèšç®ãããããªè€éãªèšç®ã«é¢ãããã®ã§ããããã¯èšå€§ãªæ°ã®çµã¿åãããšãªããäºåèšç®ã¯çŸå®çã§ã¯ãããŸããããã®ããããããã®ã¯ãšãªã«ã¯ Firebolt ã®ãããªã¯ã©ãŠãåæããŒã¿ããŒã¹ (OLAP ã·ã¹ãã ) ã䜿çšããŠããŸããFirebolt ã¯ãJOINãGROUP BYããã®ä»ã® SQL ã©ã€ã¯ãªã¯ãšãªæäœãå«ãè€éãªã¯ãšãªãã¿ãŒã³ã«ã䜿çšããŠããŸãããããã®ããŒã¿ããŒã¹ã¯ãETL ããŒã¹ã®äºåéèšã«é©ããªãå€§èŠæš¡ããŒã¿ã»ããã®ãªã³ã¶ãã©ã€åŠçã«åªããŠããŸãã äžæ¹ã2 ã€ç®ã®ã¢ãããŒãã§ã¯ãäºæž¬å¯èœã§äºåèšç®å¯èœãªã¢ã¯ã»ã¹ãã¿ãŒã³ãæã€æ©èœã«ã€ããŠãDynamoDB ã®ãããªããŒããªã¥ãŒ (KV) ã¹ãã¢ã䜿çšããŠããŸãã宿ç㪠ETL ããã»ã¹ã§ããŒã¿ãäºåèšç®ããããšã«ãããDynamoDB ã¯éèšæ
å ±ãžã®é«éã§ç°¡çŽ ãªã¢ã¯ã»ã¹ãæäŸããããã©ãŒãã³ã¹ãšã¹ã±ãŒã©ããªãã£ã®ãã©ã³ã¹ãåããªãããŠãŒã¶ãŒã«å¿çæ§ã®é«ãäœéšãæäŸããŸãã ãã©ãã£ãã¯ãšãšã³ã²ãŒãžã¡ã³ãããŒã¿ãååŸããããã®èŠä»¶ äºåèšç®ããŒã¿ã®å©ç𿹿³ã瀺ãããã«ããã©ãããã©ãŒã ã® UI ã§è¡šç€ºããŠãããWeb ãµã€ãã®ãã©ãã£ãã¯ãšãšã³ã²ãŒãžã¡ã³ãã®çµæçãªæšç§»ãšããå
žåçãªãŠãŒã¹ã±ãŒã¹ãèŠãŠã¿ãŸãããã å³ 1: Similarweb ã® Traffic and Engagement ã¬ããŒãã§ã¯ããŠãŒã¶ãŒã¯åæãããµã€ã (1) ãéžæããæ¥ä»ç¯å² (2) ãéžã³ãäžçå
šäœãŸãã¯ç¹å®ã®åœãªã©ã®å°ççç¯å² (3) ãèšå®ã§ããŸãããããã®éžæãè¡ããšãã°ã©ãã«ã¯éžæããæéã«ãããèšªåæ°ããŠããŒã¯ãŠãŒã¶ãŒãšãã£ãäž»èŠã¡ããªã¯ã¹ã衚瀺ãããŸãã äŸãã° example.com ãªã©ã® Web ãµã€ãã®èšªåçµ±èšãããµã€ãåãæ¥ä»ãåœ (ISO ã³ãŒã)ãèšªåæ°ãšãã£ã詳现ãšãšãã«ä¿åããŠããŸãã Site Country (ISO) Date Visits TimeOnSite BounceRate ⊠example.com 840 2026-01-22 7 15.2 7 example.com 840 2026-01-23 11 11.7 1 example.com 840 2026-01-24 3 20.3 4 example.com 840 2026-01-25 12 13.2 5 example.com 840 2026-01-26 9 19.1 7 ã¢ã¯ã»ã¹ãã¿ãŒã³ãšããŠã¯ãexample.com ã®ç¹å®ã®æ¥ä»ç¯å²ã«ãããå
šåœã®èšªåããŒã¿ãååŸããããç±³åœ (840) ã®ãããªç¹å®ã®åœã®èšªåããŒã¿ãã¯ãšãªãããããããšãèããããŸãããã®ã·ããªãªã§ã¯ãETL ããã»ã¹äžã«æ¥ä»ãåœããµã€ãã®åçµã¿åããã«å¯Ÿããèšªåæ°ãäºåã«èšç®ããŠä¿åããããšã§ããããã®äžè¬çãªã¢ã¯ã»ã¹ãã¿ãŒã³ã«å¯ŸããŠè¿
éãªå¿çæéãå®çŸãã€ã€ãã¯ãšãªæã®èšç®ãªãŒããŒããããæå°éã«æããããšãã§ããŸãã ãããã®äºåèšç®ãããã¡ããªã¯ã¹ã¯åçŽã«èŠããŸãããSimilarweb ã®èŠæš¡ã§ã¯ããã®èåŸã«ããæžã蟌ã¿è² è·ãšã¯ãšãªã®å€æ§æ§ãæ¢åã® HBase ã¯ã©ã¹ã¿ãéçãŸã§æŒãäžããŸãããç§ãã¡ã®ã±ãŒã¹ã§ã¯ãããŒã¿ã¯ç¶ç¶çã«æžã蟌ãŸããã®ã§ã¯ãªããSpark ãžã§ãã䜿çšããŠæ¥æ¬¡ã鱿¬¡ãææ¬¡ãšãã£ãã¹ã±ãžã¥ãŒã«ãããééã§å€§èŠæš¡ãªãããã§åã蟌ãŸããŸãã å€§èŠæš¡ã¹ã±ãŒã«ãšæè»ãªã¢ã¯ã»ã¹ Similarweb ã®ãã©ãã£ãã¯ãšãšã³ã²ãŒãžã¡ã³ãããŒã¿ã»ããã¯èšå€§ã§ãåèš 255 ãã©ãã€ã (TB) ãè¶
ããŸããããŒã¿ãç¶ç¶çã«åã蟌ããã©ã³ã¶ã¯ã·ã§ã³ã¢ããªã±ãŒã·ã§ã³ãšã¯ç°ãªããç§ãã¡ã®åæãã€ãã©ã€ã³ã¯å€§ããªããŒã¹ãã§åŒåžããŸããããŒã¿ãæ°é®®ã«ä¿ã€ããã 1 ããŒãã«ãããçŽ 70 åã¬ã³ãŒã ããæ°æéã§å®äºãããå¿
èŠãããã¿ã€ããªã¹ã±ãžã¥ãŒã«ã®ãããã§åã蟌ãã§ããŸãã ããããããŒã¿ãæžã蟌ãããšã¯æŠãã®ååã«ãããŸãããä¿ååŸããã®ããŒã¿ã¯å€æ§ã§è€éãªèªã¿åããã¿ãŒã³ã«å¯ŸããŠå³åº§ã«å©çšå¯èœã§ãªããã°ãªããŸããããŠãŒã¶ãŒã¯åçŽãªããŒæ€çޢ以äžã®ããšãè¡ããŸãã圌ãã¯è€æ°ã®æ¬¡å
ã§ããŒã¿ãåãåããŠãç«¶åããã³ãããŒã¯ãããã¬ã³ããåæããŸãã æ¬¡ã®å³ã¯ãç§»è¡åã®ãã€ã¬ãã«ãªããŒã¿ãããŒã瀺ããŠããŸãã å³ 2 (ç§»è¡å): çã®ã€ãã³ãã¯ããŒã¿ã¬ã€ã¯ã«å°éããSpark ETL ãæ¥æ¬¡éèšãèšç®ãããã«ã¯æžã蟌ã¿ã§çµæã HBase ã«ä¿åããŸãã.NET ããã¯ãšã³ãã¯ãµã€ããšåœã®ã¡ããªã¯ã¹ãã㌠(ããã³æ¥ä») ã§èªã¿åããTraffic and Engagement UI ã«æäŸããŸãããã¹ãŠã®ç¢å°ã¯ããŒã¿ãããŒã衚ããŠããŸãã åçŽãªããŒããªã¥ãŒæ€çŽ¢ãè¶
ã㊠ç¹å®ã®ãã£ã«ã¿ãªã³ã°ãã¿ãŒã³ã«å¯Ÿã㊠1 æ¡ããªç§ã®èªã¿åããæäŸããªãããå€§èŠæš¡ãªæžã蟌ã¿ã¹ãã€ã¯ã«å¯Ÿå¿ã§ããããŒã¿ããŒã¹ãœãªã¥ãŒã·ã§ã³ãå¿
èŠã§ãããå
·äœçã«ã¯ãä»»æã®ãµã€ãã«å¯ŸããŠä»¥äžã® 4 ã€ã®ã¢ã¯ã»ã¹ãã¿ãŒã³ããµããŒãããå¿
èŠããããŸããã ãµã€ãã¬ãã«ã®éèš: ãµã€ãã®å
šãã©ãã£ãã¯ãååŸã SELECT * WHERE Site = {site} ç¹å®ã®åœã®å
èš³: ç¹å®ã®åœã«ããªã«ããŠã³ã SELECT * WHERE Site = {site} AND Country = {country} æç³»åãã¬ã³ã: ç¹å®ã®æéã®å±¥æŽãååŸã SELECT * WHERE Site = {site} AND Date BETWEEN {start} AND {end} è€éãªçµã¿åãã: åœãšæ¥ä»ç¯å²ã®äž¡æ¹ã§ãã£ã«ã¿ãªã³ã°ã SELECT * WHERE Site = {site} AND Country = {country} AND Date BETWEEN {start} AND {end} ãããéæããããã«ãçæ³çãªããŒã¿ããŒã¹ã¯ä»¥äžã® 4 ã€ã®å³æ Œãªåºæºãæºããå¿
èŠããããŸããã é«ãæžã蟌ã¿ã¹ã«ãŒããã: æ°æéã§æ°ååã¬ã³ãŒããåã蟌ãã å€çšéãªã¯ãšãªãµããŒã: ããŒãã«å
šäœãã¹ãã£ã³ããã«ãåè¿°ã®æ¬¡å
ããŒã¹ã®ã¯ãšãªãåŠçã ããã©ãŒãã³ã¹ãä¿ã£ãã¹ã±ãŒã©ããªãã£: ããŒã¯æžãèŸŒã¿æã§ãé«ãèªã¿åãããã©ãŒãã³ã¹ãç¶æã ã³ã¹ãã®éææ§: è«æ±æžã§é©ãã®ã§ã¯ãªããå®è¡ åã« ã³ã¹ããèŠç©ãããäºæž¬å¯èœãªæéã¢ãã«ãæäŸã HBase ãå£ã«ã¶ã€ãã£ãçç± HBase ã¯é·å¹Žã«ããã£ãŠç§ãã¡ã«åœ¹ç«ã£ãŠããŸããããSimilarweb ã®èŠæš¡ã§ã¯ãåŸã
ã«ã䜿çšããããŒã¿ããŒã¹ããããéçšããã·ã¹ãã ããžãšå€åããŠãããŸãããäžæ žçãªå¶éã¯çã®èœåã§ã¯ãããŸããã§ãããããã¯ãéåžžã«å€§èŠæš¡ãªãããæžã蟌ã¿ãšåžžæçšŒåã®èªã¿åãã«å¯Ÿããå³ããæåŸ
ãçµã¿åãããåŸã«çŸããéçšãªã¹ã¯ãšäžå®å®ãã§ããã 1. RegionServer ã®äžå®å®æ§ããªã³ã³ãŒã«å¯Ÿå¿ã®åå ã« ç¹°ãè¿ãçºçããã€ã³ã·ãã³ãã®åå ã¯ãHBase ã® RegionServer ãã¯ã©ã¹ã¿ã®ä»ã®éšåãšåæããªããªã£ãããããŠã³ãããããããšã§ãããRegionServer ãããªããããã誀åäœããããããšããã¹ããããªãŒãžã§ã³ã®å¯çšæ§ãšã¬ã€ãã³ã·ã«åœ±é¿ãäžããå¯èœæ§ããããŸããå埩ãå¯èœãªå Žåã§ããããã¯äžå®ã§æéãããããã®ã§ãããé »ç¹ã«çºçãããããå®è³ªçãªéçšè² æ
ãšãªã£ãŠããŸããã 2. ã¹ãã¬ãŒãžãšãã£ã¹ã¯ã®ã¢ããã°ã¬ãŒããæªå€¢ å€§èŠæš¡ãª HBase ç°å¢ã«ããããã£ã¹ã¯ç®¡çãšã¢ããã°ã¬ãŒãã¯ãåžžã«éåžžã«æ©æŠã®å€§ãããã®ã§ããã忣ã·ã¹ãã ã«ããããã£ã¹ã¯å€æŽã¯åç¬ã®ã€ãã³ãã§ã¯ãããŸãããããã¯ããã©ãŒãã³ã¹ãå®å®æ§ãéçšæé ã«æ³¢åããŸããã«ãŒãã³ãšãªãã¹ãã€ã³ãã©äœæ¥ããã°ãã°å®è³ªçãªãªã¹ã¯ã䌎ãè€æ°ã¹ãããã®ã¡ã³ããã³ã¹ã«å€ãããç¹ã«åã蟌ã¿ãŠã£ã³ããŠãèªã¿åã SLA ãä¿è·ããããšããŠãããšãã«ã¯å³ãããã®ã§ããã 3. ã¢ãŒããã¯ãã£ã®å©ç¹ãç§ãã¡ã®ã¢ã¯ã»ã¹ãã¿ãŒã³ãšäžèŽããªãã£ã HBase ã®ã¯ã€ãã«ã©ã ã¢ãã«ã¯ã倧ããªè¡ããåã®ãµãã»ãããèªã¿åããšãã«ç䟡ãçºæ®ããŸããç§ãã¡ã®å Žåãã¢ã¯ã»ã¹ãã¿ãŒã³ã¯ãã°ãã°ããŒã«å¯Ÿããã¡ããªã¯ã¹ã®å®å
šãªã»ãããèªã¿åãããšãå¿
èŠãšããŠãããããã·ã¹ãã ã®æã匷åãªèšèšäžã®å©ç¹ãäžè²«ããŠäº«åããããšãªããã·ã¹ãã ã®éçšã³ã¹ããæ¯æã£ãŠããããšã«ãªã£ãŠããŸããã 4. ããŒã¿ããŒã¹ãããŒã¯åãã«ãµã€ãžã³ã°ãããŠããããé«ã³ã¹ã ãã©ãã€ãèŠæš¡ã®ãããããŒãã¯çãæ¿ããæžã蟌ã¿ããŒã¯ãçã¿åºãäžæ¹ã§ã補åã¯äŸç¶ãšããŠé«éã§äºæž¬å¯èœãªèªã¿åããå¿
èŠãšããŠããŸãããããŒã¯åãã«ãµã€ãžã³ã°ãããåžžæçšŒåã¯ã©ã¹ã¿ãç¶æããããšã¯ã1 æ¥ã®ã»ãšãã©ã§å®éã«äœ¿çšããŠããªããã£ãã·ãã£ã«å¯ŸããŠæ¯æãããšãæå³ããŠããŸããã ãããã®èª²é¡ã¯åäžã®å£æ»
çãªé害ãšããŠçŸããããã§ã¯ãããŸããããããã¯çޝç©ããéçšè² è·ãšããŠçŸããŸãããæ·±å€ã®åŒã³åºããå¢ããã¯ã©ã¹ã¿ã®å¥å
šæ§ã«è²»ããæéãå¢ããã«ãŒãã³ã¡ã³ããã³ã¹ã®ãªã¹ã¯ãå¢å ããŸããããã®è€ååãããªãŒããŒããããããã«ãããŒãžããªä»£æ¿æ¡ãæ¢ãããšãä¿ããŸããã DynamoDB ããããã®èª²é¡ã«ã©ã察åŠããã DynamoDB ã«ããã以äžãå¯èœã«ãªããŸããã ã¯ãªãã£ã«ã«ãã¹ããã¯ã©ã¹ã¿éçšãæé€ã DynamoDB ã§ã¯ããªãŒãžã§ã³ãµãŒããŒãããããžã§ãã³ã°ããå¿
èŠããªãããªãã©ã³ã¹ããªããã€ã³ãã©å±€ã§ã®ãã£ãã·ãã£ãã©ã³ãã³ã°ãæåã§è¡ãå¿
èŠããããŸãããããã«ãããããŒã¿ããŒã¹ã®å¥å
šæ§ã«é¢é£ããæ¥åžžçãªéçšäœæ¥ãšé害ã¢ãŒãã®æ°ãçŽæ¥åæžãããŸããã æ°žç¶çãªãªãŒããŒããããžã§ãã³ã°ãªãã§ãããåã蟌ã¿åãã«ã¹ã±ãŒã«ã ç§ãã¡ã®æžã蟌ã¿ãã¿ãŒã³ã¯äºæž¬å¯èœã§ããæžã蟌ãã¬ã³ãŒãæ°ãšå®äºãŸã§ã®æéãŠã£ã³ããŠãããã£ãŠããŸããDynamoDB ã§ã¯ãã£ãã·ãã£ããã€ã€ã«ãšããŠæ±ãããšãã§ããŸããåã蟌ã¿å®è¡ã®çŽåã« ããããžã§ã³ãæžã蟌ã¿ãã£ãã·ãã£ãŠããã (WCU) ãå³åº§ã«ã¹ã±ãŒã«ã¢ããããå®äºæ¬¡ç¬¬ããã«ã¹ã±ãŒã«ããŠã³ããŸããããã«ããã24 æé 365 æ¥å€§èŠæš¡ãªã¯ã©ã¹ã¿ã皌åããç¶ããã®ã§ã¯ãªããã³ã¹ããããããŠã£ã³ããŠã«åãããããšãã§ããŸããã æžã蟌ã¿ã¹ãã€ã¯äžãèªã¿åãããã©ãŒãã³ã¹ãå®å®çã«ç¶æã UI ã®èåŸã«ããã¢ã¯ã»ã¹ãã¿ãŒã³ã¯ãäž»ã«ããŒããŒã¹ã®æ€çŽ¢ãšæ¥ä»ç¯å²ã¯ãšãªã§ããDynamoDB ã®ããŒãã£ã·ã§ã³åãããã¢ãŒããã¯ãã£ãšã ããŒãã£ã·ã§ã³ããŒãšãœãŒãã㌠ã«å¯Ÿãã Query æäœ ã«ãããããŒãã«ãéåžžã«å€§ããæé·ããåã蟌ã¿ãžã§ãã䞊åå®è¡ãããŠããå Žåã§ãããããã®èªã¿åããäžè²«ããŠäœã¬ã€ãã³ã·ã§æäŸã§ããŸãã ã³ã¹ãåäœãæç€ºçãã€äºæž¬å¯èœã«ã DynamoDB ã®ãã£ãã·ãã£ãšãªã¯ãšã¹ããã¿ãŒã³ãç§ãã¡ã®ã¯ãŒã¯ããŒãã«ãããã«ãããããããããã¬ã³ãŒãæ°ãã¢ã€ãã ãµã€ãºãäºæ³ãããã¯ãšãªã®åœ¢ç¶ããæžã蟌ã¿ãšèªã¿åãã®ã³ã¹ããèŠç©ããããšãã§ããŸããããã«ãããã³ã¹ãã¢ããªã³ã°ã¯äºåŸçãªé©ãã§ã¯ãªããèšèšã®äžéšãšãªããŸããã èé害æ§ãšãã£ã¶ã¹ã¿ãªã«ããªãªãã·ã§ã³ã®æ¹åã DynamoDB ã¯ãããã«äœ¿ãããããŒãžãããã¯ã¢ãããšãªã«ããªããªããã£ããæäŸããŸãããã«ããªãŒãžã§ã³ã®ããŒãºã«å¯ŸããŠã¯ã DynamoDB Global Tables ã§ãªãŒãžã§ã³éã§ããŒã¿ãã¬ããªã±ãŒãã§ãããããèªã¿åããããŒã«ã«ã§æäŸã§ãããªã«ããªã¯å€§èŠæš¡ã¯ã©ã¹ã¿ãå§åäžã§åæ§ç¯ããããšã«äŸåããŸããã ãã®åºç€ãæŽã£ãããšã§ãç§ãã¡ã®ã¯ãŒã¯ããŒãåºæã®éšåãã€ãŸãé«ã¹ã«ãŒãããã§å¹ççã«åãèŸŒãæ¹æ³ãšãäœã³ã¹ãã§ã¢ã¯ã»ã¹ãã¿ãŒã³ãæºããããã®ããŒã¢ããªã³ã°ã«éäžã§ããããã«ãªããŸãããæ¬¡ã®å³ã¯ãç§»è¡åŸã®ããŒã¿ãããŒã瀺ããŠããŸãã å³ 3 (ç§»è¡åŸ) : äºåèšç®ããããã©ãã£ãã¯ãšãšã³ã²ãŒãžã¡ã³ãã¡ããªã¯ã¹ã¯ã2 ã€ã®ãã¹ãéããŠæäŸãããŸããäºæž¬å¯èœã§äœã¬ã€ãã³ã·ã®ã¢ã¯ã»ã¹ã®ããã® DynamoDB ã«æ¯ããããããŒããªã¥ãŒã¬ãŒã³ãšãåçã§ã¢ãããã¯ãªã¯ãšãªã®ããã® Firebolt ã䜿çšããåæã¬ãŒã³ã§ãã.NET ããã¯ãšã³ãã¯ããã«å¿ããŠãªã¯ãšã¹ããã«ãŒãã£ã³ã°ããŸããæŽå²çã«ãã¬ãŒã³ A 㯠HBase ã䜿çšããŠããŸãããããã DynamoDB ã«çœ®ãæããŸããã ããŒã¿ã¢ããªã³ã° DynamoDB ã®ããã©ãŒãã³ã¹ãšã³ã¹ãã®ã¡ãªãããæå€§éã«åŒãåºãããã«ã¯ãå®éã®ã¯ãšãªãã¿ãŒã³ã«åºã¥ããŠããŒã¿ã¢ãã«ãèšèšããããšãéèŠã§ãããç§ãã¡ã®ç®æšã¯ãå¿çæéãšèªã¿åã/æžã蟌ã¿ãã£ãã·ãã£äœ¿çšéã®äž¡æ¹ãæå°åããå¹ççãªã¢ã¯ã»ã¹ãã¹ãäœæããããšã§ããã Traffic and Engagement ã®äŸãå床èŠãŠã¿ãŸããããã³ã¢ã¢ã¯ã»ã¹ãã¿ãŒã³ã«ã¯ãæ¥ä»ç¯å²å
šäœã«ããããµã€ãã®èšªåããŒã¿ã®ååŸãšããªãã·ã§ã³ã§åœã«ãããã£ã«ã¿ãªã³ã°ãå«ãŸããŸãã åçŽãªã¢ãããŒã: ããŒãã£ã·ã§ã³ã㌠æåã®ã¢ãããŒãã¯ã次ã®ãããªãã©ããã§ãŠããŒã¯ãªããŒãã£ã·ã§ã³ããŒãäœæããããšãããããŸããã PK = {site}_{country}_{date} Primary key Visits TimeOnSite BounceRate PK example.com_840_2026-01-21 4 24 12.31 1 ãæåã®ããŒã¿ãäŸãã° 2026 幎 1 æã®ç±³åœ (åœã³ãŒã 840) ã«ããã example.com ãžã®èšªåãååŸããã«ã¯ã31 åã®åå¥ã®ããŒãçæããBatchGetItem ãªã¯ãšã¹ããçºè¡ããŸãã example.com_840_2026-01-01 example.com_840_2026-01-02 ... example.com_840_2026-01-31 ãã®èšèšã¯æ©èœããŸãããã¹ã±ãŒã«ã§ã¯éå¹çã§ã³ã¹ããããããŸããåäžã® BatchGetItem ãªã¯ãšã¹ãå
ã§ã¯ãåã¢ã€ãã ã®ååŸãåå¥ã®èªã¿åãæäœãšããŠã«ãŠã³ãããããã€ããŒããµã€ãºãå°ãããŠãã¢ã€ãã ããšã« 1 ã€ã®èªã¿åããã£ãã·ãã£ãŠããããæ¶è²»ããŸãã æé©ãªèšèš: ããŒãã£ã·ã§ã³ããŒãšãœãŒãããŒãæã€ã³ã³ããžããã㌠ããã¹ã±ãŒã©ãã«ãªã¢ãã«ã§ã¯ãããŒãã£ã·ã§ã³ããŒãšãœãŒãããŒãæã€ ã³ã³ããžãããã©ã€ããªã㌠ã䜿çšããŸãã ããŒãã£ã·ã§ã³ã㌠(PK): {site}_{country} ãœãŒãã㌠(SK): {date} Primary key Visits TimeOnSite BounceRate PK SK example.com_840 2026-01-21 4 24 12.31 ãã®ã»ããã¢ããã§ã¯ãDynamoDB ã®å¹çç㪠Query API ã䜿çšããŠãæ¥ä»ç¯å²ã«ããããµã€ããšåœã®ãã¢ã®ãã¹ãŠã®ã¬ã³ãŒããã¯ãšãªã§ããŸãã Query(PK="example.com_840", SK BETWEEN "2026-01-01" AND "2026-01-31") ããã«ãã API ã³ãŒã«ã®æ°ãæžãããœãŒãããŒã«å¯Ÿããç¯å²ã¯ãšãªã䜿çšããããšã§èªã¿åãã³ã¹ãã倧å¹
ã«åæžãããŸãã ã³ã¹ãæ¯èŒ: Query 察 BatchGetItem ãµã€ããšåœã®çµã¿åããããšã« 500 æ¥åã®ããŒã¿ãååŸããåãšã³ããªãçŽ 200 ãã€ãã§ãããŠãŒã¹ã±ãŒã¹ãèããŠã¿ãŸãããã æ³š: RCU ã¯ã¢ã€ãã ãµã€ãºã«å¿ã㊠4 KB ãã£ã³ã¯ã§ã¹ã±ãŒã«ããŸããçµææŽåæ§ã®ããèªã¿åãã§ã¯ RCU ãååã«ãªããŸãã ã¢ãããŒã èªã¿åã API RCU èšç® æšå®ã³ã¹ã ãã©ãã PK BatchGetItem 500 ã¢ã€ãã à 1 RCU = 500 RCU $0.065 ã³ã³ããžãã PK + SK Query 100 KB / 4 KB = 25 RCU $0.00325 ç¯çŽ: ã³ã³ããžããããŒèšèšã䜿çšããããšã§ 20 å以äžå®äŸ¡ ã å
šäžçã®ãŠãŒã¹ã±ãŒã¹ ã³ã³ããžããããŒã¢ãã« ( PK = {site}_{country} ã SK = {date} ) ã¯ããµã€ããåœãæ¥ä»ç¯å²ã§ãã£ã«ã¿ãªã³ã°ãããäžè¬çãªã¯ãšãªãå¹ççã«ãµããŒãããŸããã å
šåœã«ããã蚪åããŒã¿ãã¯ãšãª ããå¿
èŠãããå Žåã«èª²é¡ãçããŸããäŸãã°ãexample.com ã®å
šäžçã®èšªåããå
šæéãŸãã¯ç¹å®ã®æ¥ä»ç¯å²ã§ååŸããå Žåã§ãã SELECT * WHERE Site = 'example.com' SELECT * WHERE Site = 'example.com' AND Date BETWEEN '2026-01-01' AND '2026-01-31' æ¢åã®ã¹ããŒãã§ã¯ã åœã³ãŒããããŒãã£ã·ã§ã³ããŒã«åã蟌ãŸã㊠ãããããã¯ããŒãã£ã·ã§ã³éã§æžã蟌ã¿ãšèªã¿åãã®è² è·ãåçã«åæ£ããããã«äžå¯æ¬ ã§ãããããããã¯ã ããŒã¿ãã¯ãšãªããã«ã¯åœãç¥ãå¿
èŠããã ããšãæå³ããã°ããŒãã«éèšã®ãŠãŒã¹ã±ãŒã¹ã«ã¯æãŸãããããŸããã ã·ã³ãã«ã§ããéå¹çãªè§£æ±ºçã¯ããã¹ãŠã®åœå¥ããŒãã£ã·ã§ã³ã«ããã£ãŠ Query API ã³ãŒã«ããã¡ã³ã¢ãŠã ããããšã§ãã # ãã¡ã³ã¢ãŠã Query: ãã¹ãŠã®åœã«ããããµã€ãã®èšªåãååŸ results = [] for country in country_codes: # ~200 ISO 3166 ã³ãŒã pk = f"example.com_{country}" response = query( TableName='TrafficTable', KeyConditionExpression="PK = :pk AND SK BETWEEN :start AND :end", ExpressionAttributeValues={ ":pk": pk, ":start": "2026-01-01", ":end": "2026-01-31" } ) results.extend(response['Items']) # åœã¬ãã«ã®ã¬ã³ãŒããéèšããŠåäžã®äžçèŠæš¡ãã¥ãŒã«ãã worldwide = {} for item in results: date = item['SK'] visits = item['visits'] worldwide[date] = worldwide.get(date, 0) + visits # worldwide = {"2026-01-01": 148200, "2026-01-02": 136400, ...} æ©èœçã«ã¯æ£ãããã®ã®ããã®ã¢ãããŒãã«ã¯ããã€ãã®æ¬ ç¹ããããŸãã é«ã³ã¹ã : ãµã€ã/æ¥ä»ã¯ãšãªããšã« 200 以äžã® Query ãªã¯ãšã¹ãã å¢å ããã¬ã€ãã³ã· : 200 ã®ã¯ãšãªã«ããã£ãŠçµæãã¯ãšãªãéèšããããšã§ãå¿çæéã倧å¹
ã«å¢å ããå¯èœæ§ããããŸãã BatchQueryItem ãªã : BatchGetItem ãšã¯ç°ãªããè€æ°ã® Query ãªã¯ãšã¹ããåäžã® API ã³ãŒã«ã«ãããåŠçãããã€ãã£ããªæ¹æ³ã¯ãããŸããã éçšãªãŒããŒããã : 200 以äžã®äžŠåã¯ãšãªã®ç®¡çã¯ãã¢ããªã±ãŒã·ã§ã³ã«è² è·ããããã¹ããããªã³ã°ã®ãªã¹ã¯ãå¢å ãããå¯èœæ§ããããŸãã ãã¡ã³ã¢ãŠãã®ã³ã¹ããšè€éããçºçãããã«å¹ççãªã°ããŒãã«ã¯ãšãªããµããŒããããããETL ããã»ã¹äžã«ç¹å¥ãªåæåœã³ãŒã (äŸ: 999) ãå°å
¥ããŸãããå®éã«ã¯ãETL ãã€ãã©ã€ã³ã®äžç°ãšããŠéèšãããäžçèŠæš¡ã¡ããªã¯ã¹ãäºåèšç®ããŠä¿åããå°çšã®ãã°ããŒãã«ãããŒãã£ã·ã§ã³ã«æžã蟌ã¿ãŸããããã¯ãäžçèŠæš¡ããŒã¿ã«æå®ãããããŒãã£ã·ã§ã³ã㌠PK = {site}_999 ã䜿çšããããšã§å®çŸããŸãã Primary key Visits TimeOnSite BounceRate PK SK example.com_840 2026-01-21 4 24 12.31 example.com_999 2026-01-23 33 17 16.5 ããã«ããã åäžã® Query ãªã¯ãšã¹ã ã§äžçèŠæš¡ããŒã¿ãã¯ãšãªã§ããŸãã Query(PK="example.com_999", SK BETWEEN "2026-01-01" AND "2026-01-31") ãã®ããã«ããŠãèªã¿åãæã®ããã©ãŒãã³ã¹ãªãŒããŒãããããªããè€æ°ã§ã¯ãªã 1 ã€ã® Query ãªã¯ãšã¹ãã䜿çšããããã³ã¹ããåæžãããŸãã ãã¡ãããã999ãã¢ãããŒãã«ãã³ã¹ããããããŸãããµã€ããšæ¥ä»ããšã«è¿œå ã®äžçèŠæš¡ããŒã«ã¢ãããèšç®ããå¿
èŠããããã ETL ã®è€éããå¢ãããµã€ãåœã¬ã³ãŒãããšã«è¿œå ã®ã¢ã€ãã ãæ°žç¶åããããã¹ãã¬ãŒãžãå¢ããŸããããã§ããã·ã¹ãã ããšã³ãããŒãšã³ãã§èŠããšãæãããªåå©ã§ããèªã¿åãæããæžãèŸŒã¿æã«äœæ¥ãã·ãããã200 以äžã®ãã¡ã³ã¢ãŠãã¯ãšãªã®å¿
èŠæ§ãæé€ããã¢ããªã±ãŒã·ã§ã³åŽã®ãªãŒã±ã¹ãã¬ãŒã·ã§ã³ãæžãããäžè²«ããŠããé«éãªäžçèŠæš¡èªã¿åããå®çŸããŸããå®éã«ã¯ã远å ã® ETL ãšã¹ãã¬ãŒãžã³ã¹ãã¯ã¯ãšãªã³ã¹ããšã¬ã€ãã³ã·ã®ç¯çŽã«ãã£ãŠäžåãããããããœãªã¥ãŒã·ã§ã³å
šäœãšããŠã¯ããå®äŸ¡ã§é«éã«ãªããŸãã æ¬¡ã®ã»ã¯ã·ã§ã³ã§ã¯ãåæããŒã¿ç§»è¡ã𿝿ã®ããŒã¿åã蟌ã¿äžã«æéãšã³ã¹ããç¯çŽããããã«ãDynamoDB ã®æ©èœãããã«ã©ã®ããã«å©çšããŠããããæ¢ããŸãã DynamoDB ãžã®æžã蟌㿠ãããåã蟌ã¿ã¯ç§ãã¡ã®åæãã€ãã©ã€ã³ã®å¿æã§ããç¶ç¶çãªã¹ããªãŒã ã§ã¯ãªããDatabricks äžã§æ¥æ¬¡ã鱿¬¡ãææ¬¡ã®ã¹ã±ãžã¥ãŒã«ã§ ETL Spark ãžã§ããããªã¬ãŒããã¹ã±ãžã¥ãŒã«ããã Apache Airflow Directed Acyclic Graphs (DAGs) ã«äŸåããŠããããããããäžæµæ©èœã®é®®åºŠèŠä»¶ã«åãããŠèª¿æŽãããŠããŸãããã¹ãŠã®å®è¡ã§ãããŒãã«ãèªã¿åããã©ãã£ãã¯ã«å¯ŸããŠã§ããã ãæ©ãæºåã§ããããã«ãçãæéãŠã£ã³ããŠå
ã« DynamoDB ã«æ°ååã®ã¢ã€ãã ããã°ãã°æ°ãã©ãã€ããããã·ã¥ããŸãã DynamoDB ã¯ãç°ãªãã¯ãŒã¯ããŒããã¿ãŒã³ã«å¯Ÿå¿ãã 2 ã€ã®ç°ãªã ãã£ãã·ãã£ã¢ãŒã ãæäŸããŠããŸãããªã³ããã³ãã¢ãŒãã¯ãµãŒããŒã¬ã¹ã§åŸé課éåã®ã¢ãã«ã§ããã©ãã£ãã¯éèŠã«åãããŠèªåçã«ã¹ã±ãŒã«ãããã£ãã·ãã£ãã©ã³ãã³ã°ã¯äžèŠã§ã䜿çšããåã®ã¿æ¯æããŸããäžæ¹ãããããžã§ã³ãã¢ãŒãã§ã¯ãåžæããèªã¿åããšæžã蟌ã¿ã®ã¹ã«ãŒããããäºåã«æå®ããå¿
èŠãããã課éã¯ãã®ããããžã§ã³ããããã£ãã·ãã£ã«åºã¥ããŠè¡ãããŸã (å®å
šã«äœ¿çšããããã©ããã«ããããã)ãç§ãã¡ã®ã±ãŒã¹ã§ã¯ãæžã蟌ãã¬ã³ãŒãã®ç·æ°ãšåã蟌ã¿ã®æéãŠã£ã³ããŠãæ¢ã«ããã£ãŠãããããå¿
èŠãªæžã蟌ã¿ãã£ãã·ãã£ãŠããããæ£ç¢ºã«èšç®ããŠèšå®ã§ããŸããããã«ãããã¹ã±ãžã¥ãŒã«ããããããããŒãã«å¯ŸããŠã¯ãããããžã§ã³ãã¢ãŒãã®ã»ãããªã³ããã³ãããã倧å¹
ã«ã³ã¹ãå¹çãè¯ããªããŸãã ãšã³ãããŒãšã³ãã®ãããã¯ãŒã¯ãã㌠Airflow ãããŒããã¹ã±ãžã¥ãŒã« DAG ãã©ã¡ãŒã¿ã«ã¯ãããŒãã«åãšãœãŒã¹ããèªã¿åãæ¥ä»ç¯å²ãå«ãŸããŸãã ãžã§ãã¯ããŒã¯ã®éè€ãé¿ããããã«ãããããŸãã Databricks Spark ã ETL ãå®è¡ Spark ã®ããŒãã£ã·ã§ã³ã¯ã䞊ååŠçãæå€§åããããã« DynamoDB ã®ããŒãã£ã·ã§ã³ããŒãšæŽåããŸãã DynamoDB Connector for Apache Spark ã䜿çšããŠãããããã¯æžã蟌ã¿ããããåããææ°ããã¯ãªãã«ãããªãã©ã€ããžãã¯ãåŠçããŸãã ãã£ãã·ãã£ã¯ãžã£ã¹ãã€ã³ã¿ã€ã ã§ã¹ã±ãŒã«ã¢ãã ã¿ãŒã²ãã DynamoDB ããŒãã«ãžã®æåã®æžã蟌ã¿ã®åã«ãã€ã³ãã©ã¹ã¯ãªããã UpdateTable ãåŒã³åºããŠããŒãã«ã®ããããžã§ã³ãæžã蟌ã¿ãã£ãã·ãã£ãã€ãŸãæžã蟌ã¿ãã£ãã·ãã£ãŠããã (WCU) ãèšç®ãããããŒã¯ãŸã§åŒãäžããŸããã¹ã¯ãªããã¯ãç®æšæéãšã¬ã³ãŒãæ°ã«åºã¥ããŠãã®ã¬ãã«ãèªåçã«èšå®ããŸãã ããŒã¿ã䞊åã«æžã蟌㿠DynamoDB Connector for Apache Spark ã䜿çšããããããžã§ã³ããã£ãã·ãã£ã«å¯æ¥ã«æŽåããã¹ã«ãŒãããã§ããŒã¿ãæžã蟌ã¿ãŸããéåžžãããããžã§ã³ãæžã蟌ã¿ãã£ãã·ãã£ã®çŽ 1.1 åãç®æšãšãããªãœãŒã¹ãååã«æŽ»çšãã€ã€æé©ãªå©çšçãéæãããããå¶åŸ¡ãããã¬ãã«ã®ã¹ããããªã³ã°ãåãå
¥ããŸãã ãã£ãã·ãã£ã¯èªåçã«ã¹ã±ãŒã«ããã¯ããŠã³ ETL ããã¹ãŠã®ã¬ã³ãŒãã®æžã蟌ã¿ãçµãããšãUpdateTable ãå床åŒã³åºããŠããããžã§ã³ããã£ãã·ãã£æžã蟌ã¿ã¬ãã«ãäžããåŸç¶ã¿ã¹ã¯ãã¹ã±ãžã¥ãŒã«ããŸãã def run_etl(table_name, records_count, target_duration_hours=1): # ã¹ããã 3 -- ãã£ãã·ãã£ããžã£ã¹ãã€ã³ã¿ã€ã ã§èšç®ããŠã¹ã±ãŒã«ã¢ãã desired_wcu = ceil(records_count / (target_duration_hours * 3600)) desired_wcu = clamp(desired_wcu, MIN_WCU, MAX_WCU) wait_until_table_is_active(table_name) current_wcu = describe_table(table_name).provisioned_write_capacity update_table(table_name, wcu=current_wcu + desired_wcu) # UpdateTable API wait_until_table_is_active(table_name) try: # ã¹ããã 4 -- Spark DynamoDB Connector ãä»ããŠããŒã¿ã䞊åã«æžã蟌㿠spark.write(target_table=table_name, write_throughput_ratio=1.1) # ããããžã§ã³ã WCU ã®çŽ 110% finally: # ã¹ããã 5 -- ãã£ãã·ãã£ãèªåçã«ã¹ã±ãŒã«ããã¯ããŠã³ update_table(table_name, wcu=current_wcu) # UpdateTable API wait_until_table_is_active(table_name) DynamoDB ããŒãã«ã®ããããžã§ã³ããã£ãã·ãã£ãèšç®ããŠã¹ã±ãŒã«ã¢ãããã Python ç䌌ã³ãŒã Amazon Simple Storage Service (Amazon S3) ããã® Import Table ã䜿çšãã DynamoDB ãžã®æžã蟌ã¿ã®æéãšã³ã¹ããããã«åæžãããããHBase ããã®ç§»è¡æããã³äžéšã®å®æçãªæžã蟌ã¿ã«ã DynamoDB Import from S3 æ©èœã䜿çšããŠãAmazon Simple Storage Service (Amazon S3) ããçŽæ¥ããŒã¿ãã€ã³ããŒãããŸãããããã«ãããã¬ã³ãŒãããšã®æžã蟌ã¿ãäžèŠã«ãªããåãèŸŒã¿æã«æžã蟌ã¿ãã£ãã·ãã£ãŠããããæ¶è²»ããããšããªããªããŸãã ã¡ãªãã ãã«ã¯åã蟌ã¿ã§ æå€§ 90% ã®ã³ã¹ãåæž ã ETL åã蟌ã¿ã®ããã® Databricks ã³ã³ãã¥ãŒãã£ã³ã°äœ¿çšãäžèŠ ã ãã€ãã£ãã€ã³ããŒãã«ãã£ãŠãªãã©ã€ããžãã¯ãé èœãããéçšãªãŒããŒããããåãé€ããã ç°¡çŽ åãããéçš ã åŸæ¥ã® Spark ãžã§ããšæ¯èŒã㊠ããé«éãªåã蟌㿠ã Import Table æ©èœã¯ãã¢ã€ãã ããšã®æžãèŸŒã¿æäœã§ã¯ãªããåã蟌ãŸããããŒã¿ã®ç·éã«åºã¥ããŠèª²éããããããç¹ã«ç§ãã¡ã®ã±ãŒã¹ã®ããã«å°ããªã¢ã€ãã ãæã€å€§ããªããŒãã«ãç§»è¡ããå Žåã倧å¹
ãªã³ã¹ãåæžãå®çŸããŸãã S3 ããã®ã€ã³ããŒãã¯ãŒã¯ãã㌠ETL åã®èªååã®äžç°ãšããŠãããŒã¿ã¯æå®ããã S3 ãã¹ããèªã¿åãããImport from S3 æ©èœã§ãµããŒããããŠãã DYNAMODB_JSON 圢åŒã«å€æãããŸãã æŽåœ¢ãããããŒã¿ã® S3 ãã¹ãšããŒãã«å®çŸ©ãæå®ã㊠ImportTable API ãåŒã³åºããŸãã ã¢ãã¿ãªã³ã°ã¿ã¹ã¯ãã€ã³ããŒãå®äºãŸã§é²æã远跡ããŸãã æéããšã«å¥ã
ã®ããŒãã«ã«ããŒã¿ãä¿åããã¿ã€ãã³ã° DynamoDB ã® Import from S3 æ©èœã¯ãå€§èŠæš¡ãªããã¯ãã£ã«ã«ãšã£ãŠã²ãŒã ãã§ã³ãžã£ãŒã§ãããéèŠãªå¶çŽããããŸããæ°ããããŒãã«ã«ã®ã¿ã€ã³ããŒãã§ãããšããç¹ã§ãããã®å¶éã¯ãããŒã¿ã»ãããèªç¶ã«æéã§ããŒãã£ã·ã§ã³åãããŠãããäž»ã«æè¿ã®æéã§ã¢ã¯ã»ã¹ãããå Žåã«ã¯æ©äŒãšãªããŸãã ææ¬¡ã®ããŒã¿ã»ããã§ã¯ãæå³çãªèšèšãæ¡çšããŸãããæããšã« 1 ã€ã®ããŒãã«ãäœæããImport from S3 ã䜿çšããŠãã®æã®ããŒã¿ãã€ã³ããŒãããããŒã¿ãå€ããªãã«ã€ããŠãããã®ããŒãã«ã®ã©ã€ããµã€ã¯ã«ã管çããŸãã ææ¬¡ããŒã¿ã«é©ããŠããçç± ãã®ã¢ãããŒããç¹ã«ææ¬¡ã¯ãŒã¯ããŒãã«é©ããŠããçç±ã¯ä»¥äžã®ãšããã§ãã ãã«ã¯ããŒãã颿£ç : åæã®ããŒã¿ã»ããã¯éåžžå®å
šãªããããšããŠçæããããããã€ã³ããŒãã®ã¯ãªãŒã³ãªåäœã«ãªããŸãã ã¯ãšãªæã®éçšã®ç°¡çŽ ã : ã¢ããªã±ãŒã·ã§ã³ã¯ãã³ãŒã«ãããŒã¿ãšãããããŒã¿ã 1 ã€ã®å€§ããªããŒãã«ã§æ··åšããã代ããã«ãé¢é£ããæéããŒãã«ã«ã¯ãšãªãã«ãŒãã£ã³ã°ã§ããŸãã ä¿åæé管çãç°¡åã« : å€ãã¢ã€ãã ãåé€ãã代ããã«ãæéåãã«ãªã£ãããŒãã«å
šäœãåé€ã§ããŸãã ã³ã¹ãæé©åã容æ : å€ãææ¬¡ããŒãã«ã¯ãã¢ããªã±ãŒã·ã§ã³ããžãã¯ã倿Žããããšãªãã幎霢ãéããã«ã€ã㊠Standard-IA ããŒãã«ã¯ã©ã¹ ã«ç§»è¡ã§ããã¹ãã¬ãŒãžã³ã¹ããåæžã§ããŸãã å®çšçãªåœåèŠåã«ãã£ãŠèªååã容æã«ãªããŸããäŸ: {table_name}_2026-01 ã ãšã³ãããŒãšã³ãã®å®è¡æ¹æ³ åæã«ã€ããŠãããŒã¿ã»ãããçæãããµããŒããããŠããã€ã³ããŒã圢åŒã® 1 ã€ã§ãã DynamoDB JSON ã«å€æããæ°ããææ¬¡ããŒãã«ã« ImportTable ãå®è¡ããŸãã ã€ã³ããŒãåŸãäžèŠã«ãªã£ãããŒãã«ãåé€ããä¿åæéããªã·ãŒãé©çšããŸãã å€ããªã£ãææ¬¡ããŒãã«ã Table Class Standard-IA ã«ç§»è¡ããŠã¹ãã¬ãŒãžã³ã¹ããç¯çŽããŸãã èŠæ±ãããæ¥ä»ç¯å²ãè€æ°ã®æã«ãŸãããå ŽåãAPI ã¯é¢é£ããææ¬¡ããŒãã«ã«ããã£ãŠã¯ãšãªããã¡ã³ã¢ãŠãããçµæãããŒãžããŸãã æéããŒã¹ã®ããŒãã«ã䜿çšãã¹ãã§ãªãå Žå ãã®ãã¿ãŒã³ã¯åŒ·åã§ãããäžèœã§ã¯ãããŸããã æ¥æ¬¡ã®ããŒã¿ã»ãã ã®å Žåã1 æ¥ããšã«ããŒãã«ãäœæãããšããŒãã«æ°ãççºããäžå¿
èŠãªéçšãªãŒããŒããããçºçããŸãããã®ãããªå Žåã¯ãåäžã®é·æéæå¹ãªããŒãã«ãç¶æããæšæºçãªåã蟌ã¿ãã¹ (Spark æžã蟌㿠+ ããããžã§ã³ããã£ãã·ãã£ã¹ã±ãŒãªã³ã°) ãç¶ããã»ããè¯ãã§ãã çµéšå æéãç²ã (ææ¬¡ä»¥äž) ã§ãããŒã¿ããã«ã¯ã§ããŒããããä¿åæéãããŒãã«ã¬ãã«ã§åŒ·å¶ã§ããå Žåã¯ã æéããšã«å¥ã
ã®ããŒãã«ãåªå
ããŠãã ããã æéã现ãããã (æ¥æ¬¡) å ŽåããŸãã¯åãç©çããŒãã«ãžã®ç¶ç¶çãªå¢åæžã蟌ã¿ãå¿
èŠãªå Žåã¯ã åäžã®ããŒãã«ãåªå
ããŠãã ããã çµè« æ¬èšäºã§ã¯ãSimilarweb ã Apache HBase ãã DynamoDB ã«ç§»è¡ããçµç·¯ã玹ä»ããŸããããã®ç§»è¡ã¯ãéçšãç°¡çŽ åããå¹ççã«ã¹ã±ãŒã«ããã€ã³ãã©ãªãŒããŒããããåæžããªãããå€§èŠæš¡ã«é«éã§ä¿¡é Œæ§ã®é«ãã€ã³ãµã€ããæäŸãç¶ããå¿
èŠæ§ã«ãã£ãŠæšé²ãããŸããã ã¬ã¬ã·ãŒã® HBase ã»ããã¢ããã¯åŒ·åã§ã¯ãããŸããããå¢å€§ãããããåã蟌ã¿ã¯ãŒã¯ãããŒãšåçã¯ãšãªèŠä»¶ã®ããŒãºã«å¿ããã®ã«èŠåŽããŠããŸãããå®å®æ§ãéçšã¡ã³ããã³ã¹ãã¹ã±ãŒãªã³ã°ã®éçãªã©ã®èª²é¡ããããã¢ãã³ãªãµãŒããŒã¬ã¹ã®ä»£æ¿æ¡ãæ±ãããã£ããã«ãªããŸããã DynamoDB ãæ¡çšããããšã§ã以äžãéæããŸããã ã€ã³ããªãžã§ã³ããªæžã蟌ã¿ããããžã§ãã³ã°ã䌎ã ETL ãžã§ãã䜿çšãã é«ããã©ãŒãã³ã¹ãªãããåã蟌㿠ã å€§èŠæš¡ã§å€æ§ãªã¯ãšãªãã¿ãŒã³ããµããŒããã æè»ã§ã³ã¹ãå¹çã®é«ãããŒã¿ã¢ããªã³ã° ã ãã«ãããŒãžãã§ãµãŒããŒã¬ã¹ãª DynamoDB ã¢ãŒããã¯ãã£ã«ãã éçšè² æ
ã®åæž ã Amazon S3 ããçŽæ¥ã€ã³ããŒãããããšã«ãã äœãéçšè² æ
ãšé«éãªå±¥æŽããŒã¿ç§»è¡ ã æåã®ã¯ã©ã¹ã¿ç®¡çãªãã§ã® ã·ã¹ãã ä¿¡é Œæ§ãšã¹ã±ãŒã©ããªãã£ã®åäž ã ãã®ç§»è¡ã¯ãããŒã¿ã€ã³ãã©ã®ããã©ãŒãã³ã¹ãšå®å®æ§ãåäžããããšã³ãžãã¢ãªã³ã°ããŒã ãæ©èœã®æ§ç¯ãšã€ãããŒã·ã§ã³ã®æšé²ã«éäžã§ããããã«ããŸãããDynamoDB ã¯ãç§ãã¡ã®åæãã€ãã©ã€ã³ã®åŒ·éã§ã³ã¹ãå¹çã®é«ãåºç€ã§ããããšã蚌æãããŠãããSimilarweb ãã客æ§ã«ã¿ã€ã ãªãŒã§å®è¡å¯èœãªããžã¿ã«ã€ã³ãµã€ããæäŸãããšããããã·ã§ã³ãæ¯ããŠããŸãã æ¬èšäºã¯ 2026 幎 06 æ 16 æ¥ ã«å
¬éããã âSimilarwebâs migration from HBase to Amazon DynamoDBâ ã翻蚳ãããã®ã§ãã åæ: https://aws.amazon.com/blogs/database/similarwebs-migration-from-hbase-to-amazon-dynamodb/ èè
ã«ã€ã㊠Idan Lahav Idan ã¯ãã«ã¢ãããæ ç¹ãšãã Similarweb ã® R&D ãã£ã¬ã¯ã¿ãŒã§ããããã¯ãšã³ãã€ã³ãã©ããã©ãããã©ãŒã åºç€ãããŒã¿ãšã³ãžãã¢ãªã³ã°ã«æ·±ãå°éç¥èãæã¡ãã¹ã±ãŒã©ãã«ãªããŒã¿ãã€ãã©ã€ã³ã¢ãŒããã¯ãã£ã®èšèšãšãé«ã¹ã«ãŒããããã©ãããã©ãŒã ã®è€éãªèª²é¡ã®è§£æ±ºã«æ³šåããŠããŸããæè¿ã® HBase ãã DynamoDB ãžã®ç§»è¡ã«ãããŠãIdan ã¯ç§»è¡ãå¯èœã«ããåºç€ãšãªãã€ã³ãã©åºç€ã®èšèšãšç®¡çãæ
åœããŸããã Leonid Koren Leonid 㯠AWS ã®ããªã³ã·ãã« NoSQL ãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã§ãã客æ§ã NoSQL ããŒã¿ããŒã¹ã䜿çšããŠæ¢åã®ã¢ããªã±ãŒã·ã§ã³ãã¢ããã€ãºããæ°ããã¢ããªã±ãŒã·ã§ã³ãèšèšããã®ãæ¯æŽããŠããŸããAWS ã«å
¥ç€Ÿããåã¯ã2000 幎代åé ããããã¯ãšã³ãã·ã¹ãã ã®èšèšãšéçºãè¡ã£ãŠããŸããã
æ¬èšäºã¯ 2026 幎 4 æ 17 æ¥ ã« AWS Migration & Modernization Blog ã§å
¬éãããã Modernize VB6 Applications at Scale with AWS Transform Custom ãã翻蚳ãããã®ã§ãã æ³å®æèŠæé : 90 ã 120 å ã¬ãã« : äžçŽ (400) Microsoft 㯠Visual Basic 6.0 (VB6) ã®å»¶é·ãµããŒãã 2008 幎ã«çµäº (*) ããŸããããéèãµãŒãã¹ãä¿éºããã«ã¹ã±ã¢ãè£œé æ¥ãªã©ãæ°åãã®ããã·ã§ã³ã¯ãªãã£ã«ã«ãªã¢ããªã±ãŒã·ã§ã³ãäŸç¶ãšã㊠VB6 ã«äŸåããŠããŸãããããã®ã¢ããªã±ãŒã·ã§ã³ã«ã¯æ°å幎åã®ããžãã¹ããžãã¯ãå«ãŸããŠããŸããã幎ã
ã¡ã³ããã³ã¹ãå°é£ã«ãªã£ãŠããŸããVB6 éçºè
ã¯åŽååžå Žã«æ®ã人æ°ãæžå°ããŠããããæ¡çšã³ã¹ããäžæãããããæªé©çšã®è匱æ§ã¯ã³ã³ãã©ã€ã¢ã³ã¹éåã®ãªã¹ã¯ãé«ããã¢ããªã·ãã¯ãªã¢ãŒããã¯ãã£ã¯ AIãã¢ããªãã£ã¯ã¹ãã¯ã©ãŠããµãŒãã¹ãšã®çµ±åãå°é£ã«ããŠããŸãã * 蚳泚ïŒå³å¯ã«ã¯ãVB6 ã® IDE ã®ãµããŒãã¯çµäºããŠãŸãããVB6 ã®ã©ã³ã¿ã€ã ã¯ãŸã ãµããŒãã¯ãããŠããŸããã©ã³ã¿ã€ã 㯠Windows ã®ã©ã€ãã¿ã€ã ã«åãããŠãµããŒãç¶ç¶ãããŠããŸããã察å¿ã¯é倧ãªã»ãã¥ãªãã£åé¡çã«éå®ãããŠããŸãã詳现㯠ãã¡ã ãåç
§ããŠãã ããã ãããã®èª²é¡ã¯ãAWS Transform custom ã§ã«ã¹ã¿ã 倿ãã©ã³ãäœæããããšã§è§£æ±ºã§ããŸãã ãã®èšäºã§ã¯ãAWS Transform custom ã®ãšãŒãžã§ã³ãã£ã㯠AI æ©èœã掻çšããŠãçµç¹åºæã®ããžãã¹ã«ãŒã«ãç¶æããªãã VB6 ã¢ããªã±ãŒã·ã§ã³ãå€§èŠæš¡ã«ã¢ããã€ãºããæ¹æ³ã玹ä»ããŸãã VB6 ã¢ããã€ãŒãŒã·ã§ã³ã®èª²é¡ VB6 ã¢ããªã±ãŒã·ã§ã³ã®ã¢ããã€ãŒãŒã·ã§ã³ã«ã¯ãåçŽãªæ§æå€æãè¶
ããåºæã®èª²é¡ããããŸãã AWS Transform for .NET 㯠.NET Framework ã¢ããªã±ãŒã·ã§ã³ã®èªåããŒãã£ã³ã°ãæäŸããŠããŸãããVB6 ã«ã¯åºæã®ç¹æ§ããããããç°ãªãã¢ãããŒããå¿
èŠã§ãã VB6 ã®ã¢ããã€ãŒãŒã·ã§ã³ã§ã¯ãã¬ã¬ã·ãŒãã©ãããã©ãŒã ãšã¢ãã³ãª .NET ã®éã«ããæ ¹æ¬çãªã¢ãŒããã¯ãã£ã®éãã«å¯ŸåŠããå¿
èŠããããŸããèšèªã¬ãã«ã§ã¯ãVB6 ã®æç¶ãåããã³ COM ããŒã¹ã®ãã¿ãŒã³ããªããžã§ã¯ãæåã® C# æ§é ã«ãããã³ã°ããå¿
èŠããããŸãããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ããActiveX ã³ã³ãããŒã«ã䜿çšãã VB6 ãã©ãŒã ãã Blazor ã ASP.NET Core MVC ãªã©ã®ã¢ãã³ãª Web ãã¬ãŒã ã¯ãŒã¯ãžã®å€æãå¿
èŠã§ããããŒã¿ã¢ã¯ã»ã¹ãã¿ãŒã³ã¯ã¬ã¬ã·ãŒãª ADO ã DAO ãã Entity Framework Core ã® async/await ãã¿ãŒã³ã«ç§»è¡ããCOM äŸåé¢ä¿ã¯ .NET ãã€ãã£ãã®ä»£æ¿ææ®µã NuGet ããã±ãŒãžã«çœ®ãæããå¿
èŠãããããšã©ãŒãã³ããªã³ã°ã¯ On Error Resume Next ã On Error GoTo ãã¿ãŒã³ããæ§é åããã try-catch äŸå€åŠçã«ç§»è¡ããŸãã ãµã³ãã«ã¢ããªã±ãŒã·ã§ã³ã®çŽ¹ä» Salmon King Seafood (SKS) ãšãã VB6 Multiple Document Interface (MDI) ã¢ããªã±ãŒã·ã§ã³ã䜿ã£ãŠ AWS Transform custom ã解説ããŸããããã¯å
žåçãªãšã³ã¿ãŒãã©ã€ãºã¢ããã€ãŒãŒã·ã§ã³ã®èª²é¡ã衚ãã¢ããªã±ãŒã·ã§ã³ã§ããSKS ã¯ä»¥äžã®ç¹åŸŽãæã€æ°Žç£ç©å泚管çã·ã¹ãã ã§ãã 15 以äžã® VB6 ãã©ãŒã â åæ³šã顧客管çãååã«ã¿ãã°ãåšåº«ç®¡çãæ¿èªã¯ãŒã¯ãããŒãå«ã 3 ã€ã® VB6 ã¢ãžã¥ãŒã« (modConnection.basãmodFunctions.basãmodMain.bas) â å
±æããžãã¹ããžãã¯ãšããŒã¿ããŒã¹æ¥ç¶ãå«ã SQLite ããŒã¿ããŒã¹ (Orders.db) â ADO ããŒã¿ã³ã³ãããŒã«ãšããŒã¿ãã€ã³ãã£ã³ã°ãéããŠã¢ã¯ã»ã¹ æšæº VB6 ã³ã³ãããŒã« â MSFlexGridãListViewãToolbarãImageListãComboBoxãControl Arrays ãå«ã MDI ã¢ãŒããã¯ã㣠â ã¡ã€ã³ã³ã³ãããã©ãŒã ãšã¡ãã¥ãŒããããªã¬ãŒãããåãã©ãŒã ãã®ã¢ããªã±ãŒã·ã§ã³ã¯ããšã³ã¿ãŒãã©ã€ãºã¢ããªã±ãŒã·ã§ã³ã§ããèŠããã VB6 ãã¿ãŒã³ãå®è£
ããŠããŸãã ã€ãã³ããã³ãã©ãæã€ãã©ãŒã ããŒã¹ã® UI ããŒã¿ãã€ã³ãã£ã³ã°ã䜿çšãã ADO ããŒã¿ã¢ã¯ã»ã¹ COM ããŒã¹ã®ã³ã³ãããŒã« ã¢ãžã¥ãŒã«å
ã®æç¶ãåããžãã¹ããžã㯠ãããã®èŠçŽ ã«ãããSKS ã¯ãšã³ã¿ãŒãã©ã€ãº VB6 ã¢ããã€ãŒãŒã·ã§ã³ã§ééããè€éãã代衚ãããã®ãšãªã£ãŠããŸãã ãœãªã¥ãŒã·ã§ã³æŠèŠ VB6 ãã C# ãžã®ã¢ããã€ãŒãŒã·ã§ã³ã«ã¯ãAWS Transform custom ã®è€éãªå€æãã¿ãŒã³ã®åŠç¿ã»é©çšæ©èœã掻çšã§ããŸãããšã³ãããŒãšã³ãã®ããã»ã¹ã¯ä»¥äžã®ã¹ããŒãžã«åŸããŸãã è©äŸ¡ â VB6 ã¢ããªã±ãŒã·ã§ã³ããŒããã©ãªãªã®ã¹ã³ãŒããšè€éããè©äŸ¡ãã å®çŸ© â VB6 ãã C# ãžã®å€æãã¿ãŒã³ãããžãã¹ã«ãŒã«ãã³ãŒãã£ã³ã°æšæºãå«ãã«ã¹ã¿ã 倿ãå®çŸ©ãã å®è¡ â å€§èŠæš¡ã«å€æãå®è¡ãã ã¬ãã¥ãŒãšå埩 â ãã£ãŒãããã¯ã«ãŒãã«ããç¶ç¶çãªæ¹åãè¡ããªããã¬ãã¥ãŒãšå埩ãè¡ã ãã®ã¢ãŒããã¯ãã£ã«ããã倿å®çŸ©ãäžåºŠäœæããŠãã¹ãããæ°çŸã®ã¢ããªã±ãŒã·ã§ã³ã«é©çšã§ããŸãã åææ¡ä»¶ éå§ããåã«ã以äžã確èªããŠãã ããã AWS Transform Custom ãžã®ã¢ã¯ã»ã¹æš©ãæã€ AWS ã¢ã«ãŠã³ã ãçŸåšã®æéã®è©³çްã«ã€ããŠã¯ãAWS Transform ã®æéããŒãžãã芧ãã ããã ATX CLI (Command Line Interface) ãã€ã³ã¹ããŒã«ããã MacOS ãŸã㯠Linux ç°å¢ã詳现ãªã»ããã¢ããæé ã«ã€ããŠã¯ã AWS Transform custom åææ¡ä»¶ã¬ã€ã ãåç
§ããŠãã ããã **Windows éçºè
ã®å Žå** : WSL2 (Windows Subsystem for Linux) ãã€ã³ã¹ããŒã«ããUbuntu ãŸãã¯ãã®ä»ã® Linux ãã£ã¹ããªãã¥ãŒã·ã§ã³ãã ATX CLI ãå®è¡ããŠãã ãããCLI 㯠`/mnt/c/` ãã¹ãéããŠããŒã«ã«ã³ãŒãããŒã¹ãçŽæ¥æäœããŸãã 倿åŸã®ã¢ããªã±ãŒã·ã§ã³ããã¹ãããããã® .NET 10 SDK 以é ã³ãŒãã¬ãã¥ãŒçšã® Visual Studio 2022 以éãŸã㯠Visual Studio Code VB6 ããã³ .NET ã®éçºç¥è æå¹ãªèªèšŒæ
å ±ãèšå®ãããŠãã Git ãããããš ç°å¢ã®æºå Salmon King Seafood (SKS) ãµã³ãã«ã¢ããªã±ãŒã·ã§ã³ãããŠã³ããŒãããŸããããã«ã¯ãå
žåçãªãšã³ã¿ãŒãã©ã€ãº VB6 ã¯ãŒã¯ããŒãã代衚ãã VB6 MDI ã¢ããªã±ãŒã·ã§ã³ãå«ãŸããŠããŸãã ãªããžããªãããŒã«ã«ãã·ã³ã«ã¯ããŒã³ããŸãã git clone https://github.com/GAPVelocityAI/SKSVB6.git cd SKSVB6 Windows ã§ WSL2 ã䜿çšããŠããå Žåã¯ãäž¡æ¹ã®ç°å¢ããã¢ã¯ã»ã¹å¯èœãªãã¹ã«ã¯ããŒã³ããŸãã git clone https://github.com/GAPVelocityAI/SKSVB6.git /mnt/c/Projects/SKSVB6 cd <path-to-repository> ãªããžããªã®å
容ã確èªããŸããVB6 ãããžã§ã¯ããã¡ã€ã« (SKS.vbp)ããã©ãŒã ãã¡ã€ã« (.frm/.frx)ãã¢ãžã¥ãŒã« (.bas)ãSQLite ããŒã¿ããŒã¹ (Orders.db) ã衚瀺ãããŸãã ls -la *.vbp *.frm *.bas *.db å€æè¿œè·¡çšã«ãªããžããªãåæåããŸãã git add . git commit -m "Baseline before VB6 to C# transformation" 次ã«ããªãã¡ã¬ã³ã¹ããã¥ã¡ã³ããå«ããªããžããªãã¯ããŒã³ããŸãããã®ãªããžããªã«ã¯ãAWS Transform ã«ã³ã³ããã¹ããšããŠæž¡ãããžãã¹ã«ãŒã«ãšå€æäŸãå«ãŸããŠãããçµç¹ã®æšæºã«åã£ãã³ãŒããçæããŸãã git clone -b dotnet-transform-custom https://github.com/aws-samples/dotnet-genai-samples.git ãŠã©ãŒã¯ã¹ã«ãŒ 以äžã®ã»ã¯ã·ã§ã³ã§ã¯ãAWS Transform CLI ã䜿çšã㊠VB6 ã³ãŒããã¢ãã³ãª C# ãããžã§ã¯ãã«å€æããæé ã説æããŸãã ã¹ããã 1: VB6 ã¢ããªã±ãŒã·ã§ã³ãè©äŸ¡ãã 倿å®çŸ©ãäœæããåã«ãVB6 ããŒããã©ãªãªã®ã¹ã³ãŒããšè€éããææ¡ããŸããSKS ãªããžããªãã¯ããŒã³ããç¶æ
ã§ãATX CLI ãèµ·åããŠè©äŸ¡ãéå§ããŸãã atx custom def exec -p <path-to-repository> \ -n 'AWS/early-access-comprehensive-codebase-analysis' \ -t ãã©ã¡ãŒã¿ : -p: ãœãŒã¹ãããžã§ã¯ãã®ãã¹ (ã¯ããŒã³ãã SKS ãªããžããª) -n: 倿å®çŸ©å -t: 倿ã«é¢ãããã¹ãŠã®ããŒã«ãä¿¡é Œããå®è¡äžã« AWS Transform ãèš±å¯ãæ±ããŠäžæåæ¢ããã®ãé²ã 泚æ ïŒ2026 幎 5 æ 1 æ¥æç¹ã§ã¯ã倿å®çŸ©å㯠AWS/early-access-comprehensive-codebase-analysis ãã AWS/comprehensive-codebase-analysis ã«å€æŽã«ãªã£ãŠããŸã AWS Transform custom ã¯ãã·ã§ã«ã¹ã¯ãªãããªã©ã®ç¹å®ã®ã¢ã¯ã·ã§ã³ãå®è¡ããããã«èš±å¯ãå¿
èŠãšããŸããäžèšã®ã³ãã³ãã® ât åŒæ°ã«ãããããŒã«ã¯ãŠãŒã¶ãŒã«ç¶ç¶çã«ããã³ããã衚瀺ããããšãªãå®è¡ã§ããŸãã è©äŸ¡ã§ã¯ SKS ãããžã§ã¯ããåæãããã©ãŒã æ° (15 以äž)ãã¢ãžã¥ãŒã«æ° (3)ãCOM ã³ã³ããŒãã³ãã®äŸåé¢ä¿ (MSFlexGridãListView)ãããŒã¿ããŒã¹ã¢ã¯ã»ã¹ãã¿ãŒã³ (ADO with SQLite)ãæšå®å€æè€é床ã¹ã³ã¢ãå«ãå
æ¬çãªã¬ããŒããçæããŸãã ãã®è©äŸ¡ã¬ããŒãã䜿çšããŠãVB6 ã¢ããªã±ãŒã·ã§ã³ã倿ããéã« AWS Transform custom ã«è¿œå ã®ã³ã³ããã¹ããæäŸããŸãã ã¹ããã 2: VB6 ãã C# ãžã®ã«ã¹ã¿ã 倿å®çŸ©ãäœæãã æ¬¡ã«ãVB6 ããã¢ãã³ãª C# ãžã®å€æãã¿ãŒã³ãšã«ãŒã«ããã£ããã£ããã«ã¹ã¿ã 倿å®çŸ©ãäœæããŸããAWS Transform custom ã¯ãæäŸãããäŸãããã¥ã¡ã³ããããžãã¹ã«ãŒã«ããåŠç¿ãããããã®ãã¿ãŒã³ãäžè²«ããŠé©çšããŸãã 察話å CLI ãèµ·åããŸãã atx -t ããã³ããã衚瀺ããããã倿ã®èª¬æãšã㊠VB6 to C# ASP.NET Core web application migration ãšå
¥åããŸããAWS Transform custom ã¯æ¢åã®å€æãæ€çŽ¢ãããã®ç¹å®ã®ã·ããªãªã«è©²åœãããã®ãèŠã€ãããªãå Žåãã«ã¹ã¿ã 倿ãäœæãããã©ãããå°ããŸãããcreate a new oneããšå
¥åããŠç¢ºèªããŸãã å³ 1 â atx cli ã®èµ·å 倿ã³ã³ããã¹ããšããžãã¹ã«ãŒã«ã®æäŸ AWS Transform custom ã¯ãããã¥ã¡ã³ããç§»è¡ã¬ã€ãããµã³ãã«ã³ãŒãã®æäŸãæ±ããŸããããã§çµç¹åºæã®èŠä»¶ã远å ããŸããSKS ã¢ããªã±ãŒã·ã§ã³ã«ã€ããŠã¯ããã®ã¢ãŒããã¯ãã£ã«é¢ããã³ã³ããã¹ããæäŸããŸãã Salmon King Seafood (SKS) ãšãã VB6 MDI ã¢ããªã±ãŒã·ã§ã³ããããŸãããœãŒã¹ã³ãŒã㯠<path-to-repository> ã«ãããŸããæ³šæåä»ã顧客管çã補åã«ã¿ãã°ãåšåº«ç®¡çãæ¿èªã¯ãŒã¯ãããŒãªã©ã15 以äžã®ãã©ãŒã ããããŸãã3 ã€ã®ã¢ãžã¥ãŒã« (ããŒã¿ããŒã¹æ¥ç¶çšã® modConnection.basããŠãŒãã£ãªãã£é¢æ°çšã® modFunctions.basãã¢ããªã±ãŒã·ã§ã³ã®ãšã³ã㪠ãã€ã³ãçšã® modMain.bas) ã䜿çšããŠããŸããããŒã¿ããŒã¹ã¯ SQLite ã§ãããŒã¿ ãã€ã³ãã£ã³ã°ã䜿çšãã ADO ããŒã¿ ã³ã³ãããŒã«ãä»ããŠã¢ã¯ã»ã¹ããŸããã³ã³ãããŒã«ã«ã¯ãMSFlexGridãListViewãToolbarãImageListãããã³ã³ã³ãããŒã« ã¢ã¬ã€ãå«ãŸããŸããããã .NET 10 ãã¿ãŒã²ãããšãã ASP.NET Core Blazor Server ã¢ããªã±ãŒã·ã§ã³ã«å€æããŠãã ããã çµç¹åãã®ç§»è¡ãã¿ãŒã³ã®ã«ã¹ã¿ãã€ãº ç§»è¡ã®ç²ŸåºŠãåäžãããããã«ãçµç¹åºæã®ãããã³ã°ã«ãŒã«ãæäŸããŸãããããã¯ãŠãŒã¶ãŒãäœæããããŒã¯ããŠã³ãã¡ã€ã«ã§ãAWS Transform custom ããããã³ããã衚瀺ãããéã«åç
§ããŸããAWS Transform custom ã¯ãããã倿ãã©ã³ã«çµã¿èŸŒã¿ãŸããããã³ããã衚瀺ããããã察話åã»ãã·ã§ã³äžã« VB6 ãœãŒã¹ã³ãŒããšãšãã«ãããã®ãã¡ã€ã«ãåç
§ããŸãã å³ 2 â 倿ãã©ã³ãžã®ããžãã¹ã«ãŒã«ããã®ä»ã®ã³ã³ããã¹ãã®è¿œå 倿äŸã®åç
§ <path-to-repository>/dotnet-genai-samples/src/Amazon.GenAI.TransformCustom/vb6-csharp-references/example-transformations.md ãã¡ã€ã«ã確èªããŸããATX ãšãŒãžã§ã³ãããµã³ãã«å€æãæ±ããããã³ããã衚瀺ãããã以äžã®ããã«åç
§ããŸãã 倿ååŸã®äŸã¯ã<path-to-repository>/dotnet-genai-samples/src/Amazon.GenAI.TransformCustom/vb6-csharp-references/example-transformations.md ã«ãããŸãã äŒæ¥ã³ãŒãã£ã³ã°èŠçŽã®åç
§ AWS Transform custom ã§ã¯ãçµç¹ã®ã³ãŒãã£ã³ã°èŠçŽã倿ã«äœ¿çšããããšã§ã³ãŒãçæãå¶åŸ¡ã§ããŸããããã«ã¯ç¹å®ã® C# ã®æ©èœãèŠçŽãå«ããããšãã§ããŸããAWS Transform custom ã¯ãããã䜿çšããŠãããŒã ã®ã¹ã¿ã€ã«ã«åã£ãã³ãŒããçæããŸãã<path-to-repository>/dotnet-genai-samples/src/Amazon.GenAI.TransformCustom/vb6-csharp-references/coding-standards.md ãã¡ã€ã«ã確èªããŸããçµç¹ã®ãã©ã¯ãã£ã¹ã«åãããŠç¬èªã®èŠçŽãäœæã§ããŸãã äŸ : <path-to-repository>/dotnet-genai-samples/src/Amazon.GenAI.TransformCustom/vb6-csharp-references/coding-standards.md ã§å®çŸ©ãããŠããã³ãŒãã£ã³ã°èŠçŽãé©çšããŠãã ããã ã¿ãŒã²ããã¢ãŒããã¯ãã£ä»æ§ã®åç
§ ãªãã·ã§ã³ãšããŠã <path-to-repository>/dotnet-genai-samples/src/Amazon.GenAI.TransformCustom/vb6-csharp-references/target-architecture.md ã«ãããããªãæãŸããåºåã¢ãŒããã¯ãã£ãèšè¿°ããããã¥ã¡ã³ãã䜿çšã§ããŸãã AWS Transform custom ã¯åç
§ããããã¹ãŠã®ãã¡ã€ã«ãèªã¿åããçµç¹ã®ãã¿ãŒã³ãèŠçŽãã¢ãŒããã¯ãã£ã«åã£ã倿ãã©ã³ãçæããŸãã çæããã倿å®çŸ© ããªãã®å
¥åã«æ
å ±ã«åºã¥ããŠãAWS Transform custom ã¯ãã§ãŒãºããšã«æŽçãããå
æ¬çãªå€æå®çŸ©ãçæããŸãã ãã§ãŒãº 1 â åæ : VB6 ã³ã³ããŒãã³ãã®ã€ã³ãã³ããªãäŸåé¢ä¿ã®ç¹å®ãäŸåé¢ä¿ã°ã©ãã®äœæ ãã§ãŒãº 2 â ãããžã§ã¯ãæ§é : ASP.NET Core Blazor Server ãããžã§ã¯ãã®çæãNuGet ããã±ãŒãžã®èšå®ãäŸåæ§æ³šå
¥ã®ã»ããã¢ãã ãã§ãŒãº 3 â ããŒã¿ã¬ã€ã€ãŒ : ADO/DAO ãã Entity Framework Core ãžã®å€æãDbContext ãšãšã³ãã£ãã£ã¢ãã«ã®çæ (é©åãªå Žå㯠record åã䜿çš) ãã§ãŒãº 4 â ããžãã¹ããžã㯠: ã¢ãžã¥ãŒã«ãããµãŒãã¹ã¯ã©ã¹ãžã®å€æ (ãã©ã€ã㪠ã³ã³ã¹ãã©ã¯ã¿ãŒã䜿çš)ã颿°ãã async ã¡ãœãããžã®å€æ ãã§ãŒãº 5 â UI ã¬ã€ã€ãŒ : VB6 ãã©ãŒã ãã Blazor ã³ã³ããŒãã³ããžã®å€æãã€ãã³ããã³ãã©ã®å€æ ãã§ãŒãº 6 â æ€èšŒ : ãã«ãæåã®ç¢ºèªããŠããããã¹ãã®çæãæ©èœçç䟡æ§ã®ãã¹ã 倿å®çŸ©ãããã«é©çšããããã¬ãã¥ãŒããŠä¿®æ£ããããã¬ãžã¹ããªã«å
¬éããŠåå©çšããããæ°ãããã©ã³ãéå§ããããéžæã§ããŸããæ¬¡ã®ã¹ãããã§ã¯ãå€§èŠæš¡ã«åå©çšã§ããããã«å€æå®çŸ©ãå
¬éããŸãã AWS Transform custom ã¯å€æãã©ã³ã®ååãšèª¬æãææ¡ããŠããŸãããã®ãŸãŸåãå
¥ããããå¿
èŠã«å¿ããŠä¿®æ£ã§ããŸããããã§å€æå®çŸ©ãããŒã å
šäœã§å©çšå¯èœã«ãªããŸãã ã«ã¹ã¿ã 倿å®çŸ©ã®è¡šç€ºãšç®¡ç å
¬éåŸã察話åãšãŒãžã§ã³ããŸãã¯ä»¥äžã® CLI ã³ãã³ãã䜿çšããŠãã«ã¹ã¿ã 倿å®çŸ©ãšå©çšå¯èœãªãã¹ãŠã® AWS ãããŒãžã倿ã衚瀺ã§ããŸãã atx custom def list å³ 3 â ãŠãŒã¶ãŒãäœæããã«ã¹ã¿ã 倿ãã©ã³ã®äžèЧ ãã®ã³ãã³ãã¯ãAWS ãããŒãžã倿 (AWS/ ãã¬ãã£ãã¯ã¹ä»ã) ãšã«ã¹ã¿ã å®çŸ©ã®å€æã®äž¡æ¹ã衚瀺ããŸããã«ã¹ã¿ã å®çŸ©ã®äžã« VB6-to-CSharp-Blazor-Migration 倿ãã©ã³ã衚瀺ãããŸãã ã¹ããã 3: 倿ãå®è¡ãã ã«ã¹ã¿ã 倿å®çŸ©ãå
¬éããããVB6 ã¢ããªã±ãŒã·ã§ã³ã®ã¢ããã€ãŒãŒã·ã§ã³ãå®è¡ã§ããŸããããã³ããã衚瀺ããããããããžã§ã¯ãã«å¯ŸããŠå€æãã©ã³ãå®è¡ããŸãããªããžããªãžã®ãã¹ãšã倿åŸã«ãããžã§ã¯ãããã«ãããããã®ãã«ãã³ãã³ããäžããå¿
èŠããããŸãã å³ 4 â å€æãæ€èšŒããããã®ãã«ãã³ãã³ãã®è¿œå 以äžã®ã³ãã³ãã䜿çšããŠå€æãã©ã³ãçŽæ¥ã¿ãŒããã«ããå®è¡ããããšãã§ããŸãã atx custom def exec -p <path-to-repository>\ -n 'VB6-to-CSharp-Blazor-Migration' \ -t AWS Transform custom ãèªèãã¹ã远å ã®ã³ã³ããã¹ããæäŸãããã©ãããå°ããããŸããããã¯ãä¿åããã倿å®çŸ©ã«ã¯å«ãŸããªããã®å Žéãã®ã³ã³ããã¹ã (ã³ãŒãåæã§çæãããããã¥ã¡ã³ããªã©) ãæäŸããå Žåã«äŸ¿å©ã§ãã å³ 5 â 倿ãã©ã³çæåã®è¿œå ã³ã³ããã¹ãã®è¿œå ããã³ããã«åçãããšãAWS Transform ã¯å®è¡ãŸãã¯ã¬ãã¥ãŒã»ä¿®æ£ããããã®å€æãã©ã³ãçæããŸãã å³ 6 â 倿ãã©ã³ã®ã¬ãã¥ãŒãŸãã¯ç¶è¡ 倿ãã©ã³ã®å
容ã«åé¡ãªããã° ç¶è¡ãã 倿ãšãŒãžã§ã³ã㯠SKS ãããžã§ã¯ãã®æ§é ãåæããMDI ã³ã³ãã (frmMain.frm)ãåãã©ãŒã ãã¢ãžã¥ãŒã«ãããŒã¿ããŒã¹ãã¿ãŒã³ãç¹å®ããŠããã倿å®çŸ©ãé©çšããŸãããšãŒãžã§ã³ãã¯ä»¥äžã倿ããŸãã frmMain.frm (MDI ã³ã³ãã) â ããã²ãŒã·ã§ã³ã¡ãã¥ãŒä»ãã® Blazor MainLayout.razor frmCustomers.frmãfrmProviders.frm ãªã© â åå¥ã® Blazor ããŒãžã³ã³ããŒãã³ã modConnection.bas â Entity Framework Core ãš SQLite ãããã€ããŒã䜿çšãã SksDbContext.cs modFunctions.bas â ãã¡ã€ã³ããšã«æŽçãããæ¡åŒµã¡ãœããã¯ã©ã¹ MSFlexGrid ããŒã¿ã°ãªãã â ããŒã¿ãã€ã³ãã£ã³ã°ä»ãã® Blazor ããŒãã«ã³ã³ããŒãã³ã ADO ããŒã¿ã³ã³ãããŒã« â async/await ã䜿çšãã Entity Framework Core ã¯ãšãª ã¹ããã 4: ã¬ãã¥ãŒããã¹ããå埩 倿ãå®äºãããšãAWS Transform custom ã¯å€æãããã³ãŒããæ°ãããã©ã³ããŸãã¯ãã£ã¬ã¯ããªã«åºåãã倿ã¬ããŒããšæåä¿®æ£ã®æ¬¡ã®ã¹ããããæç€ºããŸãã å€æçµæã®ã¬ãã¥ãŒ 倿ã¬ããŒãã«ã¯ã以äžãå«ãçµäºåºæºã®æ€èšŒãå«ãŸããŸãã dotnet build ããšã©ãŒãŒãã§æå ãã¹ãŠã® VB6 ãã©ãŒã ã Blazor ã³ã³ããŒãã³ãã«å€ææžã¿ (äŸ: frmCustomers.frm â Customers.razorãfrmOrderReception.frm â OrderReception.razor) ããŒã¿ã¢ã¯ã»ã¹ã¬ã€ã€ãŒã Entity Framework Core ãš SQLite ãããã€ããŒããã³ async ãã¿ãŒã³ãäœ¿çš (ADO/ADODC ããŒã¿ã³ã³ãããŒã«ã眮æ) COM äŸåé¢ä¿ã®æé€ â MSFlexGrid 㯠Blazor ããŒãã«ã³ã³ããŒãã³ãã«ãToolbar/ImageList 㯠Blazor ããã²ãŒã·ã§ã³ã«çœ®æ ãšã©ãŒãã³ããªã³ã°ã On Error æããæ§é åããã try-catch äŸå€åŠçã«å€æ 仿§ã«åŸã£ãã¢ãã³ãª C# æ©èœã®é©çš (ã¬ã³ãŒãåããã©ã€ããªã³ã³ã¹ãã©ã¯ã¿ãŒããã¿ãŒã³ãããã³ã°) modConnection.bas ã IDbContextFactory<SksDbContext> ã䜿çšããç»é²æžã¿ Dependency Injection (DI) ãµãŒãã¹ã«å€æ AWS Transform 㯠1 åã®å®è¡ã§æ€èšŒåºæºãæºãããªãå ŽåããããŸãã倿ã®å®è¡åŸãæåããéšåãšå€±æããéšåã®ãµããªãŒãå«ãéšåçãªå€æçµæãåŸãããããšããããŸãã以äžã«å€æçµæã瀺ããŸãã å³ 7 â å®äºããå€æçµæ ãã£ãŒãããã¯ããã³ãããããæªéæã®åºæºã«å¯ŸåŠããããã«å€æãåå®è¡ã§ããŸãã倿ããã SKS ã¢ããªã±ãŒã·ã§ã³ãæ€èšŒããã«ã¯ãã¿ãŒããã«ã«åãæ¿ããŠä»¥äžãå®è¡ããŸãã cd <path-to-your-project> dotnet build dotnet run ãã©ãŠã¶ã§ https://localhost:<port> ã«ã¢ã¯ã»ã¹ãã以äžã«ç€ºãããã« Blazor ã¢ããªã±ãŒã·ã§ã³ãåæ³šã顧客管çãååã«ã¿ãã°ã®ããŒãžãæ£ããã¬ã³ããªã³ã°ããããšã確èªããŸãã å³ 8 â è«æ±æžäœæããŒãž å³ 9 â æ³šæäœæããŒãž æ©èœãäžè¶³ããŠããå Žåã¯ãCLI ã«ãã£ãŒãããã¯ãè¿ããŠå€æçµæãç¹°ãè¿ãæ¹åããŸãã Transform ã³ãã³ãã®ããã©ãŒãã³ã¹ Transform custom ã³ãã³ãã¯ãå€æå¯Ÿè±¡ã®ã³ãŒãããŒã¹ã®ãµã€ãºã«å¿ããŠãå®äºãŸã§ã«æå€§ 60 åãããå ŽåããããŸããã³ãŒããã¡ã€ã«ãäŸåé¢ä¿ãå€ãå€§èŠæš¡ãªãããžã§ã¯ãã§ã¯ãåœç¶ãªããããå€ãã®åŠçæéãå¿
èŠã«ãªããŸãã 倿ã®å¶éäºé
ã«ã€ã㊠Transform custom ã®æ©èœã§ã¯ãVB6 ã¢ããªã±ãŒã·ã§ã³ã®ãã¹ãŠã®æ©èœãèªåçã«å€æã§ãããšã¯éããŸããã倿å®äºåŸããœãŒã¹ã® VB6 ã¢ããªã±ãŒã·ã§ã³ãšå€æå
ã® C# ã¢ããªã±ãŒã·ã§ã³éã®æ©èœãæ¯èŒã»æ€èšŒããå¿
èŠããããŸãã倿ãããªãã£ãäžè¶³æ©èœã«ã€ããŠã¯ã Kiro ã Amazon Q Developer ãªã©ã® AI æèŒããŒã«ã䜿çšããŠããœãŒã¹ãã倿å
ã®ã³ãŒãããŒã¹ãžã®å€æã»ç§»æ€ãæ¯æŽã§ããŸãã ãŠããããã¹ãã®éèŠæ§ ãŠããããã¹ãã¯ã倿ããã»ã¹å
šäœãéããŠæ©èœã®æ£åœæ§ãæ€èšŒããŸãã倿ãããã³ãŒããå
ã® VB6 ã¢ããªã±ãŒã·ã§ã³ãšåäžã®åäœãããããšã確èªãã倿äžã«å°å
¥ãããäžäžèŽããªã°ã¬ãã·ã§ã³ãè¿
éã«ç¹å®ããã®ã«åœ¹ç«ã¡ãŸãã倿åã«äžé£ã®ãã¹ããæŽåããŠãã ãããããããªã°ã¬ãã·ã§ã³ãã¹ãã®åºæºãšãªãã倿åŸãåçã«åäœããããšãæ€èšŒã§ããŸãã ãŸãšã çµç¹åºæã®ãã¿ãŒã³ãããžãã¹ã«ãŒã«ãã¢ãã³ãª C# æ©èœã®èšå®ãå«ãã«ã¹ã¿ã 倿å®çŸ©ã䜿çšããããšã§ãçµç¹ã«èç©ãããç¥èŠãç¶æããªããæ°çŸã® VB6 ã¢ããªã±ãŒã·ã§ã³ãäœç³»çã«ã¢ããã€ãºã§ããããã«ãªããŸããã 倿ãäžåºŠå®çŸ©ããã°ãã¢ããªã±ãŒã·ã§ã³ããŒããã©ãªãªå
šäœã«é©çšã§ããŸããããã«ãããåå©çšå¯èœãªå€æå®çŸ©ã«çµç¹ã«èç©ãããç¥èŠãä¿åãããŸãããã£ãŒãããã¯ã«ãŒãã«ããç¶ç¶çãªæ¹åã«ãããå倿ã¯ããæŽç·Žãããã¬ã³ãŒãåããã©ã€ããªã³ã³ã¹ãã©ã¯ã¿ãŒããã¿ãŒã³ãããã³ã°ãªã©ã®ã¢ãã³ãª C# æ©èœãã³ãŒãããŒã¹ã«èªåçã«é©çšãããŸããã¢ããã€ãºãããã¢ããªã±ãŒã·ã§ã³ã¯ Linux ãš AWS Graviton äžã§åäœããã€ã³ãã©ã¹ãã©ã¯ãã£ã³ã¹ããåæžã§ããå¯èœæ§ããããŸãã AWS Transform custom ã䜿çšã㊠VB6 ã¢ããªã±ãŒã·ã§ã³ããŒããã©ãªãªã®ã¢ããã€ãŒãŒã·ã§ã³ãå§ããŸããããã»ããã¢ããæé ã«ã€ããŠã¯ã AWS Transform custom Getting Started Guide ãã芧ãã ããã 远å ãªãœãŒã¹ AWS Transform custom Getting Started Guide AWS Transform custom Product Page AWS Transform custom Documentation AWS Transform custom Command Reference AWS Transform for .NET .NET on AWS Developer Center 翻蚳ã¯ãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã® Yoshinori Sawada ãæ
åœããŸãããåæã¯ ãã¡ã ã§ãã èè
ã«ã€ã㊠David Kilzer David Kilzer ã¯ãAWS ãšã³ã·ã¹ãã å
ã§ã® Microsoft ã¯ãŒã¯ããŒãã®æé©åãå°éãšãããœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã§ããC#ãSQL Serverããã㊠AWS ãµãŒãã¹ãçšããææ°ã®ãœãããŠã§ã¢ãœãªã¥ãŒã·ã§ã³æ§ç¯ã«é¢ããå°éç¥èãæããŠããŸãã Ashish Bhatia Ashish Bhatia ã¯ãAWS ã®ã·ãã¢ãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã§ããšã³ã¿ãŒãã©ã€ãºã®ã客æ§ã®ã¯ã©ãŠããžã£ãŒããŒã®ã¬ã€ãã«æ³šåããŠããŸããAWS ã®ã¯ã©ãŠããã€ãã£ããµãŒãã¹ã䜿çšããŠææ°ã®ãœãããŠã§ã¢ãœãªã¥ãŒã·ã§ã³ãæ§ç¯ããã客æ§ãæ¯æŽããããšã«æ
ç±ã泚ãã§ããŸãããŸãã圌㯠Amazon Web Services ã®ã¹ãã·ã£ãªã¹ããœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã§ããæå
端ã®çæ AI ãœãªã¥ãŒã·ã§ã³ã®äœæã«åãçµã¿ãã客æ§äžå¿ã®ã¢ãããŒããåªå
ããŠããŸãã Ty Augustine Ty Augustine ã¯ã.NETãSQL Serverãã³ã³ãããå°éãšãã Microsoft ã¹ãã·ã£ãªã¹ããœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã§ãããã¥ãŒãšãŒã¯ãæ ç¹ã«ãæ§ã
ãªæ¥çã®äŒæ¥ãšç·å¯ã«é£æºããAWS ã¯ã©ãŠããžã®ç§»è¡ãšã¢ããã€ãŒãŒã·ã§ã³ãå éãããŠããŸããAWS ã«å
¥ç€Ÿããåã¯ã20 幎以äžã«ããã Microsoft ã¹ã¿ãã¯ã®ãœãããŠã§ã¢ã¢ãŒããã¯ããšããŠæŽ»èºããŠããŸããã
åç»
該åœããã³ã³ãã³ããèŠã€ãããŸããã§ãã








