çŸåšãå€ãã®ãªã³ã©ã€ã³ã¹ãã¢ã¯ã圌ãã«ãšã£ãŠã®äž»ãªã¿ã¹ã¯ã®1ã€ãèªèº«ã®å¹æãé«ããããšã§ããããšãèªèããŠããŸãã 2ã€ã®åºèãåãäžããŠããããã1äžäººã®èšªåè ãåŒãä»ããŸãããã1ã€ã¯100ã®å£²ãäžãããã1ã€ã¯200ã®å£²ãäžããéæããŸããã
ããŒã¿åŠçã®ãããã¯ãåºè蚪åè ã®åŠçã¢ãã«ã¯é¢é£æ§ãããéèŠã§ãã ãã¹ãŠã®æ¥ç¶ãæåã§ç¢ºç«ãããåŸæ¥ã®ã¢ãã«ã¯ã©ã®ããã«æ©èœããŸããïŒ ã«ã¿ãã°å ã®ååã®å¯Ÿå¿ãä»å±åãšã®ãã³ãã«ã®äœæãªã©ãè¡ããŸãã ããããäžè¬çãªåè«ãèšãããã«ïŒ

ãã®ãããªæ¥ç¶ãäºæž¬ããåžæã®ãã®ãšã¯ãŸã£ããé¢ä¿ã®ãªããã®ãè³Œå ¥è ã«è²©å£²ããããšã¯äžå¯èœã§ãã ãããããã®åŸãç·è²ã®ã³ãŒããæ¢ããŠãã次ã®å¥³æ§ã«ãåã®èšªåè ã®åæ§ã®è¡åã¢ãã«ã«åºã¥ããŠåãèµ€ãããã°ããå§ãã§ããŸãã
ãã®ã¢ãããŒãã¯ãã¿ãŒã²ããå°å£²ãã§ãŒã³ã®ã±ãŒã¹ãéåžžã«æ確ã«ç€ºããŠããŸãã æã£ã蚪åè ãæ¥ãŠããããŒãžã£ãŒãåŒã³ãŸããã ãã®åã蚪åè ã®æªæ幎ã®åšãžã®éµéã§ããªã³ã©ã€ã³ã¹ãã¢ãåŠåš äžã®å¥³æ§ã«ãªãã¡ãŒãéä¿¡ããããšãå€æããŸããã ç¶ã¯ãã®äºå®ã«éåžžã«inããŠããŸããã 圌女ã¯æªæ幎ã§ãã圌女ã¯ã©ã®ãããåŠåš ããŠããŸããïŒã 圌ã¯æŠããããŠå»ã£ãã æ°é±éåŸãå°å¥³ã¯å®éã«åŠåš ããŠããããšãå€æããŸããã ããã«ããªã³ã©ã€ã³ã¹ãã¢ã¯ã圌女ã®å¥œã¿ã®åæã«åºã¥ããŠããããããæ©ããã®ããšãåŠã³ãŸããã圌女ã泚æãã補åã¯ãã»ãŒåãã·ããªãªã§è¡åããä»ã®èšªåè ã®ã¢ãã«ãšæ¯èŒãããŸããã
å€ãã®åæã¢ã«ãŽãªãºã ã®çµæã¯éæ³ã®ããã«èŠããŸãã åœç¶ãå€ãã®ãããžã§ã¯ãããã®ãããªåæãå®è£ ããããšèããŠããŸãã ããããååãªãªãŒãã£ãšã³ã¹ãæã€åžå Žã«ã¯ãã¬ã€ã€ãŒãã»ãšãã©ããªããããå®éã«æ°ãæ°ããŠäºæž¬ããããšãã§ããŸãã åºæ¬çã«ããããã¯æ€çŽ¢ãšã³ãžã³ããœãŒã·ã£ã«ãããã¯ãŒã¯ã倧èŠæš¡ãªããŒã¿ã«ããªã³ã©ã€ã³ã¹ãã¢ã§ãã
ããã°ããŒã¿ã䜿çšããæåã®ã¹ããã
補åã«ããã°ããŒã¿åæãå°å ¥ããããšãèãããšãã«ã3ã€ã®éèŠãªè³ªåãããŸããã
- ååãªããŒã¿ããããŸããïŒ
- ããããã©ã®ããã«åŠçããŸããïŒ ã¹ã¿ããã«æ°åŠè ãããªãããããããã°ããŒã¿ããæ±ãã®ã«ååãªèœåããããŸããã
- ããããã¹ãŠãæ¢åã®è£œåã«çµã¿èŸŒãæ¹æ³ã¯ïŒ
ç§ãã¡ã®ãã©ãããã©ãŒã ãå«ããäœçŸäžäººãã®ãªãŒãã£ãšã³ã¹ãæã€å€§èŠæš¡ãªãªã³ã©ã€ã³ã¹ãã¢ã¯ã»ãšãã©ãããŸããã ãã ããã1C-BitrixïŒãµã€ã管çãã䜿çšããåºèã®ç·æ°ã¯éåžžã«å€ããããããåãããŠããŸããŸãªåžå Žã»ã°ã¡ã³ãã®å°è±¡çãªãªãŒãã£ãšã³ã¹ãã«ããŒããŠããŸãã
ãã®çµæããããžã§ã¯ãã®ãã¬ãŒã ã¯ãŒã¯å ã§å éšã¹ã¿ãŒãã¢ãããçµç¹ããŸããã ã©ã¡ãããååŸãããããããªãã£ããããå°ããªåé¡ã解決ããããšããå§ããããšã«ããŸãããããŒã¿ã®åéãšä¿åã®æ¹æ³ã§ãã ãã®å°ããªãããã¿ã€ãã¯30ã40åã§äœæãããŸããã

