ãã®è¨äºã¯ç¬¬1åã¦ã§ãã·ã¹ãã ã¢ã¼ããã¯ãã£(WSA)ç 究ä¼ã®äºç¨¿ã§ãã
cronã®ãããªã¿ã¤ã ã¹ã±ã¸ã¥ã¼ã©ã¼ã«ãããå®æçã«å®è¡ããããããå¦çã®èª²é¡ã解決ããã¢ã¼ããã¯ãã£ãæè¿èãã¦ããã ãã®è¨äºã§ã¯ãåä¸ã®ã¿ã¤ã ã¹ã±ã¸ã¥ã¼ã©ã«ããcronãã¼ã¹ã®ææ³ã«ä»£ãã¦ããã¼ã¿ã«å¯¾ãã¦ã¿ã¤ãã¼ã¨å¦çãä»è¾¼ããã¨ã§ã¹ã±ã¼ã«ãããããæ§é ã«ã§ããªãããã¨ããææ¡ã試ã¿ãã
ã¯ããã«
Webãµã¼ãã¹ã«ããã¦ããªã¯ã¨ã¹ãã«å¯¾ãã¦HTMLã®ã¬ã¹ãã³ã¹ãè¿å´ãã以å¤ã®ã¯ã¼ã¯ãã¼ãã®å¤æ§åãé²ãã§ããã æè¿ã§ããã°ãæ©æ¢°å¦ç¿ã«ããæéå¨æã«ãã大è¦æ¨¡ãªãã¼ã¿å¦çãæ±ãããããã¨ãå¤ãã ãã®ä»ãæ次ã®èª²éãããå¦çããã©ã³ãã³ã°ã®å®ææ´æ°ãªã©ãä¸å®ã®æéééã§ä»»æã®å¦çãå®è¡ãããã±ã¼ã¹ã¯å¤ãã
ãã®ãããªå®æçãªãã¼ã¿å¦çãã¿ã¼ã³ã¯ãSREæ¬[Bet17]ã®25.1ç¯ããã¤ãã©ã¤ã³ã®ãã¶ã¤ã³ãã¿ã¼ã³ã®èµ·æºãã«ã¦ããã¼ã¿ãã¤ãã©ã¤ã³ã¨å®ç¾©ããããã¶ã¤ã³ãã¿ã¼ã³ã«åé¡ã§ããã
ãã¼ã¿å¦çã«å¯¾ããæ§æ¥ã®ã¢ããã¼ãã¯ããã¼ã¿ãèªã¿åããå¸æããä½ããã®æ¹æ³ã¦ããã®ãã¼ ã¿ãå¤æããæ°ãããã¼ã¿ãåºåãããããã¯ãã©ã ãæ¸ãã¨ãããã®ã¦ããããé常ãããã£ããããã¯ãã©ã ã¯ãcron ã®ãããªå®æã¹ã±ã·ãã¥ã¼ãªã³ã¯ããè¡ããããã¯ãã©ã ã®å¶å¾¡ã®ä¸ã¦ãã¹ã±ã·ãã¥ã¼ã«å®è¡ããã¾ããããã®ãããµãã¤ã³ããã¿ã¼ã³ã¯ããã¼ã¿ããã¤ããã©ã¤ã³ã¨å¼ã¯ããã¾ãã ãSRE ãµã¤ããªã©ã¤ã¢ããªãã£ã¨ã³ã¸ãã¢ãªã³ã° ââGoogleã®ä¿¡é ¼æ§ãæ¯ããã¨ã³ã¸ãã¢ãªã³ã°ãã¼ã ã
ãã¼ã¿ãã¤ãã©ã¤ã³å¦çãå®ç¾ããä¸è¬çãªæ¹å¼ã¯ãç¹å®ãµã¼ãä¸ã®cronãªã©ã®ã¿ã¤ã ã¹ã±ã¸ã¥ã¼ã©ã¼ã«ããããããå¦çãå®è¡ãããæ¹å¼ã§ããã
ä¸è¬ã®ãã¼ã¿ãã¤ãã©ã¤ã³ã®æ¬ ç¹ã¨ãã¦ã25.3ç¯ãå®æçãªãã¤ãã©ã¤ã³ãã¿ã¼ã³ã§ã®èª²é¡ãã«ã¦ãæéå ã«å®è¡ãçµãããªãã¸ã§ãããªã½ã¼ã¹ã®æ¯æ¸ãå¦çã®é²ã¾ãªããã£ã³ã¯ã¨ããã«ä¼´ãéç¨è² è·ãæãããã¦ããã ãã®è¨äºã§ã¯ãä¸è¬ã®ãã¼ã¿ãã¤ãã©ã¤ã³ã®èª²é¡ã¯ä»¥ä¸ã®4ã¤ã§ããã¨ä»®å®ããã
- a) ãã¼ã¿éå¢å¤§ã«ããããã¹ã±ã¼ãªã³ã°éç¨ã®é£ãã
- b) ãããå¦çéä¸ã®ã¨ã©ã¼å¦çã®é£ãã
- c) ã¿ã¤ã ã¹ã±ã¸ã¥ã¼ã©ãã®ãã®ã®éç¨ã®ç ©éã
- d) å®è¡é »åº¦è¨å®ã®æè»æ§ã®ä½ã
ä¸è¬ã®ãã¼ã¿ãã¤ãã©ã¤ã³ã®èª²é¡ãããã¼ã¿ã¨å¦çã¨ã¿ã¤ãã¼ãä¸ä½åããã¢ã¼ããã¯ãã£ã«ãã解決ã§ããã¨èãã¦ããã ææ¡ããã¢ã¼ããã¯ãã£ã§ã¯ããã¼ã¿ã«ç´ä»ããã¿ã¤ãã¼ãã¸ã§ããèµ·åããã ããã«ãããä¸è¬ææ³ã¨æ¯è¼ããã¹ã±ã¼ã©ãã«ãã¤ç´°ããç²åº¦ã§å¶å¾¡ãããããã¼ã¿ãã¤ãã©ã¤ã³å¦çãã§ããã èµ·çè£ ç½®ã¨çè¬ã¨ã¿ã¤ãã¼ãä¸ä½åããæé信管(Time Fuze)ã«ä¼¼ã¦ãããã¨ããããã®ã¢ã¼ããã¯ãã£ããTimeFuzeã¢ã¼ããã¯ãã£ãã¨åä»ãã¦ã¿ãã
課é¡aã«ã¤ãã¦ã¯ãæåãã並è¡å¦çãåæã¨ããã¢ã¼ããã¯ãã£ã«ãã解決ã§ããã 課é¡bã«ã¤ãã¦ã¯ããããå¦çã§ã¯ãªãã¬ã³ã¼ãåä½ã§ã¸ã§ãå®ç¾©ãããã¨ã«ãã解決ã§ããã 課é¡cã«ã¤ãã¦ã¯ããã¼ã¿ã¹ãã¢ã®TTLã«ããã¹ã±ã¸ã¥ã¼ã©ãã¹ããä¸è¦ã¨ãªãã 課é¡dã«ã¤ãã¦ã¯ãã¿ã¤ãã¼è¨å®ã®ç²åº¦ãã¬ã³ã¼ãåä½ã§è¨å®ãããã¨ã§è§£æ±ºã§ããã
以åéçºããæç³»åãã¼ã¿ãã¼ã¹ã¢ã¼ããã¯ãã£[yuu17]ã§ã¯ãç¹æ§ã®ç°ãªã3種é¡ã®åæ£ãã¼ã¿ã¹ãã¢ãçµã¿åãããå¤ããã¼ã¿ãé ããã£ã¹ã¯ã¸å¾ã ã«éãã¦ãããã¨ã«ãããæ§è½ã¨ã³ã¹ããæé©åããããã¼ã¿ã¹ãã¢å®è£ ã¨ãã¦ãã¤ã³ã¡ã¢ãªDBï¼Redis Clusterï¼ããªã³ãã£ã¹ã¯DBï¼Amazon DynamoDBï¼ããªãã¸ã§ã¯ãã¹ãã¬ã¼ã¸ï¼Amazon S3ï¼ãæ¡ç¨ãã¦ããã ãã®ã¢ã¼ããã¯ãã£ãèããä¸ã§éè¦ãªã®ã¯ãã©ã®ããã«ãã¼ã¿ã移åããããã¨ãããã¨ã ã£ãã åè¿°ã®ä¸è¬çãªææ³ã«ããããã¼ã¿ã¬ã³ã¼ããèµ°æ»ããä¸å®ä»¥ä¸å¤ãã¿ã¤ã ã¹ã¿ã³ãããã¤ã¬ã³ã¼ããèªã¿åºãã次ã®ãã¼ã¿ã¹ãã¢ã¸æ¸ãè¾¼ãã¨ããç´ æ´ãªææ³ãã¾ãèããã æç³»åãã¼ã¿ãã¼ã¹ã®ã¢ã¼ããã¯ãã£ã§ã¯ãããããã¼ã¿ã¹ãã¢ã®ã¬ã³ã¼ãåä½ã®TTLãå©ç¨ãã¦è§£æ±ºããã å ·ä½çã«ã¯ããã¼ã¿ã¹ãã¢ã«æ¸ãè¾¼ãã¨ãã«ãã¬ã³ã¼ãã«å¯¾ãã¦TTLï¼Time To Liveï¼ãè¨å®ããTTLãæéåãã«ãªã£ãã¿ã¤ãã³ã°ã§ãããªã¬ã¼ãèµ·åããæéåãã¬ã³ã¼ããå¥ã®ãã¼ã¿ã¹ãã¢ã¸æ¸ãè¾¼ãã å®è£ ã¨ãã¦ãDynamoDB Streamsã¨Lambda Triggersã®çµã¿åãã[dyn01]ã¨DynamoDBã®TTL[dyn02]ãå©ç¨ããDynamoDBããS3ã¸ãã¼ã¿ã移åãããã ããã«ããããã¤ãã©ã¤ã³å¦çãããããå¦çã§ã¯ãªããã¬ã³ã¼ãåä½ã®ã¤ãã³ãé§ååå¦çã«ç½®ãæããããã
ã®ã¡ã«ãTTLãç¨ãããã¼ã¿ãã¤ãã©ã¤ã³ã¢ã¼ããã¯ãã£ãæç³»åãã¼ã¿ãã¼ã¹ä»¥å¤ã®ãã¼ã¿ãã¤ãã©ã¤ã³ã«é©ç¨ã§ããªãããèããã ä¾ãã°ãæ©æ¢°å¦ç¿ã®å¦ç¿ã¢ãã«ã®å®ææ´æ°ãããã«ãããã³ãç°å¢ã«ããã大éã®SSL/TLS証ææ¸[mat17]ã®å®ææ´æ°ãªã©ãããã 以éã§ã¯ãTimeFuzeã¢ã¼ããã¯ãã£ã®è©³ç´°ã¨å®è£ æ段ãã¢ããªã±ã¼ã·ã§ã³é©ç¨ã«ã¤ãã¦è°è«ããã
ææ¡ææ³
TimeFuzeã¢ã¼ããã¯ãã£
TimeFuzeã¢ã¼ããã¯ãã£ã®åä½ããã¼ã以ä¸ã®å³ã«ç¤ºãã
DataSourceã¯ãã¼ã¿ãã¤ãã©ã¤ã³ã®èªã¿åºãå´ãæããDataDestinationã¯æ¸ãåºãå´ãæãã Triggerã¯DataSourceã¬ã³ã¼ãåä½ã®ãã¤ãã©ã¤ã³å¦çãå®è¡ããã
ã¾ããDataSourceã«å¯¾ãã¦ãTriggerãå®è¡ãããæå»ã表ãTTLã¨å ±ã«ãã¼ã¿ã¬ã³ã¼ããæ¸ãè¾¼ãã 次ã«ãTTLã®æéåã(expire)ãæ¤ç¥ããTriggerã«æéåãããã¬ã³ã¼ãã渡ãã ããã«ãTriggerã渡ãããã¬ã³ã¼ãããã¨ã«æå®ã®å¦çãå®è¡ããDataDestinationã«å¯¾ãã¦ãçµæãæ¸ãè¾¼ãã Triggerã§ã¯ããã®ä»ã®APIããã¼ã¿ã¹ãã¢ãããã¼ã¿ãåå¾ãããã¨ãããã DataDestinationã¯ãDataSourceã¨åä¸ã®ãã¼ã¿ã¹ãã¢ã§ãããã åè¿°ã®å¦ç¿ã¢ãã«ã®æ´æ°ã証ææ¸æ´æ°ã®ä¾ã§ã¯ãDataSourceã¨DataDestinationã¯åä¸ã®ãã¼ã¿ã¹ãã¢ãå©ç¨ãããã¨ãæ³å®ãã¦ããã
TimeFuzeã®ã¡ãªãã
TimeFuzeã¢ã¼ããã¯ãã£ã«ã¯ä»¥ä¸ã®ã¡ãªãããããã
- a) 並è¡å¦çãåæã¨ããã¢ã¼ããã¯ãã£ã§ãããã¹ã±ã¼ã«ããããããã¨
- b) ã¨ã©ã¼ããã®å復å¦çã容æã§ãããã¨
- c) ã¿ã¤ã ã¹ã±ã¸ã¥ã¼ã©ã¨ãããå¦çã®ããã®ãã¹ããããã¯ã¯ã©ã¹ã¿ã®æ§ç¯ã»éç¨ãä¸è¦ã§ãããã¨
- d) ã¬ã³ã¼ãåä½ã§ã¿ã¤ãã¼ãã»ãããããããã¸ã§ãã®å®è¡é »åº¦ãã¬ã³ã¼ãåä½ã§èª¿æ´å¯è½
a) ã«ã¤ãã¦ããããå¦çã®å ´åããã«ãã³ã¢ã»ãã«ããã¹ãã¹ã±ã¼ã«ãããã¾ãã¯I/Oå¤éåããããã®ä¸¦è¡å¦çå®è£ ãéçºè ã«è¦æ±ããã TimeFuzeã§ã¯ãã¬ã³ã¼ãåä½ã§ããªã¬ã¼å¦çãè¨è¿°ãããããã¹ã±ã¼ã«ãããããã b) ã«ã¤ãã¦ãTimeFuzeã§ã¯ã1ã¬ã³ã¼ãåã®å¦çãæ¸ãã°ãããããã¨ã©ã¼çºçæã«ãªãã©ã¤ããå ´åãã©ãã¾ã§å¦çãçµããããè¨é²ããã¨ãã£ãå復å¦çã®ããã®å®è£ ãå¿ è¦ããªãã
TimeFuzeã®å®è£
å®è£ ã¨ãã¦ãAmazon DynamoDBã¨AWS Lambdaãå©ç¨ããä¾ã¨ãRedisãå©ç¨ããä¾ããããã
Amazon DynamoDBããã³AWS Lambda
Amazon DynamoDBã¯ããã«ããã¼ã¸ãåã®NoSQLãã¼ã¿ãã¼ã¹ãµã¼ãã¹ã§ããã AWS Lambdaã¯ãä»»æã®ã¤ãã³ããå ¥åã¨ãã¦ä»»æã®å¦çãFunctionã¨ãã¦ç»é²ãã¦ããã¨ãã¤ãã³ãçºç«ãå¥æ©ã«Functionãå¼ã³åºããã ããããçµã¿åãããDynamoDBä¸ã®ã¬ã³ã¼ãã«å¯¾ããç»é²ãæ´æ°ãåé¤ã®ã¤ãã³ããå¥æ©ã«ãLambda Functionãããªã¬ã¼ã¨ãã¦å®è¡ã§ããã DynamoDBã¯TTLããµãã¼ããã¦ãããTTL expiredã¤ãã³ããå¥æ©ã«Lambda Functionãå®è¡ã§ããã
DynamoDBãDataSourceã¨ãã¦ãããªã¬ã¼å¦çã«Lambdaãå©ç¨ãããã¨ã§ãTimeFuzeã¢ã¼ããã¯ãã£ãç´ ç´ã«å®è£ ã§ããã
Redis
Redisã¯å¤å½©ãªãã¼ã¿æ§é ããã¤ã¤ã³ã¡ã¢ãªDBã§ãããæ¨ä»ã®Webã¢ããªã±ã¼ã·ã§ã³ã®ãã¼ã¿ã¹ãã¢ã®ä¸ã¤ã¨ãã¦ãåºãå©ç¨ããã¦ããã Redisã¯Keyspaceéç¥[rednot]æ©è½ããã¡ããã¼ã«å¯¾ããã¤ãã³ããPub/Subã«ãããè³¼èªè ã«ã¡ãã»ã¼ã¸éç¥ã§ããã Keyspaceéç¥ãå©ç¨ããDynamoDBåæ§ã«ããªã¬ã¼å¦çãå®ç¾ã§ããã
ãã ããå®éç¨ã®ããã®ããªã¬ã¼å¦çãå®ç¾ããã«ã¯ãã¤ãã³ãéç¥ä»¥å¤ã«ãéç¥ããã¤ãã³ãã®æ°¸ç¶åã¨ã¤ãã³ããåä¿¡ãå¦çããããªã¬ã¼ã®å®è£ ãå¿ è¦ã¨ãªãã Redisèªä½ã¯ãå¾è ã®2ã¤ããµãã¼ãããªããããã¢ããªã±ã¼ã·ã§ã³éçºè ãæ±ç¨çã«å©ç¨ã§ããå®è£ ãæ示ãããã
ããã§ã以åçè ãéçºããã¸ã§ããã¥ã¼ã·ã¹ãã [yuu14]Fireworq[gitfir]ã«çç®ããã Fireworqã§ã¯ãã¸ã§ãã®æ°¸ç¶åããµãã¼ãããæå®ã®ã¤ã³ã¿ãã§ã¼ã¹ãæºããã¦ããã°ä»»æã®è¨èªã§éçºããWebã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã«å¯¾ãã¦ã¸ã§ãå®è¡ãä¾é ¼ã§ããã Redisã®Keyspaceéç¥ã¨Fireworqãçµã¿åããããã¨ã«ãããã¡ãã»ã¼ã¸ã®æ°¸ç¶åããµãã¼ããã¤ã¤ãä»»æã®è¨èªã«ããããªã¬ã¼å¦çãå®ç¾ã§ããã ãã ããRedisã«Keyspaceéç¥ãåä¿¡ããFireworqã¸æ稿ããã³ã³ãã¼ãã³ããæ°ãã«å®è£ ããå¿ è¦ãããã
TimeFuzeã®å ·ä½çãªã¢ããªã±ã¼ã·ã§ã³ã¸ã®é©ç¨
èªåã®æè¿ã®æ¥åçµé¨ãããæç³»åãã¼ã¿ã®ç°å¸¸æ¤ç¥ã¨å¤§è¦æ¨¡SSL/TLS証ææ¸ç®¡çã¢ããªã±ã¼ã·ã§ã³ã¸ã®TimeFuzeã¢ã¼ããã¯ãã£ã®é©ç¨ãèããã
æç³»åãã¼ã¿ã®ç°å¸¸æ¤ç¥
æ©æ¢°å¦ç¿ãWebãµã¼ãã¹ã«å°å ¥ããã¨ãææ°ã®æ稿ãã¼ã¿ã«è¿½å¾ããããã«ãå®æçã«å¦ç¿ã¢ãã«ãæ´æ°ãããã¨ãããã TimeFuzeã«ãããDataSourceä¸ã®ã¢ãã«ã®æ´æ°å¦çãTriggerã¨ãã¦ç»é²ããã¢ãã«æ´æ°æã«TTLãã»ãããã¦åæ¸ãè¾¼ã¿ãããã¨ã«ããããã¼ã¿ãã¤ãã©ã¤ã³ã¨ãã¦æ©è½ããã
æç³»åãã¼ã¿ã«ããç°å¸¸æ¤ç¥ã§ã¯ãåéããã¡ããªãã¯ç³»åãããã¯ã¡ããªãã¯ç³»åã®éåã«å¯¾ãã¦ãå¦ç¿ã¢ãã«ãæ§ç¯ããã å¦ç¿ã¢ãã«æ§ç¯å¾ã«åéãããã¡ããªãã¯ã«å¯¾å¿ãããããå¦ç¿ã¢ãã«ãå®æçã«æ´æ°ããå¿ è¦ãããã
ãã®ã¢ããªã±ã¼ã·ã§ã³ã«TimeFuzeã¢ã¼ããã¯ãã£ãé©å¿ãããã¨ãèããã å¦ç¿ã¢ãã«ãæ´æ°ããã®ã¿ã§ãå¦ç¿ã¢ãã«ãä»ã®ãã¼ã¿ã¹ãã¢ã«ç§»åãããå¿ è¦ã¯ãªããããDataSourceã¨DataDestinationã¯åä¸ã®ãã¼ã¿ã¹ãã¢ã¨ãªãã åå¦ç¿ã¢ãã«ã®ã¬ã³ã¼ãã«TTLãè¨å®ããTriggerãå¤é¨ãã¼ã¿ã¹ãã¢ããã¡ããªãã¯ãåå¾ããå¦ç¿å¦çãå®è¡ããã®ã¡ã«DataDestinationã«å¯¾ãã¦ä¸æ¸ãæ´æ°ããã
大è¦æ¨¡SSL/TLS証ææ¸ç®¡ç
ããã°ãµã¼ãã¹ãã¬ã³ã¿ã«ãµã¼ãã¼ãµã¼ãã¹ã®ãããªãã«ãããã³ãç°å¢[pep17]ã«ã¦ã大éã®SSL/TLS証ææ¸ã管çããæ°ã¶æãã¨ã«æ´æ°ããã±ã¼ã¹ããããLet's Encrypt[letenc]ã®å ´åã証ææ¸ã®æéã¯3ã¶æã¨ãªãã
[mat17]ã§ã¯ããµã¼ã証ææ¸ã¨ç§å¯éµãWebãµã¼ãä¸ã®ãã¡ã¤ã«ã·ã¹ãã ã«æ ¼ç´ããã®ã§ã¯ãªãããã¼ã¿ãã¼ã¹ã«æ ¼ç´ãåçåå¾ããã¢ã¼ããã¯ãã£ãææ¡ããã¦ããã ãã¼ã¿ãã¼ã¹ä¸ã®è¨¼ææ¸ã¨ç§å¯éµãå®æçã«æ´æ°ããããã«ãTimeFuzeã¢ã¼ããã¯ãã£ãé©ç¨ãããã¨ãèããã åãã¡ã¤ã³ã«å¯¾ãã証ææ¸ããã³ç§å¯éµã®ã¬ã³ã¼ãã«TTLãè¨å®ããTriggerã証ææ¸ãååå¾ããDataDestinationã¸ä¸æ¸ãããã Let's Encryptã®å ´åãACMEãããã³ã«ã«ãã証ææ¸ãèªåçºè¡ã§ããã
èå¯
TimeFuzeã®é©ç¨æ¡ä»¶
ç¾å¨ã®ã¨ãããTimeFuzeã®é©ç¨æ¡ä»¶ã¯ãy_uukiã®çµé¨ã«é ¼ã£ã¦ãããæããã§ãªãã*1 æ¢åã®ãã¼ã¿ãã¤ãã©ã¤ã³ã¢ããªã±ã¼ã·ã§ã³ã®èª²é¡ããµã¼ãã¤ããé©ç¨æ¡ä»¶ãæ´åãããã¨ã¯ä»å¾ã®èª²é¡ã§ããã ç¾æ®µéã§ã¯ã以ä¸ã®ãã¡ãªããã«ãã¦ã¯ã¾ãã±ã¼ã¹ã«å ãã¦ãå°ãªãã¨ããã¼ã¿ã¬ã³ã¼ãæ°ãä¸å®ä»¥ä¸å¤§ãããªããã°ã¡ãªããã享åãã¥ãããã¨ãããã£ã¦ããã
TimeFuzeã®ãã¡ãªãã
TimeFuzeã¢ã¼ããã¯ãã£ã¯ãããããã¼ã¿ãã¤ãã©ã¤ã³ã«é©ç¨ã§ããããã§ã¯ãªãã
ã¢ã¼ããã¯ãã£ã¬ãã«ã§ã¯ãTriggerãã¬ã³ã¼ãåä½ã§ã¸ã§ããå®è¡ãããããDataSourceä¸ã®è¤æ°ã®ã¬ã³ã¼ãããã¼ã¸ããå¿ è¦ãããå¦çããã¥ããã¨ãããã¡ãªãããããã å¾æ¥ææ³ã§ããã°ãDataSourceä¸ã®ã¬ã³ã¼ããã°ã«ã¼ãåãã¦èªã¿åºãããã¼ã¸å¦çãããã¨ã¯å®¹æã§ããã ä¸æ¹ãTimeFuzeã¢ã¼ããã¯ãã£ã§ã¯ããã¼ã¸ããå¿ è¦ããªãããã«æåãã1ã¤ã®ã¬ã³ã¼ãã«ã¾ã¨ãã¦æ¸ãè¾¼ãå¿ è¦ãããã
ããã«ãå®è£ ã¬ãã«ã§ã¯ãTTLãå©ç¨ãããã¨ã®ãã¡ãªããã¨ãã¦ããã¼ã¿ã®ä¸è²«æ§ã¨ãã¸ã§ãå®è¡ã¿ã¤ãã³ã°å¶å¾¡ã®å°é£æ§ãããã åè ã§ã¯ãã¬ã³ã¼ããåé¤ããã¦ããæ´æ°ãããã¾ã§ã¬ã³ã¼ããåç §ã§ããªãæéããããã¢ããªã±ã¼ã·ã§ã³ã«å·¥å¤«ãè¦æ±ããã å¾è ã¯ãTTLã®æéåããéãã¦ããå®éã«åé¤ãããã¾ã§ã®ãã£ã¬ã¤ã大ããã¨ãéçºè ãæå³ããã¿ã¤ãã³ã°ãããé ãã¦ã¸ã§ããå®è¡ããããã¨ãããããã DynamoDBã®TTLå®è£ ã®å ´åããã¹ãã¨ãã©ã¼ããã¼ã¹ã§TTLæéåã以é2æ¥ä»¥å ã«åé¤ãããã¨ãç®æãã¦ãã[dyn03]ã
TimeFuzeã®ãã¡ãªããã®è§£æ±º
TTLã®ãã¼ã¿ã®ä¸è²«æ§ã®åé¡ã¯ãTTLãã¿ã¤ãã¼ã¨ãã¦å©ç¨ããã®ã§ã¯ãªããè¨å®ããæå»ãçµéããã¤ãã³ãã®ã¿ãçºè¡ããã¬ã³ã¼ããåé¤ããªãæ©è½ããã¼ã¿ã¹ãã¢ã«çµã¿è¾¼ããã¨ã§è§£æ±ºã§ããã
ã¸ã§ãå®è¡ã¿ã¤ãã³ã°å¶å¾¡ã®åé¡ã¯ãRedisãCassandraãªã©TTLããµãã¼ããããã¼ã¿ãã¼ã¹å®è£ ã調æ»ãããã£ã¬ã¤æéãè¨æ¸¬ããå¿ è¦ãããã
ã¢ã¼ããã¯ãã£ã¬ãã«ã®èª²é¡ã«ã¤ãã¦ããªã¬ã¼ã·ã§ãã«ã¢ãã«ã®ãããªãã¼ã¿ã¬ã³ã¼ãéã®é¢ä¿ã®æ¦å¿µãå°å ¥ãããã¨ã«ãããè¤æ°ã®ã¬ã³ã¼ããåæã¨ããã¢ã¼ããã¯ãã£ã¸æè¯ã§ãããããããªãã *2
ããã³
ãã¼ã¿ãã¤ãã©ã¤ã³å¦çã¯ãWebãµã¼ãã¹éçºã§ã¯ããæ¡ç¨ããããã¶ã¤ã³ãã¿ã¼ã³ã§ããã åä¸ã®ã¿ã¤ã ã¹ã±ã¸ã¥ã¼ã©ã«ããå¾æ¥ææ³ã§ã¯ãã¬ã³ã¼ãæ°ã«å¯¾ããã¹ã±ã¼ã©ããªãã£ã»ã¨ã©ã¼å復å¦çã»ãµã¼ãéç¨å¹çã»ã¸ã§ãå®è¡é »åº¦ã®ç´°ããç²åº¦ã§ã®å¶å¾¡ã«èª²é¡ããã£ãã ããã§ããã®è¨äºã§ã¯ãå¦çã¨ãã¼ã¿ã¨ã¿ã¤ãã¼ãä¸ä½åããTimeFuzeã¢ã¼ããã¯ãã£ãææ¡ããå¾æ¥ææ³ã®èª²é¡ã®è§£æ±ºãæ§æ³ããã ããã«ãæç³»åãã¼ã¿ãã¼ã¹ã¢ã¼ããã¯ãã£ãæç³»åãã¼ã¿ã®ç°å¸¸æ¤ç¥ã大è¦æ¨¡SSL/TLS証ææ¸ç®¡çã®åã¢ããªã±ã¼ã·ã§ã³ã¸ã®é©ç¨å¯è½æ§ã示ããã
ä»å¾ã®åãçµã¿ã¨ãã¦ãæ¢åã®ãã¼ã¿ãã¤ãã©ã¤ã³ã®èª²é¡ããµã¼ãã¤ãæ´çããæ¢åãã¼ã¿ã¹ãã¢å®è£ ã®TTLãã£ã¬ã¤æéã®èª¿æ»ãTTLã§ã¯ãªãTime to Eventãæ¢åã®ãã¼ã¿ã¹ãã¢ã¸çµã¿è¾¼ããã¨ãèãã¦ããã
åèæç®
- [yuu17]: 時系列データベースという概念をクラウドの技で再構築する - ゆううきブログ
- [Bet17]: Betsy Beyer, Chris Jones, Jennifer Petoff, Niall Richard Murphyç·¨ 澤ç°æ¦ç· é¢æ ¹é夫 ç´°å·ä¸è ç¢å¹å¤§è¼ ç£è¨³ Skyæ ªå¼ä¼ç¤¾ çå·ç«å¸ 訳,ãSRE ãµã¤ããªã©ã¤ã¢ããªãã£ã¨ã³ã¸ãã¢ãªã³ã° ââGoogleã®ä¿¡é ¼æ§ãæ¯ããã¨ã³ã¸ãã¢ãªã³ã°ãã¼ã ã,ãªã©ã¤ãªã¼ã»ã¸ã£ãã³,2017/08, https://www.oreilly.co.jp/books/9784873117911/
- [dyn00]: Amazon Web Services, Inc., "Amazon DynamoDB", https://aws.amazon.com/jp/dynamodb/
- [dyn01]: Amazon Web Services, Inc., "DynamoDB Streams and AWS Lambda Triggers", http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.Lambda.html
- [dyn02]: Amazon Web Services, Inc., "Time To Live - Amazon DynamoDB", http://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/TTL.html
- [dyn03]: Amazon Web Services, Inc., "FAQs - Amazon DynamoDB", https://aws.amazon.com/dynamodb/faqs/#ttl
- [mat17]: æ¾æ¬äº®ä», ä¸å® æ ä», åæ¦ å¥æ¬¡, æ æ å¥å¤ªé, ãé«éç©ãã«ãããã³ãWebãµã¼ãã®å¤§è¦æ¨¡è¨¼ææ¸ç®¡çã¨å®éç¨ä¸ã®è©ä¾¡ã, æ å ±å¦çå¦ä¼ç ç©¶å ±åã¤ã³ã¿ã¼ãããã¨éç¨æè¡ï¼IOTï¼,2017-IOT-39, Vol.14, pp.1-8, 2017å¹´9æ
- [pep17]: ロリポップ!が無料SSL証明書に対応しました!!!1 - ペパボテックブログ
- [rednot]: Redis Keyspace Notifications – Redis
- [yuu14]: GoとMySQLを用いたジョブキューシステムを作るときに考えたこと - ゆううきブログ
- [letenc]: Internet Security Research Group (ISRG), Let's Encrypt - Free SSL/TLS Certificates, https://letsencrypt.org/.
- [gitfir]: GitHub - fireworq/fireworq: Fireworq is a lightweight, high-performance, language-independent job queue system.
çºè¡¨ã¹ã©ã¤ã
çºè¡¨æã®ãã£ã¼ãããã¯
- TimeFuzeã¢ã¼ããã¯ãã£ã®é©ç¨æ¡ä»¶ã«ã¤ã㦠(matsumotoryãã)
- é¢ä¿æ§ã®æ¦å¿µã®å°å ¥ã«ã¤ã㦠(monochromeganeãã)
- ã¢ãã¤ã«ã¨ã¼ã¸ã§ã³ãã¨ã®é¢é£ã«ã¤ã㦠(61503891ãã)
- é©å¿çãªãã©ã¡ã¼ã¿æ±ºå®ãã¤ã³ãã«ã¤ã㦠(matsumotoryãããsyu_creamãããsuma90hãã)
ãã¨ãã
ææ¡ããã¢ã¼ããã¯ãã£åãTimeFuze(æé信管)ã§ãããã¨ã«ã¯ãããªãã®æå³ãããã¾ãã 表é¡ãèãã¦ããã¨ãã«ãã¾ã¤ãã¨ãã¼ããã®FastContainerã¢ã¼ããã¯ãã£æ§æ³ãçºãã¦ãã¾ããã FastContainerã£ã¦ãã£ãããããããã¿ãããªæãã§ãã èªåããã£ãããååã«ããããã¨ããããèãã¾ããã æåã¯DataCronãData-Driven Cronã¨ãã£ãååãèãã¦ãã¾ããã ãã®ãããªååã§ããã°ããã®åéã®äººã§ããã°ãªãã¨ãªãæ³åã¯ã¤ãããã§ãããã®ã®ãå¤ç¾©çãªç¨èªã«ãªãããã ã£ãããããã¾ããã³ã¨ãã¦ãã¾ããã§ããã ãã®ã¢ã¼ããã¯ãã£ã«å¯¾ãã¦ããªãã¨ãªãæéçå¼¾ã£ã½ãã¤ã¡ã¼ã¸ã¨ARMORED COREã®è¿æ¥ä¿¡ç®¡ã®ã¤ã¡ã¼ã¸ããã£ã¦ãããããã°ã°ã£ã¦ã¿ãã¨ãTimeFuze(æé信管)ã¨ããç¨èªããããã¨ãç¥ãã¾ããã Wikipediaã«ããã¨ä¿¡ç®¡ã¯ããèµ·çææãæç¥ããæ©è½ããææã®ææ以å¤ã§ã¯çµ¶å¯¾ã«èµ·çãããªãããã®å®å ¨è£ ç½®ããå®å ¨è£ ç½®ã®è§£é¤æ©æ§ããå¼¾è¬ã®èµ·çè£ ç½®ãã®4ã¤ã®æ©è½ãçµ±åãããè£ ç½®ã ããã§ãã ããã§ããã®ã¢ã¼ããã¯ãã£ã®ã¢ã¤ãã¢ã£ã¦ãããã¼ã¿ããå¦çããã¿ã¤ãã¼ãã®ä¸ä½åã§ã¯ãªããã¨ãããã¨ã«æããããã¾ããã è¨äºä¸ã§ã¯ãããã£ã¨ã§ã¦ãããã®è¡¨ç¾ã§ããããã®è¡¨ç¾ã®ãããã§ãæçµçã«ã¯ãã¼ã¿ãææãæã£ã¦åãã¦æ¬²ãã(by takumakumeãã)ã¨ãã話ã¾ã§çºå±ããããã¨ãã§ãã¾ããã
ããããã¨èªåã®ä¸ã§ã®FastContainerã®è¦æ¹ãããã£ã¦ãã¾ããã FastContainerã¯ç¾å¨ã®ã¨ããããã»ã¹ã«çç®ããã¦ãã¾ããããã¼ã¿å¦çã«çç®ããçºæ³ãããããããªããã¨èãã¾ããã è°è«ã§ã¯ãããã«é¢ä¿æ§ã®æ¦å¿µãã¢ãã¤ã«ã¨ã¼ã¸ã§ã³ãã®é¢é£ãªã©ãããã«TimeFuzeãæ·±ããããã®çæ³ãããã ããã²ãã³ãã«ãããããã楽ããã¨æãçºè¡¨ã§ããã
è¨èã«ãã ãã£ãçµæãæ½è±¡åãé²ã¿ãä»ã®æè¡ãç 究ã¨çµã³ä»ããæ°ããªçæ³ãå¾ããã¨ãã§ãããã¨ããã®ãããã§è¨ãããã£ããã¨ã§ããã
ãã¨ããã¯ä»¥ä¸ã§ããwsaç èªä½ã®æ¯ãè¿ãã¯å¥è¨äºã¨ãã¦æ¸ãã¾ãã