ãµãŒããŒã¬ã¹ ãã¯ãããžãŒã¯è¿å¹Žæ¥éã«äººæ°ãé«ãŸã£ãŠããŸããããµãŒããŒã¬ã¹ ãã¯ãããžãŒã«é¢é£ãã誀解ãäžå®ã¯äŸç¶ãšããŠå€ããããŸãã ãµãŒããŒã¬ã¹ ãã¯ãããžã«é¢ããŠã¯ããã³ããŒã®äŸåé¢ä¿ãããŒã«ãã³ã¹ã管çãã³ãŒã«ã ã¹ã¿ãŒããã¢ãã¿ãªã³ã°ãéçºã©ã€ããµã€ã¯ã«ã¯ãã¹ãŠæ³šç®ã®ãããã¯ã§ãã ãã®èšäºã§ã¯ãèšåããããããã¯ã®ããã€ããæ€èšãããšãšãã«ãåå¿è
ã匷åã§æè»æ§ããããã³ã¹ãå¹çã®é«ããµãŒããŒã¬ã¹ ã¢ããªã±ãŒã·ã§ã³ãäœæããã®ã«åœ¹ç«ã€ãã³ããšåœ¹ç«ã€æ
å ±æºãžã®ãªã³ã¯ãå
±æããŸãã
ãµãŒããŒã¬ã¹ãã¯ãããžãŒã«é¢ãã誀解
å€ãã®äººã¯ãµãŒããŒã¬ã¹ãšãµãŒããŒã¬ã¹åŠç (
ãµãŒããŒã¬ã¹ ãã¯ãããžãŒã®èåŸã«ããåºæ¬ååã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£ã®ç®¡çãšæ¡åŒµã«ã€ããŠå¿é ããå¿ èŠããªãã䜿çšããåã ãæéãæ¯æããšããããšã§ãã AWS DynamoDBãS3ãSNS ãŸã㯠SQSãGraphcoolãAuth0ãNowãNetlifyãFirebase ãªã©ãå€ãã®ãµãŒãã¹ããããã®åºæºã«é©åããŸãã äžè¬ã«ããµãŒããŒã¬ã¹ãšã¯ââãã€ã³ãã©ã¹ãã©ã¯ãã£ã管çããããã¹ã±ãŒãªã³ã°ã®ããã«ã€ã³ãã©ã¹ãã©ã¯ãã£ãæé©åãããããå¿ èŠããªããã¯ã©ãŠã ã³ã³ãã¥ãŒãã£ã³ã°ã®èœåãæ倧éã«æŽ»çšããããšãæå³ããŸãã ãŸããã€ã³ãã©ã¹ãã©ã¯ã㣠ã¬ãã«ã®ã»ãã¥ãªãã£ããã¯ãå¿é ã§ã¯ãªãããšãæå³ããŸããããã¯ãã»ãã¥ãªãã£æšæºãæºããããšã®é£ãããšè€éããèãããšã倧ããªå©ç¹ã§ãã æåŸã«ãæäŸãããã€ã³ãã©ã¹ãã©ã¯ãã£ãè³Œå ¥ããå¿ èŠã¯ãããŸããã
ãµãŒããŒã¬ã¹ã¯ãå¿ã®ç¶æ ããã€ãŸããœãªã¥ãŒã·ã§ã³ãèšèšãããšãã®ç¹å®ã®èãæ¹ãšèããããšãã§ããŸãã ã€ã³ãã©ã¹ãã©ã¯ãã£ã®ã¡ã³ããã³ã¹ãå¿ èŠãšããã¢ãããŒãã¯é¿ããŠãã ããã ãµãŒããŒã¬ã¹ ã¢ãããŒãã§ã¯ããããžã§ã¯ãã«çŽæ¥åœ±é¿ãäžãããŠãŒã¶ãŒã«å©çãããããã¿ã¹ã¯ã®è§£æ±ºã«æéãè²»ãããŸããã€ãŸããæç¶å¯èœãªããžãã¹ ããžãã¯ãäœæãããŠãŒã¶ãŒ ã€ã³ã¿ãŒãã§ã€ã¹ãéçºããé©å¿æ§ãšä¿¡é Œæ§ã®é«ã API ãéçºããŸãã
ããšãã°ãããªãŒããã¹ãæ€çŽ¢ãã©ãããã©ãŒã ã®ç®¡çãšä¿å®ãåé¿ã§ããå Žåã¯ãããããã€ããã§ãã ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ãããã®ã¢ãããŒãã«ãããè€éãªã€ã³ãã©ã¹ãã©ã¯ãã£ã®ç®¡çã«ã€ããŠèããå¿
èŠããªããªããããåžå Žæå
¥ãŸã§ã®æéã倧å¹
ã«ççž®ã§ããŸãã ã€ã³ãã©ã¹ãã©ã¯ãã£ç®¡çã®è²¬ä»»ãšã³ã¹ããæé€ãã顧客ãå¿
èŠãšããã¢ããªã±ãŒã·ã§ã³ãšãµãŒãã¹ã®æ§ç¯ã«éäžããŸãã ãããªãã¯ã»ãã¥ãã¯æ°ã¯ãã®ã¢ãããŒãã次ã®ããã«åŒãã§ããŸãã
ã¯ã©ãŠã ã¢ããªã±ãŒã·ã§ã³ãéçºããéã«ããã³ããŒã«äŸåããããšã«æ··ä¹±ãã人ãããŸãã ãµãŒããŒã¬ã¹ ãã¯ãããžã«ãåãããšãåœãŠã¯ãŸããŸãããããã¯æ±ºããŠèª€è§£ã§ã¯ãããŸããã ç§ãã¡ã®çµéšã§ã¯ãAWS äžã§ãµãŒããŒã¬ã¹ ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããä»ã® AWS ãµãŒãã¹ããã³ãã«ãã AWS Lambda ã®æ©èœãçµã¿åãããããšãããµãŒããŒã¬ã¹ ã¢ãŒããã¯ãã£ã®åŒ·ã¿ã®äžéšã§ãã ããã¯ãçµã¿åããã®çµæãåãªãé ã®åèšä»¥äžã®ãã®ãšãªããçžä¹å¹æã®è¯ãäŸã§ãã ãã³ããŒãžã®äŸåãé¿ããããšãããšãããã«å€ãã®åé¡ãçºçããå¯èœæ§ããããŸãã ã³ã³ãããŒã䜿çšããå Žåãã¯ã©ãŠã ãããã€ããŒéã§ç¬èªã®æœè±¡åã¬ã€ã€ãŒã管çããæ¹ãç°¡åã§ãã ãããããµãŒããŒã¬ã¹ ãœãªã¥ãŒã·ã§ã³ã«é¢ããŠã¯ãç¹ã«æåããè²»çšå¯Ÿå¹æãèæ ®ãããŠããå Žåããã®åªåã¯å ±ãããŸããã ãã³ããŒãã©ã®ããã«ãµãŒãã¹ãæäŸããŠããããå¿ ã調ã¹ãŠãã ããã äžéšã®å°éãµãŒãã¹ã¯ä»ã®ãã³ããŒãšã®çµ±åãã€ã³ãã«äŸåããŠãããããã«äœ¿çšã§ãããã©ã°ã¢ã³ããã¬ã€æ¥ç¶ãæäŸããå ŽåããããŸãã ãªã¯ãšã¹ããã³ã³ãããŸã㯠EC2 ã€ã³ã¹ã¿ã³ã¹ã«ãããã·ããããããã²ãŒããŠã§ã€ API ãšã³ããã€ã³ããã Lambda åŒã³åºããæäŸããæ¹ãç°¡åã§ãã Graphcool ã§ã¯ããµãŒãããŒãã£ã®èªèšŒããŒã«ã䜿çšãããããç°¡å㪠Auth0 ã«ããç°¡åãªæ§æãæäŸãããŸãã
ãµãŒããŒã¬ã¹ ã¢ããªã±ãŒã·ã§ã³ã«é©åãªãã³ããŒãéžæããããšã¯ãã¢ãŒããã¯ãã£äžã®æ±ºå®ã§ãã ã¢ããªã±ãŒã·ã§ã³ãäœæãããšãããã€ããµãŒããŒã®ç®¡çã«æ»ãããšã¯æåŸ ã§ããŸããã ã¯ã©ãŠã ãã³ããŒã®éžæã¯ãã³ã³ãããŒãããŒã¿ããŒã¹ããããã¯ããã°ã©ãã³ã°èšèªã®äœ¿çšãéžæããããšãšäœãå€ãããŸããã
æ€èšïŒ
- ã©ã®ãããªãµãŒãã¹ãå¿ èŠãããããŠãã®çç±ã
- ã¯ã©ãŠã ãããã€ããŒãæäŸãããµãŒãã¹ãšãããããéžæãã FaaS ãœãªã¥ãŒã·ã§ã³ãšã©ã®ããã«çµã¿åãããããšãã§ãããã
- ã©ã®ãããªããã°ã©ãã³ã°èšèªããµããŒããããŠããã (åçãŸãã¯éçåä»ããã³ã³ãã€ã«ãŸãã¯ã€ã³ã¿ãŒããªã¿ããã³ãããŒã¯ã¯äœããã³ãŒã«ã ã¹ã¿ãŒãæã®ããã©ãŒãã³ã¹ã¯äœãããªãŒãã³ãœãŒã¹ ãšã³ã·ã¹ãã ã¯äœããªã©)ã
- ã»ãã¥ãªãã£èŠä»¶ã¯äœã§ãã (SLAã2FAãOAuthãHTTPSãSSL ãªã©)ã
- CI/CD ããã³ãœãããŠã§ã¢éçºãµã€ã¯ã«ã管çããæ¹æ³ã
- ã©ã®ã€ã³ãã©ã¹ãã©ã¯ãã£ã»ã¢ãºã»ã³ãŒãã»ãœãªã¥ãŒã·ã§ã³ã掻çšã§ããŸããã
æ¢åã®ã¢ããªã±ãŒã·ã§ã³ãæ¡åŒµãããµãŒããŒã¬ã¹æ©èœã段éçã«è¿œå ãããšã䜿çšå¯èœãªæ©èœãå€å°å¶éãããå¯èœæ§ããããŸãã ãã ããã»ãšãã©ãã¹ãŠã®ãµãŒããŒã¬ã¹ ãã¯ãããžã¯ãã¢ããªã±ãŒã·ã§ã³ ã³ã¢ããç¬ç«ããŠç°¡åã«çµ±åããŠæ¡åŒµæ©èœãäœæã§ããããã皮㮠API (REST ãŸãã¯ã¡ãã»ãŒãž ãã¥ãŒçµç±) ãæäŸããŸãã æ確㪠APIãåªããããã¥ã¡ã³ãã匷åãªã³ãã¥ããã£ãåãããµãŒãã¹ãæ¢ããŠãã ãããééãã¯ãããŸããã çµ±åã®å®¹æãã¯éèŠãªææšãšãªãããšãå€ããããããããã 2015 幎㫠Lambda ããªãªãŒã¹ãããŠä»¥æ¥ AWS ãæåãåããŠããäž»ãªçç±ã® XNUMX ã€ã§ãã
ãµãŒããŒã¬ã¹ãè¯ãå Žå
ãµãŒããŒã¬ã¹ ãã¯ãããžãŒã¯ãã»ãŒã©ãã«ã§ãé©çšã§ããŸãã ãã ãããã®å©ç¹ã¯ XNUMX ã€ã®é©çšæ¹æ³ã ãã«éå®ãããããã§ã¯ãããŸããã ãµãŒããŒã¬ã¹ ãã¯ãããžãŒã®ãããã§ãä»æ¥ã®ã¯ã©ãŠã ã³ã³ãã¥ãŒãã£ã³ã°ãžã®åå ¥éå£ã¯éåžžã«äœããªããŸããã éçºè ãã¢ã€ãã¢ãæã£ãŠããŠããã¯ã©ãŠã ã€ã³ãã©ã¹ãã©ã¯ãã£ã管çããŠã³ã¹ããæé©åããæ¹æ³ãããããªãå Žåã¯ããããå®è¡ããŠããããšã³ãžãã¢ãæ¢ãå¿ èŠã¯ãããŸããã ã¹ã¿ãŒãã¢ããããã©ãããã©ãŒã ãæ§ç¯ãããããã³ã¹ããå¶åŸ¡äžèœã«ãªãã®ã§ã¯ãªãããšæžå¿µããŠããå ŽåããµãŒããŒã¬ã¹ ãœãªã¥ãŒã·ã§ã³ã«ç°¡åã«ç®ãåããããšãã§ããŸãã
ã³ã¹ãåæžãšæ¡åŒµã®å®¹æãã«ããããµãŒããŒã¬ã¹ ãœãªã¥ãŒã·ã§ã³ã¯ãæ°çŸäžäººã®èŠèŽè ãæ±ãã Web ã¢ããªã±ãŒã·ã§ã³ãŸã§ãå éšã·ã¹ãã ãšå€éšã·ã¹ãã ã®äž¡æ¹ã«åæ§ã«é©çšã§ããŸãã ã¢ã«ãŠã³ãã¯ãŠãŒãã§ã¯ãªãã»ã³ãã§æž¬å®ãããŸãã AWS EC2 ã®æãåçŽãªã€ã³ã¹ã¿ã³ã¹ (t1.micro) ã 15 ãæéã¬ã³ã¿ã«ãããšãäœãããªããŠã 512 ãŠãŒãããããŸã (ãªãã«ããã®ãå¿ããããšããªã人ã¯ããªãã§ãããã?!)ã æ¯èŒãããšãåãæéå ã«ãã®ã¬ãã«ã®æ¯åºã«éããã«ã¯ã1 MB ã® Lambda ã 3 ç§éçŽ XNUMX äžåå®è¡ããå¿ èŠããããŸãã ãã®æ©èœã䜿çšããªãå Žåã¯ãæéã¯ããããŸããã
ãµãŒããŒã¬ã¹ã¯äž»ã«ã€ãã³ãé§ååã§ãããããå€ãã·ã¹ãã ã«ãµãŒããŒã¬ã¹ ã€ã³ãã©ã¹ãã©ã¯ãã£ãè¿œå ããã®ã¯éåžžã«ç°¡åã§ãã ããšãã°ãAWS S3ãLambdaãKinesis ã䜿çšãããšãAPI çµç±ã§ããŒã¿ãåä¿¡ã§ããå€ãå°å£²ã·ã¹ãã çšã®åæãµãŒãã¹ãäœæã§ããŸãã
ã»ãšãã©ã®ãµãŒããŒã¬ã¹ ãã©ãããã©ãŒã ã¯è€æ°ã®èšèªããµããŒãããŠããŸãã ã»ãšãã©ã®å ŽåãPythonãJavaScriptãC#ãJavaãGo ã䜿çšãããŸãã éåžžããã¹ãŠã®èšèªã®ã©ã€ãã©ãªã®äœ¿çšã«å¶éã¯ãªãããããæ°ã«å ¥ãã®ãªãŒãã³ ãœãŒã¹ ã©ã€ãã©ãªã䜿çšã§ããŸãã ãã ããé¢æ°ãæé©ã«å®è¡ããããµãŒããŒã¬ã¹ ã¢ããªã±ãŒã·ã§ã³ã®åªããã¹ã±ãŒã©ããªãã£ã®å©ç¹ãæãªãããªãããã«ãäŸåé¢ä¿ãä¹±çšããªãããšããå§ãããŸãã ã³ã³ããã«ããŒãããå¿ èŠãããããã±ãŒãžãå¢ããã»ã©ãã³ãŒã«ã ã¹ã¿ãŒãã«ãããæéãé·ããªããŸãã
ã³ãŒã«ã ã¹ã¿ãŒããšã¯ãã³ã³ãããã©ã³ã¿ã€ã ãããã³ãšã©ãŒ ãã³ãã©ãŒã䜿çšããåã«ãæåã«åæåããå¿ èŠãããå Žåã§ãã ãã®ãããé¢æ°ã®å®è¡ã«æ倧 3 ç§ã®é 延ãçããå¯èœæ§ããããããã¯ãã£ãã¡ãªãŠãŒã¶ãŒã«ãšã£ãŠã¯æé©ãªãªãã·ã§ã³ã§ã¯ãããŸããã ãã ããã³ãŒã«ã ã¹ã¿ãŒãã¯ãã¢ã€ãã«ç¶æ ã®é¢æ°ãæ°åéç¶ããåŸã®æåã®åŒã³åºãã§çºçããŸãã éåžžã«å€ãã®äººããããã¯äºçŽ°ãªåé¡ã§ãããé¢æ°ãã¢ã€ãã«ç¶æ ã«ä¿ã€ããã«å®æçã« ping ãéä¿¡ããããšã§åé¿ã§ãããšèããŠããŸãã ãããã¯ããã®åŽé¢ãå®å šã«ç¡èŠããŸãã
AWSããªãªãŒã¹ãããŸãããã
ãã®ããŒã«ãããã«ã¯ãç¹ã«ããŒã«ã« ãã¹ãã®åéã§å€ãã®å¶éã課ãããŸãã Docker-LambdaãDynamoDB LocalãLocalStack ãªã©ã®ãœãªã¥ãŒã·ã§ã³ããããŸããããããã«ã¯å€å€§ãªåŽåãšèšå€§ãªéã®æ§æãå¿ èŠã§ãã ãã ãããããã®ãããžã§ã¯ãã¯ãã¹ãŠç©æ¥µçã«éçºãããŠãããããããŒã«ããããå¿ èŠãªã¬ãã«ã«éããã®ã¯æéã®åé¡ã§ãã
ãµãŒããŒã¬ã¹ãã¯ãããžãŒãéçºãµã€ã¯ã«ã«äžãã圱é¿
ã€ã³ãã©ã¹ãã©ã¯ãã£ã¯åãªãæ§æã§ãããããã·ã§ã« ã¹ã¯ãªãããªã©ã®ã¹ã¯ãªããã䜿çšããŠã³ãŒããå®çŸ©ãããããã€ã§ããŸãã ãŸãã¯ã次ã®ãããªã³ãŒããšããŠã®æ§æã¯ã©ã¹ ãœãªã¥ãŒã·ã§ã³ã«é Œãããšãã§ããŸãã
ããã¯ãã¹ãŠåãªãæ§æã§ãããããç¹ã« CloudFormation ã®ãããªã³ãŒããšããŠã®ã€ã³ãã©ã¹ãã©ã¯ã㣠ãœãªã¥ãŒã·ã§ã³ã䜿çšããŠããå Žåã¯ãç¹å®ã®ç°å¢ãå°åããŠãŒã¶ãŒã«åãããŠãããã€ã¡ã³ã ã¹ã¯ãªãããã«ã¹ã¿ãã€ãºã§ããŸãã ããšãã°ããªããžããªå ã®åãã©ã³ãã«ã€ã³ãã©ã¹ãã©ã¯ãã£ã®ã³ããŒããããã€ããŠãéçºäžã«å®å šã«åé¢ããŠãã¹ãã§ããããã«ããããšãã§ããŸãã ããã«ãããéçºè ãã³ãŒããå®éã®ç°å¢ã§é©åã«æ©èœãããã©ãããç解ãããå Žåã®ãã£ãŒãããã¯ãå€§å¹ ã«ã¹ããŒãã¢ãããããŸãã 管çè ã¯å®éã®äœ¿çšéã«å¯ŸããŠã®ã¿æéãæ¯æããããè€æ°ã®ç°å¢ãå°å ¥ããã³ã¹ãã«ã€ããŠå¿é ããå¿ èŠã¯ãããŸããã
DevOps ã§ã¯ãéçºè ãæ£ããæ§æãæã£ãŠããããšã確èªããã ãã§ãããããå¿é ãå°ãªããªããŸãã ã€ã³ã¹ã¿ã³ã¹ããã©ã³ãµãŒãã»ãã¥ãªã㣠ã°ã«ãŒãã管çããå¿ èŠã¯ãªããªããŸããã ãããã£ãŠãç¹ã« IAM æ§æãã¯ã©ãŠã ãªãœãŒã¹ã®æé©åã«é¢ããŠã¯ãã€ã³ãã©ã¹ãã©ã¯ãã£ãæ§æã§ããããšãäŸç¶ãšããŠéèŠã§ã¯ãããŸãããNoOps ãšããçšèªã䜿çšãããããšãå¢ããŠããŸãã
EpsagonãThundraãDashbirdãIOPipe ãªã©ã®éåžžã«åŒ·åãªç£èŠããã³èŠèŠåããŒã«ããããŸãã ããã«ããããµãŒããŒã¬ã¹ ã¢ããªã±ãŒã·ã§ã³ã®çŸåšã®ç¶æ ã®ç£èŠããã°èšé²ãšãã¬ãŒã¹ã®æäŸãããã©ãŒãã³ã¹ ã¡ããªã¯ã¹ãšã¢ãŒããã¯ãã£ã®ããã«ããã¯ã®ææ¡ãã³ã¹ãåæãšäºæž¬ã®å®è¡ãªã©ãå¯èœã«ãªããŸãã ãããã¯ãDevOps ãšã³ãžãã¢ãéçºè ãã¢ãŒããã¯ãã«ã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ã®å æ¬çãªãã¥ãŒãæäŸããã ãã§ãªãã管çè ã XNUMX ç§ãããã®ãªãœãŒã¹ ã³ã¹ããšã³ã¹ãäºæž¬ã䜿çšããŠç¶æ³ããªã¢ã«ã¿ã€ã ã§ç£èŠã§ããããã«ããŸãã 管çãããã€ã³ãã©ã¹ãã©ã¯ãã£ã䜿çšããŠãããçµç¹ããããšã¯ã¯ããã«å°é£ã§ãã
Web ãµãŒããŒã®å±éãä»®æ³ãã·ã³ãã³ã³ããã®ç®¡çããµãŒããŒããªãã¬ãŒãã£ã³ã° ã·ã¹ãã ãã€ã³ã¿ãŒããã ã²ãŒããŠã§ã€ãªã©ãžã®ãããé©çšãå¿ èŠãªãããããµãŒããŒã¬ã¹ ã¢ããªã±ãŒã·ã§ã³ã®èšèšãã¯ããã«ç°¡åã«ãªããŸããããããã¹ãŠã®è²¬ä»»ãæœè±¡åããããšã§ããµãŒããŒã¬ã¹ ã¢ãŒããã¯ãã£ã¯ã³ã¢ã«éäžã§ããŸãããœãªã¥ãŒã·ã§ã³ãããžãã¹ãšé¡§å®¢ã®ããŒãºã
ããŒã«ãããã¯ããã«åªããŠããå¯èœæ§ããããŸãã (æ¥ã æ¹è¯ãããŠããŸã)ãéçºè ã¯ããžãã¹ ããžãã¯ã®å®è£ ãšãã¢ãŒããã¯ãã£å ã®ããŸããŸãªãµãŒãã¹éã§ã¢ããªã±ãŒã·ã§ã³ã®è€éããæé©ã«åæ£ããããšã«éäžã§ããŸãã ãµãŒããŒã¬ã¹ ã¢ããªã±ãŒã·ã§ã³ç®¡çã¯ã€ãã³ã ããŒã¹ã§ãããã¯ã©ãŠã ãããã€ã㌠(SQSãS3 ã€ãã³ããDynamoDB ã¹ããªãŒã ãªã©) ã«ãã£ãŠæœè±¡åãããŸãã ãããã£ãŠãéçºè ã¯ãç¹å®ã®ã€ãã³ãã«å¿çããããžãã¹ ããžãã¯ãäœæããã ãã§ãããããŒã¿ããŒã¹ãã¡ãã»ãŒãž ãã¥ãŒãå®è£ ããæé©ãªæ¹æ³ããç¹å®ã®ããŒããŠã§ã¢ ã¹ãã¬ãŒãžå ã®ããŒã¿ã䜿çšããŠæé©ãªäœæ¥ãçµç¹ããæ¹æ³ã«ã€ããŠå¿é ããå¿ èŠã¯ãããŸããã
ä»ã®éçºããã»ã¹ãšåæ§ã«ãã³ãŒãã¯ããŒã«ã«ã§å®è¡ããã³ãããã°ã§ããŸãã åäœãã¹ãã¯å€ãããŸããã ã«ã¹ã¿ã ã¹ã¿ãã¯æ§æã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ ã€ã³ãã©ã¹ãã©ã¯ãã£å šäœãå±éã§ãããããéçºè ã¯ãã¹ãã®ã³ã¹ããé«äŸ¡ãªç®¡çç°å¢ãžã®åœ±é¿ãèæ ®ããããšãªããéèŠãªãã£ãŒãããã¯ãè¿ éã«åŸãããšãã§ããŸãã
ãµãŒããŒã¬ã¹ ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®ããŒã«ãšãã¯ããã¯
ãµãŒããŒã¬ã¹ ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããã®ç¹å¥ãªæ¹æ³ã¯ãããŸããã ãã®ã¿ã¹ã¯çšã®äžé£ã®ãµãŒãã¹ãå«ãŸããŸãã AWS ã¯ä»æ¥ã匷åãªãµãŒããŒã¬ã¹ ãœãªã¥ãŒã·ã§ã³ã®ãªãŒããŒã§ããã次ã®ç¹ã«ã泚ç®ããŠãã ããã
ä»ã®èšèªã§èšè¿°ããŠããå ŽåããµãŒããŒã¬ã¹ ãã¬ãŒã ã¯ãŒã¯ã¯ãéåžžã«åŒ·å㪠YAML æ§æãã¡ã€ã«ã䜿çšããŠãããããã®ãæ§æã§ããåªãããªãŒãã³ ãœãŒã¹ ããŒã«ã§ãã Serverless Frameworkã¯ããŸããŸãªã¯ã©ãŠããµãŒãã¹ã«ã察å¿ããŠããã®ã§ããã«ãã¯ã©ãŠããœãªã¥ãŒã·ã§ã³ããæ¢ãã®æ¹ã«ããããã§ãã ããããããŒãºã«å¯Ÿå¿ããå€æ°ã®ãã©ã°ã€ã³ãäœæãã巚倧ãªã³ãã¥ããã£ããããŸãã
ããŒã«ã« ãã¹ãã«ã¯ããªãŒãã³ ãœãŒã¹ ããŒã«ã® Docker-LambdaãServerless LocalãDynamoDB Localãããã³ LocalStack ãé©ããŠããŸãã ãµãŒããŒã¬ã¹ ãã¯ãããžãšãã®ããŒã«ã¯ãŸã éçºã®åæ段éã«ãããããè€éãªãã¹ã ã·ããªãªãã»ããã¢ããããå Žåã¯ãæžåœã«åãçµãå¿ èŠããããŸãã ãã ããåã«ã¹ã¿ãã¯ãç°å¢ã«ãããã€ããŠããã§ãã¹ãããã ããªããä¿¡ããããªãã»ã©äœã³ã¹ãã§ãã ãŸããã¯ã©ãŠãç°å¢ã®æ£ç¢ºãªããŒã«ã« ã³ããŒãäœæããå¿ èŠããããŸããã
AWS Lambda Layers ã䜿çšããŠããããã€ãããããã±ãŒãžã®ãµã€ãºãåæžããããŠã³ããŒããé«éåããŸãã
ç¹å®ã®ã¿ã¹ã¯ã«ã¯é©åãªããã°ã©ãã³ã°èšèªã䜿çšããŸãã èšèªãç°ãªãã°ãããããé·æãšçæããããŸãã å€ãã®ãã³ãããŒã¯ããããŸãããAWS Lambda ã®ããã©ãŒãã³ã¹ã®ç¹ã§æãåªããŠããã®ã¯ JavaScriptãPythonãC# (.NET Core 2.1 以é) ã§ãã AWS Lambda ã¯æè¿ãã©ã³ã¿ã€ã API ãå°å ¥ããŸãããããã䜿çšãããšãåžæã®ã©ã³ã¿ã€ã èšèªãšç°å¢ãæå®ã§ããã®ã§ãè©ŠããŠã¿ãŠãã ããã
ãããã€ã¡ã³ãçšã«ããã±ãŒãžã®ãµã€ãºãå°ããããŠãã ããã å°ããã»ã©ããŒããéããªããŸãã ç¹ã«ã©ã€ãã©ãªã®ããã€ãã®æ©èœã䜿çšããå Žåã¯ã倧èŠæš¡ãªã©ã€ãã©ãªã®äœ¿çšãé¿ããŠãã ããã JavaScript ã§ããã°ã©ãã³ã°ããŠããå Žåã¯ãWebpack ãªã©ã®ãã«ã ããŒã«ã䜿çšããŠãã«ããæé©åããæ¬åœã«å¿ èŠãªãã®ã ããå«ããŸãã .NET Core 3.0 ã«ã¯ QuickJit ãšéå±€åã³ã³ãã€ã«ããããããã©ãŒãã³ã¹ãåäžããã³ãŒã«ã ã¹ã¿ãŒãæã«éåžžã«åœ¹ç«ã¡ãŸãã
ãµãŒããŒã¬ã¹æ©èœã¯ã€ãã³ãã«äŸåããŠãããããæåã¯ããžãã¹ ããžãã¯ã®èª¿æŽãå°é£ã«ãªãå ŽåããããŸãã ãã®ç¹ã§ãã¡ãã»ãŒãž ãã¥ãŒãšã¹ããŒã ãã·ã³ã¯éåžžã«åœ¹ç«ã¡ãŸãã Lambda é¢æ°ã¯çžäºã«åŒã³åºãããšãã§ããŸããããããè¡ãã®ã¯ãå¿çãæåŸ ããŠããªãå Žå (ãèµ·åããŠå¿ãããå Žå)ãã€ãŸãå¥ã®é¢æ°ã®å®äºãåŸ ã€ããšã§æéãè«æ±ãããããªãå Žåã«éãããŸãã ã¡ãã»ãŒãž ãã¥ãŒã¯ãããžãã¹ ããžãã¯ã®äžéšã®åé¢ãã¢ããªã±ãŒã·ã§ã³ã®ããã«ããã¯ã®ç®¡çãããã³ãã©ã³ã¶ã¯ã·ã§ã³ã®åŠç (FIFO ãã¥ãŒã䜿çš) ã«åœ¹ç«ã¡ãŸãã AWS Lambda é¢æ°ã¯ãåŸã®åæã®ããã«å€±æããã¡ãã»ãŒãžã远跡ããæ»çã¡ãã»ãŒãž ãã¥ãŒãšã㊠SQS ãã¥ãŒã«å²ãåœãŠãããšãã§ããŸãã AWS Step Functions (ã¹ããŒããã·ã³) ã¯ãé¢æ°ã®é£éãå¿ èŠãšããè€éãªããã»ã¹ã管çããã®ã«éåžžã«åœ¹ç«ã¡ãŸãã Lambda é¢æ°ãå¥ã®é¢æ°ãåŒã³åºã代ããã«ãã¹ãããé¢æ°ã¯ç¶æ é·ç§»ã調æŽããé¢æ°éã§ããŒã¿ãæž¡ããé¢æ°ã®ã°ããŒãã«ç¶æ ã管çã§ããŸãã ããã«ãããåè©Šè¡æ¡ä»¶ããç¹å®ã®ãšã©ãŒãçºçããå Žåã®å¯ŸåŠæ¹æ³ãå®çŸ©ã§ããŸããããã¯ãç¹å®ã®ç¶æ³ã§ã¯éåžžã«åŒ·åãªããŒã«ã§ãã
ãŸãšã
è¿å¹ŽããµãŒããŒã¬ã¹ãã¯ãããžãŒã¯åäŸã®ãªãããŒã¹ã§çºå±ããŠããŸãã ãã®ãã©ãã€ã ã·ããã«é¢é£ããŠãããçš®ã®èª€è§£ããããŸãã ã€ã³ãã©ã¹ãã©ã¯ãã£ãæœè±¡åãã管çãæ¡åŒµããããšã«ããããµãŒããŒã¬ã¹ ãœãªã¥ãŒã·ã§ã³ã¯ãéçºããã³ DevOps ããã»ã¹ã®ç°¡çŽ åããéçšã³ã¹ãã®å€§å¹
ãªåæžãŸã§ã倧ããªã¡ãªããããããããŸãã
ãµãŒããŒã¬ã¹ã®ã¢ãããŒãã«ã¯æ¬ ç¹ããªãããã§ã¯ãããŸããããå
ç¢ãªãµãŒããŒã¬ã¹ ã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ãããããµãŒããŒã¬ã¹èŠçŽ ãæ¢åã®ã¢ãŒããã¯ãã£ã«çµ±åãããããããã«äœ¿çšã§ããå
ç¢ãªèšèšãã¿ãŒã³ããããŸãã
åºæïŒ habr.com