이 기획서를 만드는 이유는 제가 참여한다고 너무 뻔뻔하게 애기를 했고 시작을 장대하게 뽑고 다음 주에 꾸준히 작업할 원동력을 얻기 위해서입니다.
개요
오늘날 스팀잇 kr의 어뷰저들의 문제의 대두함에 따라 문제 해결책과 정확한 통계의 수요가 생기기 시작했습니다. 그렇기에 kr 커뮤니티의 증인이신@clayop 님이 커뮤니티에 개발을 요청하심으로 제가 할 수 분야인 backend 아키텍쳐만 분담할려고 했지만 분위기(?)가 다 제가 한다고 오해가 되어서 제목에서 그랬듯이 backend 기획서입니다. 여기에 data processing, frontend 등 더 많은 사람들이 참가해야지 이 프로젝트가 완성이 되는 것입니다. 총괄은
@clayop 님이 하시겠지만 저는 나중 혹은 지금의 데이터 분석자들, 프론트엔드 개발자들이 달려 붙어서 어뷰저들의 행위를 쉽게 탐지, 공표할 수 있게 데이터 저장고를 만들 것입니다. 여기서 말하는 데이터 저장고는 스팀 블록체인에서
@clayop 님의 기준(토론에 따라 바뀔 수 있음)을 제시한 어뷰징 행위를 기록하고 저장하고 가장 기초적인 통계를 내는 역활을 하는 도구가 될 것입니다.
구조
백엔드에서 중요한 것은 끊임없는 작동입니다. 즉 안정성을 의미하기도 하지만 확장성도 동시에 의미합니다. 그래서 모든 IT 인프라들은 클라우드로 개발되고 있습니다. 클라우드에 맞춰서 개발을 하면 자본만 신경쓰지 않으면 무한대의 확장성을 통해 안정성을 유지할 수 있게 됩니다. 물론 서버라는 존재는 아직도 기업에서 관리하는 잠재적 복병이죠. 이제는 완전한 안정성과 확장성을 위해 최근에는 기업들은 직접 클라우드에서 서버를 대여받기 보단 아마존 같은 서비스 제공자에서 서버를 관리하고 기업에서는 코드만 관리하는 서버리스 아키텍트가 유행하고 있고 이제 개발자는 생각하고 구현하고 실행하면 됩니다. 그리고 이 추세를 통해 이 스팀 블록체인에서 새로 생성되는 데이터의 홍수에서의 저렴하고 강력한 배가 될 것입니다.
지금 그림에서 보시는 것은 Amazon Web Service(AWS)에서 세 가지 서비스만을 통해서 구축할 수 있고 아시는 분은 알겠지만 서버 역활을 하는 EC2 서비스가 없습니다. 모든 연산은 초당위로 과금하는 lambda로 처리합니다. 데이터 저장은 S3에 저장합니다. 그리고 CDN은 aws cloudfront를 쓰던 TTL 조절만 되면 됩니다.그럼 Lambda란 무엇인가?
AWS Lambda는 서버리스와 마이크로 아키텍쳐를 주도하는 서비스입니다. 앞에서 말했듯 초당 과금입니다. 지금의 EC2(서버)도 초당, 분당 과금을 하고 있습니다. Lambda는 서버의 실행시간을 계산하는 게 아닌 프로그램의 실행 시간을 100ms 단위로 과금합니다. 프로그램이 실행되지 않으면 과금되지 않습니다.근데 블록체인을 감시할려면 24시간 켜져있는 서버가 더 나은 선택이 아닌가?
네, 그럴때도 있습니다. 하지만 24시간 동안 언제 어뷰징 활동이 일어나는지 아무도 모르고 무거운 후처리를 위해 무작정 큰 서버를 쓸 수도 없습니다. 후처리를 한다고 블럭에서 데이터 수집을 멈출 수도 없습니다. lambda를 쓰면 후처리가 필요하면 데이터를 S3에 넣으면 다음 단계의 lambda 프로그램을 실행하도록 셋팅할 수 있고 병렬로 실행할 수 있습니다. 그리고 웹페이지는 하루에 한 번 정도면 생성하면 되는 것 아닌가요? 통계자료니까!은 다음 시간에…..
ps. 학교 등하교 후 미친듯이 쓰는 거라 오탈자가 미친듯이 나올 수 있습니다. 보고바람!!!
ps2. 이미 아이디에서 눈치를 채신 분들도 있겠지만 저 오늘 생일이고 미성년자라는 타이틀을 벗는 날입니다! 별로 기쁘지가 않네요.
ps3. 오늘 개발환경 구축한다고 점심 못 먹음. 케이크 안할 것 같은 데 해주셨네. 모두 고마우신 분들이예요.