매일 매일, 차곡 차곡 쌓기



완벽하지 않은 것을 두려워 말며,
완성도를 높히는데 집중하자.

소프트웨어 아키텍처

마이크로서비스 아키텍처

blockbuddy93 2024. 1. 13. 19:46

마이크로서비스 아키텍처란?

마이크로서비스 아키텍처(MicroService Architecture, MSA)는 단일 애플리케이션으로 이루어진 모놀리식 아키텍처와 달리 아주 작은 서비스 단위로 나눠 각 서비스에 독립적으로 서비스를 구성하는 소프트웨어 아키텍처 입니다.

 

 

 

마이크로서비스 아키텍처의 장점

  • 유연한 확장성 : 각 마이크로서비스는 다른 서비스와 독립적으로 확장할 수 있기 때문에 유연합니다.
  • 더 민첩한 배포 주기 : 코드 변경점이 생긴 서비스 영역만 배포할 수 있기 때문에 빠르게 배포할 수 있습니다.
  • 유지 관리 안전성 : 여러 마이크로서비스로 분할하여, 특정 마이크로서비스가 중단되더라도 전체 어플리케이션에 영향을 미치기 않기 때문에 안정적이다
  • 기술 유연성 높음 : 각 마이크로 서비스는 필요에 따라 독립적으로 기술적용이 가능하므로 기술 유연성이 높다.

 

마이크로서비스 아키텍처의 단점

  • 복잡한 구조, 높은 구현 난이도 : 둘 이상의 마이크로서비스로 이루어진 복잡한 구조를 고려하여 개발해야되기 때문에 구현 난이도가 높습니다.
  • 모니터링, 디버깅, 통합 테스트가 어려움 : 둘 이상의 마이크로서비스를 고려하여 모니터링, 디버깅, 통합 테스트를 하는것은 어렵습니다. (어플리케이션 실행도 어렵고, 문제가 발생하는 지점을 찾기어렵습니다.)
  • 인프라 및 자원, 인력에 드는 막대한 비용: 마이크로서비스 아키텍처는 각각의 서비스를 독립적으로 배포하고 운영해야 하므로 인프라 및 자원, 인력에 드는 비용이 상대적으로 더 많이 들 수 있습니다.
  • 까다로운 DB 트랜잭션 관리: 마이크로서비스 환경에서 여러 서비스 간의 데이터 일관성을 유지하려면 데이터베이스 트랜잭션을 관리하는 것이 복잡할 수 있습니다.

 

마이크로서비스는 언제 사용하면 좋을까?

  • 기술 복잡도가 높은 대규모 프로젝트
  • 다양한 기술 스택을 사용하고, 여러 비즈니스별 요구사항이 명확한 경우
  • 장애를 줄이고, 시스템 전체의 가용성과 탄력성을 높혀야 할 때

 

참고

 

모놀리식과 마이크로서비스 비교 - 소프트웨어 개발 아키텍처의 차이 - AWS

마이크로서비스는 더 빠르게 혁신하고, 위험을 낮추고, 출시를 가속화하며, 총 소유 비용을 줄이는 데 도움이 됩니다. 마이크로서비스 아키텍처의 운영상 이점을 요약하면 다음과 같습니다. 더

aws.amazon.com

 

'소프트웨어 아키텍처' 카테고리의 다른 글

클린아키텍처  (0) 2024.02.01
레이어드 아키텍처  (0) 2024.01.13
모놀리식 아키텍처  (0) 2023.12.04