백엔드로 노는게 생각보다 재밌다. 비용과 퍼포먼스를 고려해 여러 시도를 해 보고 다음과 같이 정착했다.
추후 로드밸런서로도 활용될 nginx 프록시 서버, node 로 만든 api 서버, 인증,디비,실시간 통신을 담당한 수파베이스 마지막으로 캐싱작업에 활용될 레디스 서버로 구성하였다.
도메인, 파일 호스팅은 클라우드 플레어에서 담당.
서비스 특성상 데이터가 공개되므로 트래픽과 디비콜을 줄이기 위해 데이터는 가능하면 레디스에 유지하고 실시간 업데이트는 수파베이스를 통해 공유, 디비 업데이트는 필요한 부분만 하도록 최소화 하는 방식이다.
서버들은 오라클에 1시피유+1기가램+50기가를 레디스 전용으로 돌리고 나머지 4시피유 24기가램 100기가에 모든걸 도커로 때려박았다.
인증/디비/실시간 통신 모두 지역별 배포를 포함해 수평 확장 방법도 대충 계획해 두었다. 제발 이걸 진지하게 고민할 만큼 서비스가 잘 되면 좋겠다.
기반 구조 스터디와 작업이 완료되었으니 이제 실제 기능 구현에 집중해야겠다!