MVPãšããçšèªããããŸã-æå°éã®å®è¡å¯èœãªè£œåãæå°éã®æ©èœãåãã補åã§ãã ãã¯ãã«ã«ã¡ããªãã¯ã®åéã蚪åè ããã®ããŒãžèªã¿èŸŒã¿é床ã®åéãéå§ãããããžã§ã¯ãã®é床ã«é¢ããåæããŠãŒã¶ãŒã«æäŸããããšã«ããŸããã ããã¯ãããŒãœãã©ã€ãŒãŒã·ã§ã³ãŸãã¯BigDataãšã¯é¢ä¿ãããŸããã§ãããããã¹ãŠã®èšªåè ã®ãªãŒãã£ãšã³ã¹å šäœãåŠçããæ¹æ³ãåŠã¶ããšãã§ããŸããã
JavaScriptã«ã¯ãNavigation Timing APIãšåŒã°ããããŒã«ããããŸãããã®ããŒã«ã䜿çšãããšãããŒãžé床ãDNS解決æéããããã¯ãŒã¯ããŒã¿è»¢éãããã¯ãšã³ãã§ã®äœæ¥ãããŒãžã¬ã³ããªã³ã°ã«é¢ããã¯ã©ã€ã¢ã³ãåŽã®ããŒã¿ãåéã§ããŸãã ããããã¹ãŠãããŸããŸãªã¡ããªãã¯ã«å解ããŠãããåæãæäŸã§ããŸãã

ãã©ãããã©ãŒã ã§äœæ¥ããŠããåºèã®æ°ãåéããå¿ èŠãããããŒã¿ã®éãææ¡ããŸããã æœåšçã«ããããã¯1äžä»¶ã®ãµã€ãã1æ¥ãããæ°åäžä»¶ã®ãããã1ç§ããã1000-1500件ã®ããŒã¿æžã蟌ã¿èŠæ±ã§ãã å€ãã®æ å ±ãããããããã©ãã«ä¿åããããããäœæ¥ããŸããïŒ ãããŠããŠãŒã¶ãŒã«æé«é床ã®åæãµãŒãã¹ãæäŸããæ¹æ³ã¯ïŒ ã€ãŸããJSã«ãŠã³ã¿ãŒã¯éåžžã«è¿ éã«åçãæäŸãã矩åãããã ãã§ãªããããŒãžã®èªã¿èŸŒã¿é床ãäœäžãããããšããããŸããã
ããŒã¿ã®èšé²ãšä¿å
åœç€Ÿã®è£œåã¯äž»ã«PHPãšMySQLã§æ§ç¯ãããŠããŸãã æåã®èŠæã¯ããã¹ãŠã®çµ±èšãMySQLãŸãã¯ä»ã®ãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ã«åçŽã«ä¿åããããšã§ããã ãããããã¹ããå®éšããªããŠããããã¯è¡ãæ¢ãŸãã§ããããšãããããŸããã ããæç¹ã§ãèšé²æãŸãã¯ããŒã¿ã®ãã§ããæã«ååãªããã©ãŒãã³ã¹ãåŸãããŸããã ãŸãããã®ããŒã¹ã®åŽé¢ã«é害ãçºçãããšããµãŒãã¹ã®åäœãéåžžã«é ããªãããéåžžã¯åäœããªããªããšããäºå®ã«ã€ãªãããŸãã

ããŸããŸãªNoSQLãœãªã¥ãŒã·ã§ã³ãæ€èšããŸããã Amazonã«ã¯å€§èŠæš¡ãªã€ã³ãã©ã¹ãã©ã¯ãã£ãå±éãããŠãããããæåã«DynamoDBã«æ³šç®ããŸããã ãã®è£œåã«ã¯ããªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹ãšæ¯èŒããŠå€ãã®å©ç¹ãšæ¬ ç¹ããããŸãã DynamoDBã®èšé²ããã³ã¹ã±ãŒãªã³ã°ãããè¯ããããéãåäœããå Žåãè€éãªéžæãè¡ãããšã¯ã¯ããã«å°é£ã«ãªããŸãã ããŒã¿ã®äžè²«æ§ã«ãåé¡ããããŸãã ã¯ããæäŸãããŠããŸãããåžžã«ããã€ãã®ããŒã¿ãéžæããå¿ èŠãããå Žåãåžžã«æãé¢é£æ§ã®é«ããã®ãéžæãããšããäºå®ã§ã¯ãããŸããã
ãã®çµæãçããŒã¿ã®ã¹ãã¬ãŒãžãšããŠã§ã¯ãªãããŠãŒã¶ãŒãžã®æ å ±ã®éçŽãšãã®åŸã®é ä¿¡ã«DynamoDBã®äœ¿çšãéå§ããŸããã
è¡ã§ã¯ãªãåã§æ©èœããã«ã©ã ããŒããŒã¿ããŒã¹ãæ€èšããŸããã ããããé²é³äžã®ããã©ãŒãã³ã¹ãäœããããããããæåŠããå¿ èŠããããŸããã

