ãã®è¨äºã¯ã¨ã ã¹ãªã¼Advent Calendar 2023ã®20æ¥ç®ã®è¨äºã§ãã
ã¨ã ã¹ãªã¼ã¨ã³ã¸ãã¢ãªã³ã°G ã³ã³ã·ã¥ã¼ããã¼ã ã®æ¾å(@ma2ge)ã§ãã ä»åã¯ã³ã³ã·ã¥ã¼ããã¼ã ã§å©ç¨ãã¦ããSaaSã®ã¡ã¼ã«é ä¿¡ã·ã¹ãã ããæ°è¦ã«éçºãã社å ã·ã¹ãã ã«ç§»è¡ããçµç·¯ãè¨è¨æã«æèãããã¨ãªã©ã«ã¤ãã¦ç´¹ä»ãã¾ãã
èæ¯
ä»å移è¡ããå¥æ©ã¨ãªã£ãã®ã¯ã¡ã¼ã«ã®é ä¿¡æ°å¢å ã«ä¼´ãSaaSã®å©ç¨æéå¢ã§ãã ç¹ã«å®æçã«éãã¡ã«ãã¬é ä¿¡ã«ã¤ãã¦ã¯ãé ä¿¡éãå¤ãå©ç¨ã³ã¹ããæ¼ãä¸ããè¦å ã¨ãªã£ã¦ãã¾ããã ãã®ããã¡ã«ãã¬é ä¿¡ã§å¤§éã«ä½¿ç¨ããé¨åã«ã¤ãã¦ã®ã·ã¹ãã 移è¡æ¤è¨ãå§ã¾ãã¾ããã
移è¡æ¤è¨
SaaSãã移è¡å¾ã®ã·ã¹ãã ã«ã¤ãã¦è©¦ç®ããã¨ãã·ã¹ãã ã®éçºãå©ç¨æã¨ãã£ãã³ã¹ãé¢ã§ã¯ç¤¾å ã§æ§ç¯ããã·ã¹ãã ã®æ¹ãå¤§å¹ ã«ã³ã¹ããä¸ãããã¨ããããã¾ããã ããããªããã¡ã¼ã«ãµã¼ãã¼ãå«ãã¦ä¸¸ãã¨ã¡ã¼ã«é ä¿¡ã·ã¹ãã ãä½ãã®ã¯ãã¼ã ã«ã¨ã£ã¦ã¯ãããªãã«è² è·ãããã¾ãã ç¹ã«ä»ã®ãã¼ã ã¯ä¸»ã«ãµã¼ãã¹ãéçºãã¦ãããã¼ã ã§ããããã¡ã¼ã«å¨ãã®ç¥è¦ã¯ã»ã¨ãã©ããã¾ããã ä¾ãã°IPã®ã¬ãã¥ãã¼ã·ã§ã³ãé«ãããã¨ã«ã©ããããã®åãå ¥ããã®ãããã¦ã³ã¹ã®å¯¾å¿ã¯ã©ã®ããã«è¡ã£ã¦ããã®ããªã©ãèããã¹ããã¨ã¯ããã¤ãããéçºãéç¨ã¨ãã«æéãæéãåãããããªãã¨ãäºæ³ã§ãã¾ããã å©ç¨æãåæ¸ãããã¨ã¯ãããèå¿ã®ãµã¼ãã¹éçºã«ä½¿ãæéãæ¸å°ãã¦ãã¾ã£ã¦ã¯ãåæ¸ã§å¾ãããå©çãããæ©ä¼æ失ã«ããå©çã®æ¸å°ã®æ¹ã大ãããªãæ¬æ«è»¢åã¨ãªãå¯è½æ§ãããã¾ãã
ãã®ããä»åã¯ä¸¸ãã¨å ¨ã¦ãä½ãã®ã§ã¯ãªããã¡ã¼ã«ãµã¼ãã¼é¨åã«ã¤ãã¦ã¯ç¤¾å ã®ãã®ãå©ç¨ãããã¨ã«ãã¾ããã ã¨ã ã¹ãªã¼ãé·ããã¨ãµã¼ãã¹ãéå¶ãã¦ããã社å 横æã®SREãã¼ã ãéç¨ãã¦ããã¡ã¼ã«é ä¿¡ç¨ã®ç¤¾å ã¡ã¼ã«ãµã¼ãã¼ãããã¾ãã ãã¡ããå©ç¨ãããã¨ã§ãã¡ã¼ã«ãµã¼ãã¼å¨ãã®éç¨ãSREãã¼ã ã«è¦ã¦ããããã¨ã§è² æ ãä¸é¨è»½æ¸ããä»åéçºããã¡ã¼ã«é ä¿¡ã·ã¹ãã é¨åããã¼ã å ã§è¦ãããã«ãããã¨ã§éç¨è² è·ãç¾å®çãªç¯å²ã«ã§ãããã¨å¤æãã¾ããã 移è¡å¯¾è±¡ã®ã¡ã«ãã¬ã¯ãããªãã«é ä¿¡éãå¤ã社å ã¡ã¼ã«ãµã¼ãã¼ã®è² è·ãå¿é ã§ãããã幸ãã¡ã¼ã«ãµã¼ãã¼ãå¼·åãããã¨ã§é ä¿¡éã¯ã«ãã¼ã§ãããã¨ã®è¦è¾¼ã¿ãç«ã¦ã¦ããããã¨ãã§ãããã®æ¡ã§éçºãé²ãããã¨ã«ãªãã¾ããã
è¨è¨æã«æèãããã¨
ã¨ãããã¨ã§ç¤¾å ã¡ã¼ã«ãµã¼ãã¼ãå©ç¨ãããã¨ã§æ¹éã¯æ±ºã¾ã£ãã®ã§ã次ã¯è¨è¨ã®æ¹éã§ãã è¦ä»¶ã¨ãã¦ã¯SaaSã§å©ç¨ãã¦ããä¸è¨æ©è½ãã¾ãã¯å¿ è¦ãªåæºãããã¨ã§ãã
- ã¡ã¼ã«é ä¿¡é度ã段éçã«ããã¦ãããµã¼ãã¹ã«å¿ è¦ãªé ä¿¡é度ãç®æã
- ã¡ã¼ã«é ä¿¡ã«ä¼´ãé ä¿¡ç¶æ³ãã¯ãªãã¯æ°çã®è¨æ¸¬
ã¡ã¼ã«ã®é ä¿¡é度ã«ã¤ãã¦ã¯ãå°éçãªãµã¼ãã¹ã¨ãã¦æä¾ãã¦ããSaaSã«è¿½ãã¤ããã¨ã¯é£ããã§ãããã®ããèªãµã¼ãã¹ã§æ±ãã¦ããé ä¿¡é度ãç®æããã¨ã«ããé ä¿¡é度ã段éçã«é«ãã¦ãããã¨ã§èª¿æ´ãã¤ãã¾ããã 移è¡å¾ã¯éä¿¡éãå¤ããªãã®ã§IPã¬ãã¥ãã¼ã·ã§ã³ã®ãªã¹ã¯ãé«ã¾ãã¾ãããã®æå³ã§ãããã¯ä¸æ°ã«é度ãããã¦ããã¨ãããã¨ã¯ããã«å¾ã ã«é²ãã¦ããå¿ è¦ãããã¾ãã
éçºå¨ãã«ã¤ãã¦ã¯å æ¥ã®è¨äºãAWS Lambda ã§ã Rails 㧠Web éçºããã覧ããã ãã¦ãä»åã¯éç¨ã¨ç¬ç«æ§ã«ã¤ãã¦è¨ãã¾ãã
éç¨æ¥½ã«
è¨è¨ã§æèãããã¨ã®1ç¹ç®ã¯éç¨ã楽ã«ãªãããã«ãããã¨ã§ãã移è¡æ¤è¨ã«ãè¨è¼ãã¾ãããããµã¼ãã¹éçºã«éä¸ã§ããããéç¨ã¯æ¥½ã§ããã°ããã»ã©è¯ãã§ãã
ã¡ã¼ã«é ä¿¡ã«ã¤ãã¦ã¯ç¤¾å ã¡ã¼ã«ãµã¼ãã¼ã®å¼·åãã¡ã«ãã¬é ä¿¡ã®éã«ãã£ã¦ãããç¨åº¦æè»ã«é ä¿¡é度ã調ç¯ã§ããã¨éç¨ã³ã¹ããä¸ãããã¨ãè¦è¾¼ããã®ã§ãã¹ã±ã¼ã©ããªãã£ãé«ããããã«SQSã¨AWS Lambdaãçµã¿åããã¦æ¡ç¨ãããã¨ã«ãã¾ããã ãã®é£æºã§ã¯SQSãã¤ãã³ãã½ã¼ã¹ã¨ããã¨ãã®æ大åæå®è¡æ°ãå¶å¾¡ã§ããã®ã§ããã®æ°å¤ãå¤åãããã ãã§ç°¡æçã«å¦çé度ãã¹ã±ã¼ã«ããããã¨ãã§ãã¾ãã ã¾ãæ大ã§1000ã¾ã§åæå®è¡æ°ãã¹ã±ã¼ã«ããããã¨ãã§ããããã1é¢æ°ãããã§ãããªãã®éãå¦çã§ããã°ãä»å¾ã¡ã¼ã«é ä¿¡ãå¢ããã¨ãã¦ãååã«å¦çã§ããã ãã®è½åãè¦è¾¼ãã¾ãã
ã¡ã¼ã«ã®é ä¿¡ç¶æ³ãã¯ãªãã¯æ°ã®æ¸¬å®ã«é¢ãã¦ã¯ã§ããã ããµã¼ãã¼ç®¡çä¸è¦ãªAWSãµã¼ãã¹ãçµã¿åããããã¨ã«ãã¾ããã AWS LambdaããCloudWatch Logsçµç±ã§ã¤ãã³ããåºåãã¦ããã¦ãFirehoseãçµç±ãS3ã¸ãã°ãã¡ã¤ã«ãåºåãããã®å¾AWS Glueã使ç¨ãã¦ç¤¾å ã®å ±éDWHåºç¤ã§ããBigQueryã¸ã¨ãã¼ã¿é£æºãããããªä»çµã¿ãæ§ç¯ãã¾ããã AWS Glueã¯åãã¦ä½¿ç¨ããAWSã®ãµã¼ãã¹ã§ã¯ãã£ãã®ã§ããããµã¼ãã¼ã¬ã¹ã§éç¨å¨ããä»»ãããããã ã£ããã¨ããé¸å®ãããã¨ã«ãã¾ããã社å çã«ã¯Embulkã使ã£ã¦ãããã®ãå¤ãã®ã§ããããµã¼ãã¼ãå ±ç¨ãã¦ãããQAç¨ã®ãªã½ã¼ã¹ãããã»ã©å¤ããªããã¨ãæ¸å¿µã¨ãªãä»åã®ããã¸ã§ã¯ãã§ã¯è¦éããã¨ã«ãã¾ããã
ç¬ç«æ§
2ç¹ç®ã¯é ä¿¡ã·ã¹ãã ã®ç¬ç«æ§ã§ããã¤ã¯ããµã¼ãã¹ã¨ãã¦åãåºãã¦éçºããããã«ãããã¨ã§ãã ã¡ã¼ã«å¨ãã«é¢ãã¦ãã®ã·ã¹ãã ã«åãåºããã¨ã§ããµã¼ãã¹é¨åã¯èªåãã¡ã®ãã¸ãã¹ãã¸ãã¯ã«éä¸ã§ãã¾ãã ã¾ãä»ã¯ã¾ã éçºã§ãã¦ããªãã®ã§ããå°æ¥çã«äºç´éä¿¡çã®æ©è½ãå ¥ãã°ããµã¼ãã¹é¨åã§äºç´ã«ã¾ã¤ããä½è¨ãªè¤éããæ±ããå¿ è¦ããªããªãã¾ãã
ã¨ãããã¨ã§ä»åã¯ãã®ãããªæ§æã§ã·ã¹ãã ãæ§ç¯ãã¾ããï¼ã¡ã¼ã«éä¿¡ããé ä¿¡ç¶æ³ã®è¨æ¸¬ã¾ã§ï¼
æ¬è¨äºã§ã¯ç´¹ä»ã§ãã¾ããã§ããããã¡ã¼ã«ãµã¼ãã¼å¨ãã®éç¨ã«ã¤ãã¦ã¯SREãã¼ã ã®è¨äºãããã¾ãã®ã§èå³ã®ããæ¹ã¯ãã²ã覧ã«ãªã£ã¦ãã ããã
çµæ
ãã®ãããªæ§æãæå³ã§è¨è¨ããçµæã§ãããæ¬ã·ã¹ãã ã®éç¨ã§é¼è¿«ãããã¨ããªããµã¼ãã¹éçºãå¼ãç¶ãå®æ½ã§ãã¦ãã¾ãã
SQSã¨AWS Lambdaã®çµã¿åããã¯è¦è¾¼ã¿éããåæå®è¡æ°ã®å¶å¾¡ã使ããã¨ã§æè»ãªéç¨ãã§ãã¦ã¨ã¦ã便å©ã§ãããç¹ã«ã¡ã¼ã«ãµã¼ãã¼ã®é ä¿¡å¦çæ§è½ãåä¸ãããã¨ã«åããã¦ãã¡ãã®å¦çé度ã追å¾ãããå¿ è¦ããã£ããããè¨å®å¤ã®å¤æ´ã®ã¿ã§è¿½å¾ã§ããã®ã¯é常ã«æ¥½ã§ããã AWS Glueã¯åãã¦è§¦ããµã¼ãã¹ã§ãããéç¨ãã¦ã¿ãã¨ç®¡çãããµã¼ãã¼ãå¿ è¦ãªããã¹ã±ã¸ã¥ã¼ã«å®è¡ã§ãããããã°ãæåããåãã¦ããããã¨éç¨ç®ç·ã§æ¥½ãã§ãã¦ããã£ãã§ããä¸æ¹ã§AWS Glueã¯éçºã§çµæ§ããã£ã¦ãã¾ã£ãããSparkã«ãªãã¦ããªãã£ããã§æéåã£ãé¨åãããã¾ããã
ç¬ç«æ§ã«ã¤ãã¦ã¯å ã SaaSã使ã£ã¦ãããã¨ããããæ¯è¼çåããããAPIãå¼ã³åããã ãã§ç§»è¡ãããããç¶æ ã«ã§ãããã¨æãã¾ããã¡ã¼ã«é ä¿¡ã«ç¹åãããããããããããå°æ¥çã«ã¯å¥ã®ãµã¼ãã¹ã§åãã·ã¹ãã ã使ãåãã¨ãããã¨ãã§ããããããã¾ããã
å½åç®çã§ããã³ã¹ããã¦ã³ã«ã¤ãã¦ãæéã§ç´100ä¸åã»ã©åæ¸ã§ãã¾ããã
We are hiring!
ä»åã¯ç´è¿ã§æ å½ããã¡ã¼ã«é ä¿¡ã·ã¹ãã ã®ç§»è¡ã«ã¤ãã¦æ¯ãè¿ãã¤ã¤è¨é²ãã¦ã¿ã¾ããã éçºã®ææ決å®ã«ã¤ãã¦æ¥å¸¸ã®æ§åãå°ãã§ãä¼ããã°ã¨æãã¾ãã
ã¨ã ã¹ãªã¼ã§ã¯éçºããéç¨ã¾ã§ä¸æ°é貫ã§æ å½ãããæè¡å¥½ããªã¨ã³ã¸ãã¢ãåéãã¦ããã¾ãããèå³ãããã¾ãããããæ°è»½ã«ãåãåãããã ããã