목록으로

Programming Notes

우테코 Car-ffeine #1 - 카페인 서버 아키텍처, 큰 그림부터 그려보기

안녕하세요, 우테코 카페인 팀의 제이입니다. 이번 주 저는 팀 프로젝트의 서버 인프라 구축 계획을 세우는 역할을 맡았습니다. 아직 EC2 스펙이나 정확한 데이터 용량은 확정되지 않았지만, 우테코에서 제공하는 제한적인 EC2 자원을 고려하여 서버 아키텍처 설계를 미리 구상해보고자...

안녕하세요, 우테코 카페인 팀의 제이입니다. 이번 주 저는 팀 프로젝트의 서버 인프라 구축 계획을 세우는 역할을 맡았습니다. 아직 EC2 스펙이나 정확한 데이터 용량은 확정되지 않았지만, 우테코에서 제공하는 제한적인 EC2 자원을 고려하여 서버 아키텍처 설계를 미리 구상해보고자 합니다. 우선, 예상되는 상황부터 살펴볼까요?

우리 팀이 개발할 API는 최소 150만 건, 최대 3700만 건의 데이터를 처리해야 할 것으로 예상됩니다. 이전 기수의 우테코 프로젝트들을 참고했을 때, EC2 인스턴스는 상당수 제공되었던 것으로 알고 있습니다. (물론, 이 부분은 추후 변경될 가능성이 있습니다.) 데이터 처리량과 안정성을 고려하여, 데이터 업데이트를 담당하는 서버와 실제 API 서비스를 제공하는 서버를 분리하는 방안을 고려하고 있습니다. 이는 데이터베이스에 대한 부하를 분산하고, 각 서버의 역할을 명확히 하여 시스템 관리 및 유지보수의 효율성을 높이기 위함입니다. 예를 들어, 공공 API에서 데이터를 가져와 업데이트하는 서버는 별도로 운영하여 API 서비스 서버의 부담을 줄일 수 있습니다. 또한, 서버 간 통신 방식을 고려하여 효율적인 아키텍처를 구축하는 것도 중요한 부분입니다. 예상되는 높은 데이터 처리량을 감안하여, 메시지 큐나 비동기 처리 방식을 활용하여 서버의 응답 속도를 개선하는 방안도 검토 중입니다. 깃허브에서 발생할 수 있는 충돌 문제 또한 효율적인 버전 관리 및 협업 시스템을 통해 최소화할 계획입니다. 마이크로서비스 아키텍처를 고려하여 서버를 모듈화하고, 각 모듈의 독립적인 배포 및 확장을 가능하게 하는 방안도 고려해보고 있습니다.

최종적으로는 효율적이고 확장 가능한 서버 아키텍처를 구축하여 안정적인 서비스 운영을 목표로 합니다. 아직 초기 단계이지만, 지속적인 검토와 개선을 통해 최적의 인프라를 구축할 수 있도록 노력하겠습니다. 구체적인 EC2 스펙 및 데이터 용량이 확정되는 대로, 보다 상세한 아키텍처 설계를 진행하고, 팀원들과 지속적으로 논의하여 최적의 방향을 설정해 나갈 계획입니다. 이 과정에서 발생하는 어려움과 해결 방안 또한 블로그를 통해 공유하며, 더욱 발전된 아키텍처 설계를 위해 꾸준히 노력하겠습니다. 앞으로도 많은 관심과 응원 부탁드립니다!