é©åãªãœãªã¥ãŒã·ã§ã³ãéžæããŠãããã¹ããã°ã®æžã蟌ã¿ããå§ãŸããZeroMQãRabbit MQãã¥ãŒãªã©ã®ãµãŒãã¹ã§çµããããŸããŸãªã¢ãããŒãã«ã€ããŠèª¬æããŸããã ããããæçµçã«ã圌ãã¯å®å šã«ç°ãªããªãã·ã§ã³ãéžæããŸããã
ããã·ã¹
ãã®ãšããŸã§ã«ãAmazonã¯KinesisãµãŒãã¹ãéçºããŸãããããã¯åæããŒã¿åéã«æé©ãªãµãŒãã¹ã§ããã ããã¯ãå¿ èŠãªãã®ããã¹ãŠæžã蟌ãããšãã§ãããäžçš®ã®å€§ããªé«æ§èœãããã¡ãŒã§ãã 圌ã¯éåžžã«è¿ éã«ããŒã¿ãåä¿¡ããæåããé²é³ã«ã€ããŠå ±åããŸãã ãã®åŸãããã¯ã°ã©ãŠã³ãã§ãéžæããã£ã«ã¿ãŒãéèšãªã©ã®æ å ±ãå®å šã«æäœã§ããŸãã
AmazonãæäŸããããŒã¿ããå€æãããšãKinesisã¯ã¯ãŒã¯ããŒãã«ç°¡åã«å¯ŸåŠã§ããã¯ãã§ãã ããããããã€ãã®è³ªåãæ®ã£ãã ããšãã°ããšã³ããŠãŒã¶ãŒïŒãµã€ã蚪åè ïŒã¯Kinesisã«çŽæ¥ããŒã¿ãæžã蟌ãããšãã§ããŸããã§ããã ãµãŒãã¹ã䜿çšããã«ã¯ãAmazon Web Services vã®æ¯èŒçé«åºŠãªèªèšŒã¡ã«ããºã ã䜿çšããŠãªã¯ãšã¹ãã«ã眲åãããå¿ èŠããããŸãã 4.ãããã£ãŠãããã³ããšã³ãã«Kinesisã«ããŒã¿ãéä¿¡ãããæ¹æ³ã決å®ããå¿ èŠããããŸããã
次ã®ãªãã·ã§ã³ãæ€èšããŸããã
- Kinesisã«ãããã·ãããçŽç²ãªæ§æãnginxã«æžã蟌ã¿ãŸãã ããŸããããŸããã§ãããè«çãè€éãããŸãã
- ããã³ããšã³ã+ PHPããã¯ãšã³ããšããŠã®Nginxã å€ãã®ãªã¯ãšã¹ãããããšããã¯ãšã³ããé ããæ©ãã察åŠãåæ¢ããããããªãœãŒã¹ã®é¢ã§å°é£ã§é«äŸ¡ã§ããããšãå€æããŸãããæ°Žå¹³æ¹åã«ã¹ã±ãŒãªã³ã°ããå¿ èŠããããŸãã ãããŠããããžã§ã¯ããæåãããã©ããã¯ãŸã ããããŸããã
- Nginx + C / C ++ã®ã¢ãžã¥ãŒã«ã éçºã®é¢ã§é·ããŠé£ããã
- Nginx + ngx_http_perl_moduleã èŠæ±ããããã¯ããã¢ãžã¥ãŒã«ã®ããªã¢ã³ãã ã€ãŸãããã®ã¹ã¬ããã«å ¥ã£ãŠãããªã¯ãšã¹ãã¯ãä»ã®ãªã¯ãšã¹ãã®åŠçããããã¯ããŸãã ããã¯ãšã³ãã®äœ¿çšãšåãæ¬ ç¹ããããŸãã ããã«ãnginxã®ããã¥ã¡ã³ãã«ã¯ããã¢ãžã¥ãŒã«ã¯å®éšçã§ãããããäœã§ãå¯èœã§ããããšçŽæ¥èšèŒãããŠããŸãã
- Nginx + ngx_luaã åœæãç§ãã¡ã¯ãŸã Luaã«ééããŠããŸããã§ãããããã®ã¢ãžã¥ãŒã«ã¯å¥œå¥å¿ã匷ãããã§ããã å¿ èŠãªã³ãŒãã¯ãJavaScriptã«ãããã䌌ãèšèªã§nginx configã«çŽæ¥æžã蟌ãŸããããå¥ã®ãã¡ã€ã«ã§åãåºãããŸãã ãããã£ãŠãå¿ èŠãªæãå¥åŠã§ç°åžžãªããžãã¯ãå®è£ ã§ããŸãã
ãã®çµæãLuaã«è³ããããšã«ããŸããã
ã«ã¢
ãã®èšèªã¯éåžžã«æè»æ§ãããããªã¯ãšã¹ããšã¬ã¹ãã³ã¹ã®äž¡æ¹ãåŠçã§ããŸãã æžãæããã°ã¬ãã«ã§ãnginxã®ãªã¯ãšã¹ãåŠçã®ãã¹ãŠã®ãã§ãŒãºã«çµ±åã§ããŸãã ããã€ãã®ã¡ãœããã䜿çšããŠããµãã¯ãšãªãšéããããã³ã°ãµãã¯ãšãªãäœæã§ããŸãã MySQLãæå·åã©ã€ãã©ãªãªã©ãæäœããããã®è¿œå ã¢ãžã¥ãŒã«ããããããããŸãã
2ã3æ¥ã§ãLuaã®æ©èœã調æ»ããå¿ èŠãªã©ã€ãã©ãªãèŠã€ããŠããããã¿ã€ããäœæããŸããã
ãã¡ãããæåã®ã¹ãã¬ã¹ãã¹ãã§ã¯...ãã¹ãŠãèœã¡ãŸããã ãããã¯ãŒã¯ã¹ã¿ãã¯ãæé©åããããã«ãè² è·ã®å€§ããLinuxãæ§æããå¿ èŠããããŸããã ãã®æé ã¯å€ãã®ããã¥ã¡ã³ãã§èª¬æãããŠããŸãããäœããã®çç±ã§ããã©ã«ãã§ã¯å®è¡ãããŸããã äž»ãªåé¡ã¯ãKinesisãšã®çºä¿¡æ¥ç¶çšã®ããŒãã®äžè¶³ã§ããã
/etc/sysctl.conf (man sysctl) # net.ipv4.ip_local_port_range=1024 65535 # TIME_WAIT net.ipv4.tcp_tw_reuse=1 # FIN_WAIT_2 net.ipv4.tcp_fin_timeout=15 # net.netfilter.nf_conntrack_max=1048576 # net.core.netdev_max_backlog=50000 # net.core.somaxconn=81920 # syncookies SYN net.ipv4.tcp_syncookies=0
ç¯å²ãæ¡åŒµããã¿ã€ã ã¢ãŠããèšå®ããŸããã Iptablesãªã©ã®ãã«ãã€ã³ãã¡ã€ã¢ãŠã©ãŒã«ã䜿çšããå Žåã¯ãããŒãã«ã®ãµã€ãºã倧ããããå¿ èŠããããŸããããããªããšãéåžžã«å€ãã®ãªã¯ãšã¹ãã§ããŒãã«ãéåžžã«éããªãŒããŒãããŒããŸãã åæã«ãã·ã¹ãã èªäœã®ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ãšTCPã¹ã¿ãã¯ã®ããã¯ãã°ã®ãµã€ãºã調æŽããå¿ èŠããããŸãã
ãã®åŸããã¹ãŠãæ£åžžã«æ©èœããŸããã ã·ã¹ãã ã¯1ç§ããã1000件ã®ãªã¯ãšã¹ãã®åŠçãéå§ããŸããããã®ããã«1å°ã®ä»®æ³ãã·ã³ãå¿ èŠã§ããã

