MSA 기반 '초보자 어시스트 대시보드' 아키텍처: 안정성과 확장을 위한 설계 여정

🤖 AI 추천

MSA(Microservice Architecture)를 도입하여 안정적이고 확장 가능한 시스템을 구축하고자 하는 백엔드 개발자, 소프트웨어 아키텍트, CTO 및 리더급 개발자에게 이 콘텐츠를 추천합니다. 특히, 초기 MSA 설계의 어려움, 서비스 분리 기준, 그리고 CI/CD 파이프라인 구축 경험에 대한 인사이트를 얻고자 하는 분들에게 유용할 것입니다.

🔖 주요 키워드

MSA 기반 '초보자 어시스트 대시보드' 아키텍처: 안정성과 확장을 위한 설계 여정

핵심 기술

본 콘텐츠는 IT 서비스 '초보자 어시스트 대시보드'를 MSA(Microservice Architecture) 기반으로 설계한 과정을 공유하며, 확장성과 내결함성을 확보하는 데 중점을 둔 아키텍처 설계 경험을 다룹니다. 안정성분리를 핵심 가치로 삼아 MSA를 성공적으로 적용한 사례를 보여줍니다.

기술적 세부사항

  • MSA 적용 이유:
    • 기능 증가에 따른 단일 서버 관리의 어려움 해결.
    • 장애 발생 시 전체 시스템 중단을 방지하는 내결함성 확보.
  • 인프라 구성 (AWS VPC 기반):
    • 퍼블릭 서브넷: Nginx API Gateway, Next.js (프론트엔드).
    • 프라이빗 서브넷: 독립적으로 동작하는 세 개의 MSA 서비스 (Internal, External, Chart).
  • 보안 및 접근 제어:
    • 퍼블릭/프라이빗 서브넷 분리.
    • Bastion 호스트를 통한 내부 EC2 SSH 접근 제어로 외부 공격 방어.
  • API Gateway (Nginx):
    • 클라이언트 요청 라우팅.
    • 인증, 로깅, 로드밸런싱 등 공통 기능 처리로 서비스 부담 경감.
  • 비동기 메시징 (Kafka):
    • 서비스 간 (Internal ↔ External ↔ Chart) 데이터 연동을 Kafka 이벤트를 통해 처리.
    • 서비스 간 직접 의존성을 줄여 ‘느슨한 결합(loose coupling)’ 구조 구현 (예: External 서비스 뉴스 발행 → Chart 서비스 구독 및 신호 갱신).
  • 데이터베이스 (RDS, Master/Slave 구조):
    • 쓰기/읽기 분리 및 멀티 AZ 복제를 통한 장애 시 자동 복구.
    • 운영 환경에서의 끊김 없는 시스템 목표.
  • MSA 서비스 분리 기준 (비즈니스 도메인 단위):
    • internal-assistant-service: 사용자 정보, 거래 내역, 투자 성향 리포트 등 내부 데이터.
    • external-assistant-service: 뉴스/시장 데이터, 섹터 정보, 고가 종목 거래량 등 외부 데이터 연동.
    • chart-similarity-service: 차트, 호가창, 유사 차트 신호 분석 및 매매 신호 계산.
    • common-service: 공통 인증/인가, 설정 관리, 멤버 도메인.
  • CI/CD 및 무중단 배포 파이프라인 구상:
    • 독립 배포: 서비스별 별도 브랜치 관리, 커밋 시 자동 빌드 → 테스트 → 배포.
    • 공통 모듈 연동: Common 모듈 수정 시 3개 서비스 자동 재빌드하여 버전 충돌 방지.
    • Blue-Green 배포: 새 버전 병렬 배포 후 트래픽 전환, 장애 시 이전 버전 롤백.
  • 데이터 관리: RDS(관계형 데이터), Kafka(서비스 간 이벤트 연결).

개발 임팩트

  • MSA 적용을 통해 팀 단위 병렬 개발이 가능해졌으며, 문제 발생 시 서비스 단위 장애 격리 실현.
  • 보안 및 분리 설계를 통해 시스템의 유연성 확보.
  • CI/CD 자동화 파이프라인 구축으로 개발 및 운영 효율성 증대.
  • 무중단 배포를 통해 서비스 안정성 향상.

커뮤니티 반응

(원문에 직접적인 커뮤니티 반응 언급 없음)

📚 관련 자료