MSA 방식 , 모놀리식 아키텍쳐 차이점
MSA(MicroServiceArchitecture) - 모놀리식 애플리케이션을 나눠 개발하는 방식(개별 프로젝트로 실행가능한 상태)
- 장점 : 장애가 발생했을때 해당 애플리케이션에만 사용에 장애가 발생 => 규모가 큰 프로젝트인경우에 유용
- 단점 : 아키텍쳐가 복잡하여 개발하기 어렵고, 개발하기 어렵기때문에 개발비용이 당연히 비싸짐.
모놀리식 방식 (Monolithic Architecture) - 모든 애플리케이션 구성요소가 하나의 프로젝트에 구성되어있는 방식이다.
(장단점이 MSA와 정반대라고 볼수있다.)
- 장점 : 아키텍쳐가 MSA보다 간단하고 개발하기 쉽고, 개발하기 쉽기때문에 개발비용이 저렴하다. => 규모가 작은경우엔 모놀식 방식이 유용
- 단점 : 장애가 발생했을때 사이트 전체에 장애가 발생하기때문에 큰 규모의 프로젝트일경우엔 모놀리식 방식보단 MSA방식이 좋아보임.
이러한 장단점이 명확하기때문에 설계단계에서 프로젝트 구조선택을 잘 해야할거같다는 생각이 들었다.
참고 : https://aws.amazon.com/ko/microservices/
마이크로서비스란 무엇입니까? | AWS
마이크로서비스의 경우 각 서비스가 지원하는 애플리케이션 기능의 수요를 충족하도록 해당 서비스를 독립적으로 확장할 수 있습니다. 따라서 팀은 필요한 인프라의 규모를 적절히 조절하고,
aws.amazon.com
aws에서 msa대해서 설명해줬는데 이해하는데 도움을 줬다.
MSA 적용이유 : 모놀리식 아키텍쳐는 기능간 긴밀하게 연결되어있고 기능이 추가될때 애플리케이션간 긴밀하게 연결되어있기때문에 기능을 추가하기도 복잡하고 하나의 기능에 에러가 생기면 많은 기능에 문제가 생길수있기때문에 이러한 상황에 MSA 아키텍쳐가 유용
모놀리식 적용이유 : 적은 비용으로 간단한 프로젝트를 진행할시에 모놀리식이 유용. 처음부터 MSA방식이 부담된다면 모놀리식 아키텍쳐로 구성하고 고도화를 통해 MSA로 바꾸는 경우도 있을거같음(개인적인생각)