ããæç¹ã§ãã·ã¹ãã ã®ãªãœãŒã¹ã¯ãŸã 䜿ãæããããŠããŸãããããŸã 倩äºã«ã¶ã€ãããã
connect() to [...] failed (99: Cannot assign requested address) while connecting to upstream
ããšãããšã©ãŒãçºçãå§ããŸããã LAã«ãããšãè² è·ã¯ãŒãã«è¿ããååãªã¡ã¢ãªããããããã»ããµã¯éè² è·ã«ã¯ã»ã©é ããã®ã®ãäœãã«ééããŸããã

nginxã§ããŒãã¢ã©ã€ãæ¥ç¶ãèšå®ããããšã§åé¡ã解決ããããšãã§ããŸããã
upstream kinesis { server kinesis.eu-west-1.amazonaws.com:443; keepalive 1024; } proxy_pass https://kinesis/; proxy_http_version 1.1; proxy_set_header Connection "";
2ã€ã®ä»®æ³ã³ã¢ãš4ã®ã¬ãã€ãã®ã¡ã¢ãªãæèŒãããã·ã³ã¯ã1ç§ããã1000件ã®ãªã¯ãšã¹ããç°¡åã«åŠçããŸãã ããã«å¿ èŠãªå Žåã¯ããã®ãã·ã³ã«ãªãœãŒã¹ãè¿œå ããããæ°Žå¹³ã«ã¹ã±ãŒãªã³ã°ããŠããã®ãããªãã·ã³ããã©ã³ãµãŒã®åŸãã«2ã3ã5å°é 眮ããŸãã 解決çã¯ã·ã³ãã«ã§å®äŸ¡ã§ãã ããããäž»ãªããšã¯ãããããããŒã¿ãããããéã§åéããŠä¿åã§ããããšã§ãã

1æ¥ãããæ倧7000äžä»¶ã®ããããåéãããããã¿ã€ããäœæããã®ã«çŽ1é±éããããŸããã ã1C-BitrixïŒSite Managementãã®ãã¹ãŠã®ã¯ã©ã€ã¢ã³ãåãã®æ¢è£œãµãŒãã¹ãSite Speedãã¯ã3人ã®åªåã«ãã£ãŠ1ãæã§äœæãããŸããã ã·ã¹ãã ã¯ãµã€ãã®è¡šç€ºé床ã«åœ±é¿ãããå éšç®¡çãè¡ããŸãã KinesisãµãŒãã¹ã®è²»çšã¯æé¡250ãã«ã§ãã ç¬èªã®ããŒããŠã§ã¢ã§ãã¹ãŠãå®è¡ããã¹ãã¬ãŒãžã«é¢ãã決å®ãå®å šã«èšè¿°ããå Žåãã¡ã³ããã³ã¹ãšç®¡çã®ç¹ã§ã¯ããã«é«äŸ¡ã§ããããšãå€æããã§ãããã ãããŠãã¯ããã«ä¿¡é Œæ§ãäœãã


æšå¥šäºé ãšããŒãœãã©ã€ãº
ã·ã¹ãã ã®äžè¬çãªã¹ããŒã ã¯ã次ã®ããã«è¡šãããšãã§ããŸãã

圌女ã¯ã€ãã³ããç»é²ããä¿åããäœããã®åŠçãå®è¡ããã¯ã©ã€ã¢ã³ãã«äœããæäŸããå¿ èŠããããŸãã
ãããã¿ã€ããäœæããŸããã次ã«ãæè¡çãªææšããããžãã¹ããã»ã¹ã®è©äŸ¡ã«ç§»è¡ããå¿ èŠããããŸãã å®éãäœãåéãããã¯æ°ã«ããŸããã äœã§ã転éã§ããŸãïŒ
- ã¯ãããŒ
- ããã·ã¥ã©ã€ã»ã³ã¹
- ãã¡ã€ã³
- ã«ããŽãªãŒãIDã補åå
- æšå¥šã®ID
ãªã©ãªã©ã
ãããã¯ã€ãã³ãã¿ã€ãå¥ã«åé¡ã§ããŸãã ç§ãã¡ã¯åºã®é¢ã§äœã«èå³ããããŸããïŒ

ãã¹ãŠã®æè¡ææšãåéããããžãã¹ææšãšå¿ èŠãªåŸç¶ã®åæã«ãªã³ã¯ã§ããŸãã ãããããã®ããŒã¿ãã©ãåŠçããã©ã®ããã«åŠçããã®ã§ããããïŒ
æšå¥šã·ã¹ãã ã®ä»çµã¿ã«é¢ããããã€ãã®èšèã
蚪åè ãç¹å®ã®è£œåãæšå¥šã§ããäž»èŠãªã¡ã«ããºã ã¯ãå調ãã£ã«ã¿ãªã³ã°ã¡ã«ããºã ã§ãã ããã€ãã®ã¢ã«ãŽãªãºã ããããŸãã æãåçŽãªã®ã¯ããŠãŒã¶ãŒãšãŠãŒã¶ãŒã®ãããã³ã°ã§ãã 2人ã®ãŠãŒã¶ãŒã®ãããã¡ã€ã«ãæ¯èŒããæåã®ãŠãŒã¶ãŒã®ã¢ã¯ã·ã§ã³ã«åºã¥ããŠã次ã®ç¬éã«æåã®ãŠãŒã¶ãŒã泚æããã®ãšåã補åãå¿ èŠã«ãªãé¡äŒŒã®ã¢ã¯ã·ã§ã³ãå®è¡ããä»ã®ãŠãŒã¶ãŒãäºæž¬ã§ããŸãã ããã¯æãåçŽã§æãè«ççãªã¢ãã«ã§ãã ãããã圌女ã«ã¯ããã€ãã®çæããããŸãã

