AWSã¢ãŒããã¯ãã£éå ŽãInfrastructure as CodeïŒIaC)ã§SNS颚Webã¢ããªããããã€ãããââAWS Tech talk Night#4
AWSã®ãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ããã¢ãŒããã¯ãã£ã®æ¥µæãäŒæãããAWS Tech talk Nightã第4匟ãä»åã¯SNS颚ã¢ããªéçºãããŒãã«ãAWSãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã«ããã¢ãŒããã¯ãã£ã³ã°ãããŒã«ãã¬ã€ã§ç䌌äœéšãã詊ã¿ãšãInfrastructure as CodeïŒIaCïŒã®åºæ¬è§£èª¬ãšã©ã€ãã³ãŒãã£ã³ã°ãè¡ãããããã®æ§åãã¬ããŒããããã¢ãŒã«ã€ãåç»
ã¢ãŒããã¯ãã£ã³ã°ã¯ãWHYããæããã«ããäœæ¥
ä»åã®ã€ãã³ãã§ã¯ãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã®é«éè³¢åžæ°ãåå·å¹žåŒæ°ãã¯ããããããã¿ã€ãã³ã°ãšã³ãžãã¢ã®å岡é å¿æ°ãå·¥è€æåæ°ãç»å£ã倿§ãªããã¯ã°ã©ãŠã³ãããã€AWSã®ãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã®ãªãã§ããéçºè ã®äœéšãçç£æ§ãåäžããããµãŒãã¹ããå®éã«ã¢ããªéçºãè¡ãããšã«åŒ·ã¿ãæã€4åã ã
æåã«ç»å£ããé«éæ°ã¯ããã¢ãŒããã¯ãã£ã³ã°ãšã¯ãã客æ§ç®ç·ã§æ å ±ãæŽçããã·ã¹ãã ã®æ§é ãšç¹æ§ãèšèšããããã»ã¹ã ããšèªãã
äŸãã°ã¢ãŒããã¯ããããèªåè»ã®ããŒã¿ãåéããŠãæ éã®åå ãåæãããããšçžè«ãåããã©ããªã·ã¹ãã ãäœãã°ããããèããéã¯ã以äžã®ããã«ããŸããŸãªçåãåºãŠããã¯ãã ã
- ãèªåè»ã®ããŒã¿ããšã¯ã©ããªããŒã¿ãªã®ã
- ã©ããã£ãŠããŒã¿ãéããã°ããã®ã
- ããŒã¿ãéãŸã£ãŠåæã§ãããšã客æ§ã®ããžãã¹ã¯ã©ã®ããã«å€ããã
- è»ã®ææè ã§ãããšã³ããŠãŒã¶ãŒã®äœéšã¯ã©ã®ããã«å€ããã
- éçºäœå¶ãéçšããã»ã¹ã¯ã©ã®ããã«ãªãã
ã客æ§ãšã®å¯Ÿè©±ã«ãã£ãŠãã¢ãŒããã¯ãã¯ã客æ§ãç¡æèã«èŠæ±ããŠãããã®ããèŠããªããšã³ããŠãŒã¶ãŒã®æããŸã§æ³åããªããè€éãªèŠæ±ãäœç³»åãããªããã®ã·ã¹ãã ãå¿ èŠãªã®ãèæ¯ãšç®çããŸãšããããããŠãããå®çŸãããããã®ã·ã¹ãã æ§é ãåããã¹ãç¹æ§ãæ€èšãããŠããããã ãããã®ãšãæ¡çšããªãã£ãä»£æ¿æ¡ããã¬ãŒããªãã«ã€ããŠãŸãšããŠããããšãæ¬ ãããªããæ§é ã«çŸããŠããªãéšåã«é¢ããŠãèšèšæéãšããåœ¢ã§æ®ããŠããããã®äžé£ã®ããã»ã¹ãã¢ãŒããã¯ãã£ã³ã°ã ãåºæ¬çã«ã¢ãŒããã¯ãã£ã«ã¯å¯äžã®æ£è§£ã¯ãªããããéèŠãšãªãã®ãããªããã®ã·ã¹ãã ãå¿ èŠã§ãã©ã®ãããªè°è«ãçµãŠãã®å€æãããã®ãããšãããWHYãã ã
ã¢ãŒããã¯ãã£ã³ã°ãäž»ãªæ¥åãšããã¢ãŒããã¯ãã«ã¯ãå¹ åºãæè¡åãæ§ã ãªçµéšãææ°ã®æè¡ãã¬ã³ããšãã£ãæè¡é¢é£ã®ã¹ãã«ã ãã§ã¯ãªããäºæ¥ãã¡ã€ã³ã«é¢ããç¥èãã³ãã¥ãã±ãŒã·ã§ã³èœåãªã©ãæ±ãããããã¢ãŒããã¯ãã¯ãè€éãªãã®ãåçŽåããã¹ãã·ã£ãªã¹ãã ã
ã¢ãŒããã¯ãã£ã³ã°ã®ããŒã«ãã¬ã€
ããŒã«ãã¬ã€ã®èšå®ã¯ããã ãé«éæ°ããœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ããå·¥è€æ°ãçžè«ã«æ¥ã顧客ãããã¹ã¿ãŒãã¢ããäŒæ¥ã«å€ããã¢ããªã±ãŒã·ã§ã³ãšã³ãžãã¢ãšãã圹åãã§ããboyakiããšããSNSãµãŒãã¹ã®å®çŸã«åããŠã¢ãŒããã¯ãã£ã³ã°ãè¡ã£ãŠããã
ãŸãã¯ãã¢ãªã³ã°éšåããèŠãŠãããã
â ãã¢ãªã³ã°
å·¥è€ïŒããã«ã¡ã¯ãã¢ããªã±ãŒã·ã§ã³ãšã³ãžãã¢ã®å·¥è€ã§ãã仿¥ã¯ãAWSã®ãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãããã«æ°ãããµãŒãã¹ã®ã¢ãŒããã¯ãã£ã«ã€ããŠçžè«ããŠããŸããã
é«éïŒãçžè«ããããšãããããŸãããŸãã¯ãã©ããªãµãŒãã¹ããæ€èšäžãªã®ã詳ãããèãããã ããã
å·¥è€ïŒãŠãŒã¶ãŒãä»èããŠããããšãæ°è»œã«ãŒããããšãã§ãããboyakiããšããSNSãµãŒãã¹ã§ãã
é«éïŒãªãã»ã©ãããããããã§ãããããã¯ã€ã³ã¿ãŒãããã«å ¬éããããšãæ³å®ãããµãŒãã¹ã§ããïŒ
å·¥è€ïŒã€ã³ã¿ãŒãããäžã«å ¬éããŠã誰ã§ãã¢ã«ãŠã³ããååŸããŠãŒããããšãã§ããŸãã
é«éïŒããããéçºéçšããŠããäžã§éèŠããããšã¯äœã§ãããããäŸãã°ããåæãŠãŒã¶ãŒãç²åŸããããã«ããã©ãŒãã³ã¹ãäžããããããšã«ããã³ã¹ããæãããããæ©èœè¿œå ããããã圢ã«ãããããªã©ããããšæããŸãã
å·¥è€ïŒéçºããŒã ã3人ããããªãã®ã§ãéçºå¹çãäžçªéèŠããããšæã£ãŠããŸãããŸãããµãŒãã¹éå§çŽåŸããŠãŒã¶ãŒãå°ãªããšãã®ã³ã¹ãå¹çãéèŠããããšæã£ãŠããŸãã
é«éïŒå°ããªããŒã ã§ãã°ãããµãŒãã¹ãäœãå¿ èŠããããšããããšã§ããããŸãããµãŒãã¹ãåçåãããŸã§æ¯åºãæããããšãããšããããªãšãããµãã«çè§£ããŸããã
ã§ã¯æ¬¡ã«ãæåã®ãªãªãŒã¹æã«æäœéå¿ èŠãªæ©èœïŒMVPïŒMinimum Viable ProductïŒã¯äœã§ãããããã
å·¥è€ïŒãšããããæ¬²ããã®ã¯ãã¡ãã»ãŒãžãæçš¿ããæ©èœãæçš¿ããããŒãããæç³»åã«è¡šç€ºããæ©èœã§ããå°æ¥çã«ã¯ãéå»ã®æçš¿ã®æ€çŽ¢ãåéã®ã¢ã«ãŠã³ãããã©ããŒããæ©èœã欲ãããšæã£ãŠããŸããAWSã§ãããã£ãæ©èœãå®çŸããããã«ã¯äœãå¿ èŠã§ããããã
é«éïŒãŸãã¯ãã¡ãã»ãŒãžã®æçš¿æ©èœãå¿ èŠãšããããšã§ãããå°æ¥çã«ãæ€èšãããŠããæ©èœã«ã€ããŠã¯ãå šææ€çŽ¢ããã©ããŒæ©èœã«ãªããšæããŸããããŒã¿ããŒã¹ãé¢é£ãããã®ã§ãã®ã§ãã¢ãŒããã¯ãã£å³ãæžããªãããã£ã¹ã«ãã·ã§ã³ããŠãããã°ãšæããŸãã
æåŸã«ãã¢ããªãæ§æããæè¡ã¹ã¿ãã¯ã®ãåžæããã¢ãŒããã¯ãã£ã«é¢ãããªã¯ãšã¹ããããã°æããŠããã ããŸããã
å·¥è€ïŒæã ã¯Nuxt.jsãåŸæãªã®ã§ãNuxt.jsã®ã·ã³ã°ã«ããŒãžã¢ããªã±ãŒã·ã§ã³ïŒSPAïŒã§äœããããšæã£ãŠããŸããéçºããŒã ã¯ã¢ããªãšã³ãžãã¢ã®ã¿ã§ã€ã³ãã©ã«è©³ãã人ãããªããããã€ã³ãã©ã®éçšãæèããªãã¢ãŒããã¯ãã£ããããšæã£ãŠããŸãã
é«éïŒèŠä»¶ã¯å€§äœææ¡ã§ããŸãããã§ã¯ãã¢ãŒããã¯ãã£ãäžç·ã«èããŠãããŸãããã
â ã¢ãŒããã¯ãã£ã®ãã£ã¹ã«ãã·ã§ã³
é«éïŒãŸãã¯ã·ã³ãã«ãªã¢ãŒããã¯ãã£ããå§ããŠãããããšæããŸãããŠãŒã¶ãŒç®ç·ããèããŠã¿ãŸãããã
ã·ã³ã°ã«ããŒãžã¢ããªã±ãŒã·ã§ã³ã¯ããŠãŒã¶ãŒãURLã«ã¢ã¯ã»ã¹ãããšãAmazon CloudFrontãšããCDNãµãŒãã¹ããã¢ããªãé ä¿¡ãããŸããä»åã¯Nuxt.jsã䜿ããããšã®ããšãªã®ã§ãAmazon S3ãã±ããã«ã³ãŒããæ ŒçŽããŠãããŸãã
次ã«ããŒããã®æçš¿ãååŸã«ã¯èªèšŒãå¿
èŠã«ãªããŸãã®ã§ãAmazon Cognitoã§èªèšŒããŸãã
ã¢ããªãããŒãããæçš¿ããããååŸãããããã«ã¯APIãåŒã³åºããŸããAPIãããããžãã¹ããžãã¯ãåŠçããã³ã³ãã¥ãŒããµãŒãã¹ãåŒã³åºããããŒã¿ããŒã¹ã«ã¢ã¯ã»ã¹ããŸããã³ã³ãã¥ãŒããµãŒãã¹ã§ã¯ããµãŒããŒãµã€ãã®ã³ãŒããå®è¡ããå¿
èŠããããŸãã
å·¥è€ããããã¡ãã¯ã©ã®èšèªããã¬ãŒã ã¯ãŒã¯ã䜿ãäºå®ã§ããããïŒ
å·¥è€ïŒæè¿åºãNuxt.jsã®ããŒãžã§ã³3ããLambda颿°ãã³ã³ãããªã©ãããããã®ç°å¢ã«åãããã³ãŒããåºåã§ããã®ã§ãããã䜿ããããšæããŸãã
é«éïŒã§ã¯ããã®ã³ã³ãã¥ãŒããµãŒãã¹ã«äœã䜿ããæ€èšããŠãããããšæããŸããã€ã³ãã©ãæèããããªããšã®ããšãªã®ã§ãä»åã¯EC2ã®ãããªä»®æ³ãã·ã³ããŒã¹ã®ãã®ã¯é€å€ããŠãããšæããŸãã颿°ã®ã³ãŒãã ãã§å®è¡ã§ããAWS Lambdaããã³ã³ãããµãŒãã¹ã«ãªããšæããŸããå·¥è€ããã¯ã³ã³ããã䜿ã£ããµãŒãã¹ã®éçšçµéšã¯ãããŸããïŒ
å·¥è€ïŒéçºäžã¯Dockerãªã©ã®ã³ã³ããããã䜿ããŸãããæ¬çªãµãŒãã¹ãã³ã³ããã§éçšããçµéšããªãã®ã§ãéçšã«ã¯å°ãäžå®ããããŸãã
é«éïŒä»åã¯AWS Lambdaã§äœãå§ããããšãææ¡ããŸããLambdaã§ããã°ãã³ã³ããã€ã¡ãŒãžã®ç®¡çãã¹ã±ãŒã©ããªãã£ãèããå¿ èŠããããŸãããLambdaã¯é¢æ°ã®ã³ãŒãã管çããã ãã§ããLambdaç¹æã®èšå®ãããã©ãŒãã³ã¹ç¹æ§ãªã©ã®åŠç¿ã³ã¹ãã¯å¿ èŠã§ããããŸããNuxt.jsãªãLambdaçšã³ãŒããåºåã§ããã®ã§ãåŠç¿ã³ã¹ããæãããããšæããŸãã
å·¥è€ïŒåŸã§ã³ã³ããã«ããéããNuxt.jsã®æ©èœã§ç§»è¡ã§ãããã§ããã³ã¹ãçã«ã¯ã©ãã§ããããã
é«éïŒãŠãŒã¹ã±ãŒã¹ã«ãããŸããããŠãŒã¶ãŒãå°ãªããµãŒãã¹éå§åœåã§ããã°ãLambdaã®ã»ãããAWSå©çšæãéçºéçšã³ã¹ããæããããå¯èœæ§ãé«ããšæããŸãã
å·¥è€ïŒã§ã¯ãã³ã³ãã¥ãŒããµãŒãã¹ã¯ãŸãLambdaã§ãã£ãŠã¿ãŸããæ®ãã¯ããŒã¿ããŒã¹ã®éšåã§ãããããŒã¿ããŒã¹ã«ã€ããŠãäœãããããã¯ãããŸããïŒ DynamoDBã«èå³ããããŸããããŸã MySQLãã䜿ã£ãããšããããŸããã
é«éïŒAmazon DynamoDB㯠KVSïŒKey-Value StoreïŒãšåŒã°ããã¿ã€ãã®ããŒã¿ããŒã¹ã«ãªããŸããã·ã³ãã«ãªã¯ãšãªããã§ããªã代ããã«ã倧éã«ã¢ã¯ã»ã¹ãããå Žåãé«éã«ã¬ã¹ãã³ã¹ãè¿ãããšãå¯èœã§ããåºæ¬çã«SQLæãæããã®ã§ã¯ãªããŠãAPIã§æäœããããšã«ãªããŸãã
å·¥è€ïŒããã©ãŒãã³ã¹ãæªããšãŠãŒã¶ãŒãé¢ããŠããŸããããããã©ãŒãã³ã¹ã¯å€§äºã«ããããšæããŸããå°æ¥çã«ã¯å šææ€çŽ¢ãªã©ãè€éãªæ€çŽ¢ãå¿ èŠã«ãªã£ãŠãããšæããŸããããããDynamoDBã§å®çŸã§ããŸããïŒ
é«éïŒDynamoDBã®ããŒãã«èšèšæ¬¡ç¬¬ã§ã¯ãããã·ã¥ã¿ã°æ€çŽ¢ãšãã£ãèŠä»¶ã«ã察å¿ã§ãããšæããŸãããã å šææ€çŽ¢ãè€æ°ã®æ¡ä»¶ãçµã¿åãããè€éãªæ€çŽ¢ã«é¢ããŠã¯ãå¥ã®ããŒã¿ããŒã¹ãµãŒãã¹ãçµã¿åãããããšãããããããŸãã
äŸãã°ãå šææ€çŽ¢ã«ã¯Amazon OpenSearch Serviceã䜿ããŸããåéããã©ããŒããæ©èœã«ã¯ãåéã®åéãæ¢ãããšããã¯ãšãªãå¿ èŠã«ãªããŸãããé¢ä¿æ§ã«ããæ€çŽ¢ãå¿ èŠãªå Žåã¯ã°ã©ãDBã®Amazon Neptuneã®åºçªã§ãã2022幎10æã«Amazon Neptune Serverlessã®äžè¬æäŸãéå§ãããŠãããè² è·äºæž¬ã®é£ããã¯ãŒã¯ããŒãã§ã䜿ãããããªã£ãŠããŸãã
å·¥è€ïŒããŒã¿ããŒã¹ãè€æ°äœ¿ããšããçºæ³ã¯ãä»ãŸã§èªåã®äžã«ãªãã£ãã§ãã
é«éïŒãã¡ããMySQLã ãã§ãOKã§ãããAWSã§ã¯é©æé©æã®ãµãŒãã¹ã䜿ãããšã§ããããã®ã¡ãªãããçãããPurpose-Built Databasesãã®èãæ¹ãããããããŠããŸãã
å·¥è€ïŒããŒã¿ãæžã蟌ããšãã«ãè€æ°ã®ããŒã¿ããŒã¹ã«ããããæžã蟌ãã§ãããã¬ã¹ãã³ã¹ãé ããªãããã§ããæåã¯ãŒããã衚瀺ããã ããªã®ã§è€éãªã¯ãšãªã¯çºçããŸããããããã©ãŒãã³ã¹ã¯åªå ãããã§ãã
é«éïŒãããã«ãªã¯ãšã¹ãæ¯ã«åæçã«æžã蟌ãã§ãããšé ããªã£ãŠããŸããŸãããã®å Žåã¯ãäŸãã°ãããªæ§æã¯ãããã§ããããã
ãŸãã¯DynamoDBã ãã«æžã蟌ã¿ãæåãããã¯ã©ã€ã¢ã³ãã«ã¬ã¹ãã³ã¹ãè¿ããŸããDynamoDBã®å€æŽãDynamoDB Streamsã«æµãããã®ã€ãã³ããéåæã§Lambda颿°ã§åãåããOpenSearch ServiceãNeptuneã«æžã蟌ãã§ããããšãã§ããŸããã€ãã³ãé§åã¢ãŒããã¯ãã£ãšåŒã°ãããã®ã«ãªããŸãã
å·¥è€ïŒãã®ä»çµã¿ã§ããã°ãåŸããããŒã¿ããŒã¹ãå¢ããããšãç°¡åã«ã§ãããã§ããã€ãŸãããã®æ§æãAWSã®äžã«äœãã°ãããã§ããããAWSãããžã¡ã³ãã³ã³ãœãŒã«ã¯æ®æ®µãã䜿ã£ãŠããŸãã
é«éïŒãããžã¡ã³ãã³ã³ãœãŒã«ã§æäœæ¥ã§äœã£ãŠãããã®ã§ãããéçºè ããšã«ç°å¢ãäœã£ããããã¹ãç°å¢ãæ¬çªç°å¢ãåããŠäœã£ãããäœåºŠãæäœæ¥ã§è¡ãã®ã¯å€§å€ã§ãããã
å·¥è€ïŒããééããããèŠæãªæé æžãããããæžããªããã°ãããªãã§ãã
é«éïŒã¢ããªãšã³ãžãã¢ã®å·¥è€ããã«ã¯AWS CDKãããããããŸããã€ã³ãã©æ§æãã³ãŒãã§å®çŸ©ããInfrastructure as Codeã®ããŒã«ã®1ã€ã§ãããå°çšã®èšèªã§ã¯ãªããäžè¬ã®ããã°ã©ãã³ã°èšèªã§æžããã®ã§äœ¿ãããããšæããŸããCDK Pipelinesãšããæ©èœã¯ãã¢ããªã®ãããã€ãŸã§å«ãããCI/CDãã€ãã©ã€ã³ãç°¡åã«äœãããšãã§ããŸãã
å·¥è€ïŒã³ãŒãã§æžãããšãã§ããã®ã§ãããããã°ã©ãã³ã°ã¯ããã奜ããªã®ã§ãCDKãæ°ã«ãªããŸãã
é«éïŒCDKã«ã€ããŠã¯ãã®åŸè§£èª¬ããŸãããã¢ãŒããã¯ãã£ãšããŠã¯ããããªæãã«ãªãããã§ããããã¡ãããæåã«æ±ºãããã®ã¢ãŒããã¯ãã£ã«åºå·ãããè¯ããã®ãèŠã€ãããã©ãã©ã倿ŽããŠããããšãããããããŸãã詊ããªãããããè¯ãã¢ãŒããã¯ãã£ãæ¢ããã®ãã¯ã©ãŠãã®ã¡ãªããã§ãã
以äžã§ããŒã«ãã¬ã€ã®ããŒãã¯çµäºãããAWSã®ãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ããã¡ã¯æ¥ã ãã®ãããªè°è«ã顧客ãšéããŠãããšã®ããšã ã
Infrastructure as Codeã¯ãªãå¿ èŠã
åè¿°ã®ãšããããœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ãã¯æè¡çãªèгç¹ã ãã§ãªããããžãã¹ã«ãããŠäœãéèŠããšãã£ããšããã«ç®ç·ãåãããŠèããããšãããã·ã§ã³ãšãªãããã®éãç¹ã«ãã°ããå€åãæ±ããããã¢ãã³ã¢ããªã±ãŒã·ã§ã³éçºã«ãããŠã¯ããInfrastructure as Codeãæ¬ ãããªãããšãé«éæ°ã¯èšãã
Infrastructure as Codeã¯ããæ©æ¢°ãåŠçã§ããå®çŸ©ãã¡ã€ã«ãŸãã¯ã³ãŒãã«ãã£ãŠã€ã³ãã©ã¹ãã©ã¯ãã£ãŒã®ç®¡çãããããžã§ãã³ã°ãè¡ãããã»ã¹ããšèšããã ããã
ãããããªãå¿ èŠãªã®ã ãããããããžã¡ã³ãã³ã³ãœãŒã«ã§ã®æåæäœãããã³ã¹ã¯ãªããããŒã¹ã§å®è¡ããå Žåã«çºçãåŸãäžéœåãšããŠããŸãã人éãæäœæ¥ã§æäœãããããšã«ãã£ãŠã³ã¹ãããããããã¹ãæé æžã®è§£ééãã«ãããšã©ãŒãé¿ããããªãã
ããã«ãäœæ¥ãæé æžéãã«æ£ããè¡ããããã©ãããæ€èšŒããããšã¯é£ããã
ãªãœãŒã¹ã®ç¶æ ã«ããæäœã®å€æŽã¯æäœæ¥ã§ã¯ã¢ãããã¯ã«ãã£ãŠããŸããã¡ã ããæé æžãã¹ã¯ãªããäžã§ãšã©ãŒåŠçãããŒã«ããã¯ãšãã£ãè€éãªåŠçãç¶²çŸ ããããšãéåžžã«é£ãããããã解決ããã®ãIaCã®æŠå¿µã ãæç¶ãåã«ããããã¡ãªããã®è£è¿ãã«ãªãããæé æžã®äœæãã¡ã³ããã³ã¹ã«ãããã³ã¹ããåæžãã人çãã¹ãç°å¢ã®ãã©ãã¯ããã¯ã¹åã®ãªã¹ã¯ãæé€ããããšãã§ããã
AWS Cloud Development KitïŒCDKïŒã¯ãInfrastructure as Codeãå®çŸãããã¬ãŒã ã¯ãŒã¯ã®ã²ãšã€ã§ãJavaScriptãTypeScriptãPythonãJavaã.netãGoãšãã£ãäœ¿ãæ £ãã6ã€ã®ããã°ã©ãã³ã°èšèªã§ã¯ã©ãŠããªãœãŒã¹ãå®çŸ©ã§ãããããŒã«åºæã®èšèªã®ç¿åŸã«åŠç¿ã³ã¹ãããããããšãªãããŸãã³ãŒãã®è£å®ãéçè§£æããŠããããã¹ããªã©ãéçºè ãæ £ã芪ããã ããã°ã©ãã³ã°ã®æ©èœãææ³ãæŽ»çšã§ããããšã倧ããªé åãšèšããã
ã¢ããªå šäœãã³ãŒãã§å®çŸ©ã§ããã®ãCDKã®ç¹åŸŽã®1ã€ãã€ãŸããã¯ã©ãŠããªãœãŒã¹ã ãã§ãªãã颿°ãã³ã³ããã€ã¡ãŒãžãªã©ãã¢ããªå šäœããŸãšããŠç®¡çã§ããã®ã ã
ãŸããAWSã®ãã¹ããã©ã¯ãã£ã¹ã«åŸã£ãæœè±¡åãå©çšã§ããã³ãŒãéãšåŠç¿ã³ã¹ããåæžã§ããç¹ã倧ããªã¡ãªãããšèšããããã¡ãããæœè±¡åã¬ã€ã€ãŒããæãåºããŠãåå¥ã®èšå®ã«ã¢ã¯ã»ã¹ããããšãã§ããã
ããã§ãCDKã®ä»çµã¿ãèŠãŠããããéçºè ã¯åèšèªã®ã³ã³ãã©ã¯ãã©ã€ãã©ãªã䜿ã£ãŠã奜ããªããã°ã©ãã³ã°èšèªã§ã€ã³ãã©æ§æãã³ãŒãã§æžããŠããããããAWS CDK ToolkitïŒCLIïŒã«æž¡ããcdk deployã³ãã³ããå©ããšãæžããã³ãŒããAWS CloudFormationãã³ãã¬ãŒãã«å€æãããã
AWS CloudFormationããã®ãã³ãã¬ãŒãã«åŸã£ãŠå¿ èŠãªAWS APIãåŒã³åºããéçºè ã宣èšãããªãœãŒã¹ãã¯ã©ãŠãã«äœãäžããŠãããLambda颿°ã®ã³ãŒããã³ã³ããã€ã¡ãŒãžãšãããããªã¢ã»ãããäžç·ã«ãããã€ããããšãã§ããããã¡ãã¯CloudFormationãä»ãã®ã§ã¯ãªããAWS CDK ToolkitããçŽæ¥ãããã€ãããã
ã³ã³ãã©ã¯ãã©ã€ãã©ãªã¯ãäŸãã°TypeScriptã§ããã° npmãJavaã§ããã°mavenã§ã€ã³ã¹ããŒã«ãã圢ã«ãªããcdkã³ãã³ãã¯äœ¿ã£ãŠããèšèªã«ãããããã¹ãŠNode.jsã®ã³ãã³ãã©ã€ã³ããŒã«ã䜿ã£ãŠå®è¡ããã
CDKã®æŠå¿µã¯æ¬¡ã®å³ã®ãšãããCDKã®æãåºæ¬çãªèŠçŽ ãã³ã³ã¹ãã©ã¯ãã§ããããããçµã¿åãããŠAWSã®ãªãœãŒã¹ãå®çŸ©ãããã³ã³ã¹ãã©ã¯ãã¯AWS CDKãæšæºã§æäŸããAWS Construct Libraryã䜿ã£ãŠããŠãŒã¶ãŒã«ããå®çŸ©ãé åžãå¯èœãšãªã£ãŠããã
ã³ã³ãã©ã¯ãã«ã¯L1ãL2ãL3ã®3ã€ã®ã¬ãã«ããããL1ã¯Low-level-constructã§CloudFormationãªãœãŒã¹ãš1察1ã§å¯Ÿå¿ããèªåçæããããäžçªãã䜿ãã®ã¯L2ã®High-level-constructã§ãããã©ã«ãå€ããã¹ããã©ã¯ãã£ã¹ãå®çŸ©ããAWSãªãœãŒã¹ã衚ãã¯ã©ã¹ã ãæœè±¡åãå«ããããšãã§ããã®ã§ãéåžžã«äœ¿ãããããªã£ãŠããã
ããã«äžäœã®ã¬ã€ã€ãŒã«ã¯PatternsãL3ã³ã³ã¹ãã©ã¯ããšåŒã°ãããã®ããããããã¯è€æ°ã®ãªãœãŒã¹ãå«ãäžè¬çãªãã¿ãŒã³ã衚çŸãããã®ã§ãäŸãã°ãaws-ecs-patterns.LoadBalancedFargateServiceãã䜿ããšãFargateã§è² è·åæ£ãããECSã®ãµãŒãã¹ãç°¡åã«å®çŸ©ããããšãã§ããã
CDKã䜿ã£ãŠWebã¢ããªã±ãŒã·ã§ã³ãäœããšããã©ã€ãã³ãŒãã£ã³ã°ãè¡ãããã®ã§ããã²åç»ãåç §ããŠã»ããã
ãã®ããã«ã1æé匷ã§ä»¥äžã®ãããªã¢ããªãäœãæ§åãæ«é²ãããããã¡ããææ £ãããšã³ãžãã¢ããã£ãŠãããšããããšãããããçæéã§ããããéçºã§ããæ§åããWebã¢ããªéçºã«ãããCDKãšããããŒã«ãIaCã®ã¡ãªããã䌺ããã
æåŸã«ãCDKã§IaCåããŠããããããã©ãããå§ããããããïŒããšããCDKã®å°å ¥ã«é¢ãã質åãåãäžããããã®ã§ãç°¡åã«ç޹ä»ãããã
å·¥è€ïŒCDKã«é¢ããŠã¯ããã°ã©ã ãå®éã«æžããŠã¿ãããšãéåžžã«éèŠã§ããã»ãããŒããã³ãºãªã³ä»¥å€ã«ããAWS CDK Workshopããšããã¯ãŒã¯ã·ã§ãã圢åŒã®ã³ã³ãã³ããããã®ã§ããã²è§Šã£ãŠã¿ãŠã»ããã§ããã
é«éïŒæ¢åã®ã¢ããªãIaCåããå Žåã¯ããããªããã¹ãŠãIaCã«å¯Ÿå¿ãããã®ã¯å€§å€ãªã®ã§ããã倿ŽãããéšåãIaCåãããšã¡ãªããã倧ããéšåãéžãã§ãã£ãŠããããšãããããããŸãã
ã¢ããŸã³ãŠã§ããµãŒãã¹ãžã£ãã³ååäŒç€Ÿ
https://aws.amazon.com/jp/
ããããã€ãã³ã
é¢é£ããã€ãã³ã

AWS Tech talk Night#4 ~ã¢ãŒããã¯ãã£éå ŽïŒã©ã€...
2022幎11æ28æ¥ (æ)ããããã®èšäº

AWSãœãªã¥ãŒã·ã§ã³ã¢ãŒããã¯ããå°ããWEBãµãŒãã¹ãé²åãããã¢ãŒããã¯ãã£ãã®æ¥µæãšã¯ââAWS Tech talk Night#3

NISSANÃAWSãã€ãããã¯ã«ãã®äžã®ã¯ã©ãŠãåºç€ã倧解åïŒ ââé«éCIã§ãã¹ãæé75ïŒ åæžïœ5000人ã䜿ãéçºããŒã¿ã«ïœã³ã³ââããæè¡ãéç£è»ã«é©çš









