본문 바로가기
Web/MSA

MSA(Micro Service Architecture)

by 시그니츠 2021. 1. 7.

MSA

MSA 이점

  • 빠른 개발 속도: 개발 언어 선택의 자유, 서비스 팀의 역량만으로 가능
  • 빠른 배포 속도 및 병렬 배포: 각 마이크로서비스간 독립된 배포 파이프라인
  • DevOps팀과 통합된 운영: 서비스에 대한 Ownership!
  • 확장성, 가용성: 마이크로서비스 특성에 맞는 확장성/가용성 설계
  • 비즈니스 도메인과 밀접하게 연결: Lean Cycle

MSA 공통 구성 요소

  • 모든 서비스의 공통 요소:
    • 서비스 등록 및 제거 (Registration / Deregistration)
    • 서비스 검색 (Discovery) 및 가용성 관리 (Healthiness)
    • 서비스 메타데이터 관리 (Oauth, ...)
    • 서비스 버전 관리
    • 서비스 별 cache 관리
  • 빠르고 효율적인 배포환경 관리
  • 자동화된 관리 및 모니터링

설계 고려사항

  • Elastic: 탄력적이어야 함 (다른 서비스들과 무관한 스케일업/다운)
  • Resilient: 단위 리소스의 장애를 견디어야 함
  • Composable: 통일된 API 인터페이스를 가져야함
  • Minimal: 작게 유지되어야 함
  • Complete: 다른 서비스들과 독립적이어야 함

구성요소

Client >> Gateway(Microservices API) >> Discovery >> Business Domain >> Data Store

구성요소 별 AWS 서비스

Gateway

  • AWS API Gateway

Discovery

  • Elastic Load Balancing

Business Domain

  • AWS Lambda
  • AWS Elkastic Beanstalk
  • AWS ECS

DataStore

  • AWS RDS

DevOps 관련 기능

  • AWS CodePipeline: 전체적인 devops pipline 오케스트레이션
  • AWS CodeBuild: 코드 빌드 및 이미지 빌드
  • AWS CopeDeploy: EC2 instance나 Beanstalk에 배포 지원
  • AWS CodeStar: 프로젝트 관리
  • AWS X-Ray: 성능 확인

댓글