- ãŸããåããããã¡ã€ã«ãæã€ãŠãŒã¶ãŒã¯éåžžã«å°ãªãã§ãã
- 第äºã«ãã¢ãã«ã¯ããŸãå®å®ããŠããŸããã ãŠãŒã¶ãŒã¯ããŸããŸãªè£œåãèŠãŠãäžèŽãããããªãã¯ã¹ã¯åžžã«å€åããŠããŸãã
- ãªã³ã©ã€ã³ã¹ãã¢ã®å šãªãŒãã£ãšã³ã¹ãã«ããŒããå Žåããããã¯æ°åäžäººã®èšªåè ã§ãã ãããŠããã¹ãŠã®ãŠãŒã¶ãŒã«äžèŽãããã®ãèŠã€ããããã«ããã®ãããªãã¯ã¹èªäœãä¹ç®ããå¿ èŠããããŸãã ãããŠããã®ãããªçŸäžçªç®ã®è¡åã®ä¹ç®ã¯ãç§ãã¡ã䜿çšããã¢ã«ãŽãªãºã ãšããŒã«ã®èŠ³ç¹ããéèŠãªã¿ã¹ã¯ã§ãã
Amazonã®ãªã³ã©ã€ã³ã¹ãã¢ã§ã¯ãå¥ã®ã¢ã«ãŽãªãºã ãèæ¡ãããŠããŸã-ã¢ã€ãã -ã¢ã€ãã ïŒãŠãŒã¶ãŒåãã®éä¿¡ã¯ç¢ºç«ãããŠããŸãããããã¡ã€ã³ã補åãšäžç·ã«è³Œå ¥ããã補åãå«ãç¹å®ã®è£œåçšã§ãã ããã¯ãã¢ã¯ã»ãµãªãŒã®è²©å£²å¢å ã«æãé¢é£ããŠããŸããé»è©±ãè³Œå ¥ãã人ã¯ãã±ãŒã¹ãå é»ããã®ä»ãæšå¥šã§ããŸãã 補åã®äžèŽã¯ãã£ãã«å€åããªãããããã®ã¢ãã«ã¯ã¯ããã«å ç¢ã§ãã ã¢ã«ãŽãªãºã èªäœã¯ã¯ããã«é«éã§ãã
å¥ã®ã¢ãããŒãããããŸã-ã³ã³ãã³ãããŒã¹ã®æšå¥šäºé ã ãŠãŒã¶ãŒãèå³ãæã£ãã»ã¯ã·ã§ã³ãšè£œåãããã³æ€çŽ¢ã¯ãšãªãåæããããã®åŸãŠãŒã¶ãŒã®ãã¯ãã«ãæ§ç¯ãããŸãã ãŸãããã³ããšããŠããã¯ã¿ãŒããŠãŒã¶ãŒã®ãã¯ã¿ãŒã«æãè¿ã補åãæäŸãããŸãã

1ã€ã®ã¢ã«ãŽãªãºã ãéžæããããšã¯ã§ããŸãããããããããã¹ãŠçµã¿åãããŠäœ¿çšââããŸãã ãã®ããã®ããŒã«ã¯äœã§ããïŒ
- â¢MapReduceã ããªãããããå®å
šã«ç解ããŠããã°ã䜿çšã¯å°é£ãåŒãèµ·ãããŸããã ããããçè«çã«ãæ³³ãããªããå°é£ã¯ä¿èšŒãããŸãã
- â¢ã¹ããŒã¯ã ãã¹ãŠã®æ§é ãã¡ã¢ãªã«ä¿åããããããåå©çšã§ãããããåŸæ¥ã®MapReduceãšæ¯ã¹ãŠã¯ããã«é«éã«åäœããŸãã ãŸããã¯ããã«æè»æ§ããããè€éãªãµã³ãã«ãéèšãäœæããæ¹ã䟿å©ã§ãã
Javaã§ããã°ã©ãã³ã°ããå ŽåãSparkã§ã®äœæ¥ã¯ããã»ã©é£ãããããŸããã ãªã¬ãŒã·ã§ãã«ä»£æ°ãåæ£ã³ã¬ã¯ã·ã§ã³ãåŠçãã§ãŒã³ã䜿çšããŸãã
ãã®ãããžã§ã¯ãã§ã¯ãSparkãéžæããŸããã
ãããžã§ã¯ãã®ã¢ãŒããã¯ãã£

PHPã§èšè¿°ãããåçŽãªã¯ãŒã«ãŒã§KinesisããããŒã¿ãèªã¿åããŸãã ãªãPHPãªã®ãïŒ ããã¯ç§ãã¡ã«ãšã£ãŠãã銎æã¿ããããç§ãã¡ã«ãšã£ãŠãã䟿å©ã ããã§ãã Amazonã«ã¯ãã»ãšãã©ãã¹ãŠã®äžè¬çãªèšèªã®ãµãŒãã¹ã§åäœããSDKããããŸãã 次ã«ããããã®åæãã£ã«ã¿ãªã³ã°ãè¡ããŸããæ€çŽ¢ããããªã©ã®å€æ°ã®ããããåé€ããŸãã 次ã«ãDynamo DBã§ããã«ãªã³ã©ã€ã³ã§æäŸã§ããçµ±èšãéä¿¡ããŸãã

Sparkã§ã®ã¢ãã«ã®æ§ç¯ãªã©ãåŸç¶ã®åŠçã®ããã®ã¡ã€ã³ããŒã¿é åã S3ã«ä¿åããŸãïŒåŸæ¥ã®HDFSã®ä»£ããã«Amazonã¹ãã¬ãŒãžã䜿çšããŸãïŒã ãã®åŸã®æ°åŠãå調ãã£ã«ã¿ãªã³ã°ãæ©æ¢°åŠç¿ã¢ã«ãŽãªãºã ã¯ãApache Mahoutã«åºã¥ããŠæ§ç¯ãããæšå¥šäºé ã®ã¯ã©ã¹ã¿ãŒã«ãã£ãŠåŠçãããŸãã

- ããŒã¿åŠçã«ã¯ãApache Hadoop / MapReduceãApache SparkãDynamo DBïŒNoSQLïŒã䜿çšããŸãã
- Apache Mahoutã¯æ°åŠèšç®ã«äœ¿çšãããè¡åä¹ç®ã®å€§èŠæš¡åŠçã¯MapReduceãã©ãã€ã ã䜿çšããŠè¡ãããŸãã
- ããŒã¿ã¯ãAmazonã¯ã©ãŠãã®åçã³ã³ãã¥ãŒãã£ã³ã°ã¯ã©ã¹ã¿ãŒã§åŠçãããŸãã
- ã¹ãã¬ãŒãžã¯Amazon S3 Objectiveã§è¡ãããäžéšã¯NoSQL DynamoDBã§è¡ãããŸãã
Amazon AWSã¯ã©ãŠãã€ã³ãã©ã¹ãã©ã¯ãã£ãšæ¢è£œã®ãµãŒãã¹ã䜿çšãããšãå€å€§ãªåŽåããªãœãŒã¹ãæéãç¯çŽã§ããŸãã ãã®ã·ã¹ãã ã«ãµãŒãã¹ãæäŸãã管çè ã®å€§èŠæš¡ãªã¹ã¿ããã¯å¿ èŠãããŸããã倧èŠæš¡ãªéçºããŒã ã¯å¿ èŠãããŸããã äžèšã®ãã¹ãŠã®ã³ã³ããŒãã³ãã䜿çšãããšãéåžžã«å°æ°ã®å°é家ã管çã§ããŸãã
ããã«ãã·ã¹ãã å šäœãã¯ããã«å®äŸ¡ã§ãã ãã©ãã€ãåäœã®ããŒã¿ã¯ãã¹ãŠããã£ã¹ã¯ã¹ãã¬ãŒãžãåããå¥ã®ãµãŒããŒãäœæããããããã¯ã¢ãããåŠçãããããããããS3ã«å ¥ããæ¹ãåçæ§ãé«ããªããŸãã ã€ã³ãã©ã¹ãã©ã¯ãã£ãæ§æãã管çããäœã¬ãã«ã®ã¡ã³ããã³ã¹ã¿ã¹ã¯ã解決ããããããKinesisãæ¢è£œã®ãµãŒãã¹ãšããŠé«ããæåéãæ°åãŸãã¯æ°æéã§äœ¿ãå§ããæ¹ãã¯ããã«ç°¡åã§å®äŸ¡ã§ãã
ãã©ãããã©ãŒã ã§åäœãããªã³ã©ã€ã³ã¹ãã¢ã®éçºè ã«ãšã£ãŠããããã¯ãã¹ãŠç¹å®ã®ãµãŒãã¹ã®ããã«èŠããŸãã ãã®ãµãŒãã¹ã䜿çšããã«ã¯ãäžé£ã®APIã䜿çšããŸãããã®APIã䜿çšããŠã蚪åè ããšã«æçšãªçµ±èšæ å ±ãšããŒãœãã©ã€ãºãããæšå¥šäºé ãååŸã§ããŸãã
analytics.bitrix.info/crecoms/v1_0/recoms.php?op=recommend&uid=##&count=3&aid=#_#
- uidã¯ãŠãŒã¶ãŒã®Cookieã§ãã
- aid-ã©ã€ã»ã³ã¹ããã·ã¥ã
- count-æšå¥šã®æ°ã
{ "id":"24aace52dc0284950bcff7b7f1b7a7f0de66aca9", "items":["1651384","1652041","1651556"] }
ã¢ã¯ã»ãµãªãããã€ãã®è¿œå ã³ã³ããŒãã³ãã販売ããã®ã«äŸ¿å©ãªåæ§ã®è£œåããå§ãããŸãã
analytics.bitrix.info/crecoms/v1_0/recoms.php?op=simitems&aid=#_#&eid=#id_#&count=3&type=combined&uid=##
- uidã¯ãŠãŒã¶ãŒã®Cookieã§ãã
- aid-ã©ã€ã»ã³ã¹ããã·ã¥ã
- eid-補åID
- ã¿ã€ã-ãã¥ãŒ|泚æ|çµå
- count-åé¡ã®ãµã€ãºã
å¥ã®æçšãªã¡ã«ããºã ã¯ã販売éå¥ã®äžäœè£œåã§ãã ããã¯ãã¹ãŠãããã°ããŒã¿ã«ç ©ããããããšãªãè¡ãããšãã§ãããšäž»åŒµã§ããŸãã ã¹ãã¢èªäœã§-ã¯ããã§ããŸãã ããããçµ±èšã䜿çšããããšã§ãããªãã®å²åã®è² è·ãåºèããŒã¹ããåãé€ãããšãã§ããŸãã
analytics.bitrix.info/crecoms/v1_0/recoms.php?op=sim_domain_items&aid=#_#&domain=##&count=50&type=combined&uid=##
- uidã¯ãŠãŒã¶ãŒã®Cookieã§ãã
- aid-ã©ã€ã»ã³ã¹ããã·ã¥ã
- domain-ãµã€ãã®ãã¡ã€ã³ã
- ã¿ã€ã-ãã¥ãŒ|泚æ|çµå
- count-åé¡ã®ãµã€ãºã
ã¯ã©ã€ã¢ã³ãã¯ããããã®ããŒã«ããã¹ãŠçµã¿åãããŠäœ¿çšââã§ããŸãã å人çãªæšå¥šäºé ã®ã¯ã©ãŠããµãŒãã¹ã¯ã1C-BitrixïŒSite Managementãã©ãããã©ãŒã èªäœãšå®å šã«çµ±åãããŠãããã¹ãã¢éçºè ã¯çºè¡ãããæšå¥šäºé ã®ãããã¯ãéåžžã«æè»ã«ç®¡çã§ããŸãã äŸ¡æ ŒãŸãã¯ä»ã®åºæºãªã©ã«ãããœãŒãã䜿çšããŸãã
ãŠãŒã¶ãŒã®ã¢ãã«ãäœæãããšããçŸåšã®ã»ãã·ã§ã³ã ãã§ãªãããŠãŒã¶ãŒã®ãã¥ãŒã®ãã¹ãŠã®çµ±èšãèæ ®ãããŸãã ããã«ããã¹ãŠã®ã¢ãã«ã¯éå人åãããŸããã€ãŸããã·ã¹ãã å ã®å蚪åè ã¯ããã§ãŒã¹ã¬ã¹IDã®åœ¢åŒã§ã®ã¿ã§ãã ããã«ãããæ©å¯æ§ãç¶æã§ããŸãã
蚪åè ã蚪åããåºèã«å¿ããŠåå²ããŸããã åäžã®ããŒã¿ããŒã¹ãããã蚪åè ãã©ã®åºã«è¡ã£ãŠããå蚪åè ã«ã¯åäžã®èå¥åãå²ãåœãŠãããŸãã å°ããªåºèã«ã¯ããŠãŒã¶ãŒã®è¡åã確å®ã«äºæž¬ã§ããååãªçµ±èšæ å ±ããªããããããã¯åœç€Ÿã®ãµãŒãã¹ã®äž»ãªå©ç¹ã®1ã€ã§ãã ãŸããåäžã®ããŒã¿ããŒã¹ã®ãããã§ã1æ¥ããã10åã®èšªåãããåºèã§ãããã®ç¹å®ã®èšªåè ã«é¢å¿ã®ãã補åãæšå¥šããå¯èœæ§ãé«ããªããŸãã
ããŒã¿ã¯å€ããªãå¯èœæ§ããããããã«ã¹ã¿ã ã¢ãã«ãæ§ç¯ããå Žåãããšãã°1幎åã®çµ±èšã¯èæ ®ãããŸããã å æã®ããŒã¿ã®ã¿ãèæ ®ãããŸãã
å®çšäŸ
ãµã€ãäžã®ããŒã«ã¯ã©ã®ããã«èŠããŸããïŒ
å人çãªæšå¥šäºé ã®ãããã¯ãã¡ã€ã³ããŒãžã«è¡šç€ºã§ããŸãã ãµã€ããžã®èšªåè ããšã«åå¥ã§ãã

ç¹å®ã®è£œåã®ã«ãŒãã«è¡šç€ºããããšãã§ããŸãã

æšå¥šè£œåã®ãããã¯ã®äŸïŒ

ãããã¯ãçµã¿åãããŠãæãå¹ççãªçµã¿åãããæ¢ãããšãã§ããŸãã
å人çãªæšå¥šã§è²©å£²ããã泚æã¯ã管çããã«ã«è¡šç€ºãããŸãã

泚æãåŠçããåŸæ¥å¡ã¯ããã§ãã¯ã¢ãŠãæã«è³Œå ¥è ã«æšå¥šã§ããååã®ãªã¹ãã管çããã«ã«ããã«è¡šç€ºã§ããŸãã

ç§ãã¡ã®ããŒã«ãšã¯ç°ãªãããµãŒãããŒãã£ã®ã¬ã³ã¡ã³ããŒã·ã§ã³ãµãŒãã¹ã«ã¯éèŠãªæ¬ ç¹ããããŸã-ããªãå°ãªããŠãŒã¶ãŒã§ãã ãããã®ãµãŒãã¹ã䜿çšããã«ã¯ãæšå¥šäºé ã衚瀺ããããã®ã«ãŠã³ã¿ãŒãšãŠã£ãžã§ãããæ¿å ¥ããå¿ èŠããããŸãã ããŒã«ãããã¯ãã©ãããã©ãŒã ãšéåžžã«ç·å¯ã«çµ±åãããŠããããã蚪åè ã«çºè¡ãããæšå¥šäºé ãæ¹åã§ããŸãã ããšãã°ãåºèã®ææè ã¯ãäŸ¡æ Œãåšåº«ç¶æ³ã«ãã£ãŠæšå¥šã䞊ã¹æ¿ããããšãã§ããŸãã ä»ã®ååã®çºè¡ã«æ··ããŸãã
å質ææš
äž»ãªçåãçããŸããäžèšã®ãã¹ãŠãã©ãã»ã©å¹æçã«æ©èœããã®ã§ããããïŒ ããã©ãŒãã³ã¹ãã©ã®ããã«æž¬å®ããŸããïŒ
- ãã¥ãŒã®ç·æ°ã«å¯Ÿããæšå¥šã®ãã¥ãŒã®å²åãèšç®ããŸãã
- ãŸããæšå¥šäºé ã«å¯Ÿãã泚ææ°ãšåèšæ³šææ°ã枬å®ããŸãã
- ãŠãŒã¶ãŒç¶æ ãã·ã³ã§æž¬å®ãè¡ããŸãã 3é±éã®è¡åã瀺ããããªãã¯ã¹ãããããããã«é¢ããæšå¥šäºé ã瀺ããŸãã 次ã«ãããšãã°1é±éã§ç¶æ ãè©äŸ¡ããåºããã泚æãå°æ¥æäŸã§ããæšå¥šäºé ãšæ¯èŒããŸãã äžèŽããå Žåãæ£ãããå§ãããŸãã ããããäžèŽããªãå Žåã¯ãã¢ã«ãŽãªãºã ã匷åãããå®å šã«å€æŽããå¿ èŠããããŸãã
- A / Bãã¹ãã ãªã³ã©ã€ã³ã¹ãã¢ã®èšªåè ãã°ã«ãŒãã«åçŽã«åããããšãã§ããŸãã1ã€ã¯å人çãªæšå¥šäºé ã®ãªã補åã瀺ãããã1ã€ã¯æšå¥šäºé ã®ãã補åã瀺ãã売äžã®éããè©äŸ¡ããŸãã
A / Bãã¹ãã䜿çšããŠãè¿ãå°æ¥ã«ããŒãœãã©ã€ãºãããæšå¥šäºé ãåŠçã§ããããã«ãªããŸãããªã³ã©ã€ã³ã¹ãã¢ã®ææè ã¯ã管çããã«ã§å¿ èŠãªã¡ããªãã¯ãéžæããã³æ§æãããã°ããã®éããŒã¿ãåéããç°ãªããªãŒãã£ãšã³ã¹ã®ã³ã³ããŒãžã§ã³ãæ¯èŒããŠå·®ç°ãæšå®ããããšãã§ããŸãã
ããŒã¿ã«ãããšãã³ã³ããŒãžã§ã³ã®å¢å çã¯10ã35ïŒ ã§ãã 10ïŒ ã§ãããæè³ã®èŠ³ç¹ãããªã³ã©ã€ã³ã¹ãã¢ã®å€§ããªææšã§ãã ãŠãŒã¶ãŒã¯åºåããšã³ã²ãŒãžã¡ã³ãã«ããå€ãã®ãéãæå ¥ãã代ããã«ãèŠèŽè ãšããå¹æçã«é£æºããŸãã
ãããããªãã³ã³ããŒãžã§ã³ã®äŒžã³ã«ããã»ã©ã®ã°ãã€ããããã®ã§ããããïŒ ä»¥äžã«äŸåããŸãïŒ
- ããŸããŸãªåæãã
- ãããã¯ã¹
- ãµã€ãäžã®è£œåã®ç·æ°ã
- èŠèŽè ã®è©³çŽ°
- ååã®æã
ã¢ã€ãã ãšã¢ã¯ã»ãµãªãå°ãªãã«ã¿ãã°ã§ã¯ãæé·ã¯å°ãªããªããŸãã å€ãã®è¿œå ã®ããžã·ã§ã³ãæäŸããåºèã§ã¯ãæé·çãé«ããªããŸãã
ãã®ä»ã®çšé
ãªã³ã©ã€ã³ã¹ãã¢ã«å ããŠããã®ãããªããŒã«ãã©ãã§äœ¿çšã§ããŸããïŒ èŠèŽè ãå¢ããããã»ãšãã©ãã¹ãŠã®ã€ã³ã¿ãŒããããããžã§ã¯ãã§ã çµå±ã®ãšãããååãŠãããã¯å ·äœçãªãã®ã ãã§ã¯ãããŸããã 補åã«ã¯ãèšäºãããã¹ãçŽ æãããžã¿ã«è£œåããµãŒãã¹ãªã©ããããŸãã
- ã¢ãã€ã«ãªãã¬ãŒã¿ãŒããµãŒãã¹ãããã€ããŒïŒåºçºããæºåãã§ããŠãã顧客ãèå¥ããŸãã
- éè¡éšéïŒè¿œå ãµãŒãã¹ã®è²©å£²ã
- ã³ã³ãã³ããããžã§ã¯ãã
- CRM
- ã¡ãŒãªã³ã°ãããªã¬ãŒããŸãã
åãã¢ãã«ã䜿çšããŠãããšãã°ç¡æã®é¢çšããææã®é¢çšã«ããŸãã¯ãã®éã«åãæ¿ããèŠèŽè ãšãã®æ欲ãè©äŸ¡ã§ããŸãã ãŸãã¯ããŠãŒã¶ãŒã競åä»ç€Ÿã«å»ãå¯èœæ§ãè©äŸ¡ã§ããŸãã ããã¯ãè¿œå ã®å²åŒããŒã±ãã£ã³ã°ãã£ã³ããŒã³ã«ãã£ãŠé²æ¢ã§ããŸãã ãŸãã¯ãã¯ã©ã€ã¢ã³ãã補åãŸãã¯ãµãŒãã¹ãè³Œå ¥ããããšããŠããå Žåã¯ãèå³æ·±ããªãã¡ãŒãæäŸããŠãèŠèŽè ã®ãã€ã€ã«ãã£ãé«ããããšãã§ããŸãã åœç¶ãããããã¹ãŠãããªã¬ãŒãªã³ã¯ã§å¯èœãªéãæè»ã«äœ¿çšã§ããŸãã ããšãã°ã補åã衚瀺ãããã¹ã±ããã«å ¥ãããã泚æããªãã£ããŠãŒã¶ãŒã¯ãå人çãªãªãã¡ãŒãè¡ãããšãã§ããŸãã
BigDataãããžã§ã¯ãã®çµ±èšïŒã«ã¹ã¿ãã€ãº
çŸåšãåœç€Ÿã®ãã©ãããã©ãŒã ã§ã¯1äž7åã®åºèãå¶æ¥ããŠãããã·ã¹ãã ã¯1ãæãããçŽ4å4,000äžã®ã€ãã³ããèšç®ããŠããŸãã 補åã«ã¿ãã°å šäœã«ã¯ãçŽ1800äžã®ã¢ã€ãã ãå«ãŸããŠããŸãã åèšæ³šææ°ã«å¯Ÿããæšå¥šã®æ³šæã®å²åïŒ9ã37ïŒ ã
ã芧ã®ãšããã倧éã®ããŒã¿ãããããããã¯èªéã§ã¯ãªããæ©èœããŠå©çããããããŸãã ãã©ãããã©ãŒã ã§å¶æ¥ããŠããåºèã®å Žåããã®ãµãŒãã¹ã¯ç¡æã§ãã ããã¯ãšã³ãåŽã§å€æŽã§ãããªãŒãã³APIããããç¹å®ã®èšªåè ã«ããæè»ãªæšå¥šãæäŸããŸãã