Server

MSA란? 개념 이해하기 / MA와 MSA 장단점 비교 (+CORS 에러)

Hannana. 2024. 6. 18. 00:06
반응형

 

■ MA 란?

 

기존의 서버 형태는 

Monolithic Architecture (MA) 개념에 가깝다.

Monolithic 의 사전적 정의를 보자. 

'단단히 짜여 하나로 되어 있는'
응용 프로그램이 단일 코드베이스로 구성되는 아키텍처이다.
즉,  하나의 서비스의 장애가 다른 서비스로 전이되어 전체 시스템 장애로 이어질 수 있는 구조이다. 

 

 

모든 기능이 하나의 애플리케이션으로 결합되어 배포되며,

모듈들은 내부적으로 긴밀하게 결합되어 있는 것이 특징이다.

<MA 장점>

이러면 단순한 개발 및 배포/관리가 가능하다는 장점이 있다.

심지어 같은 메모리 공간에서 실행되므로 서비스 간 통신 오버헤드가 적어 cpu성능 면에서 좋을지도 모른다.

 

그러나 서비스가 커질 수록,
<MA 단점>

=> 애플리케이션 전체를 확장해야 하므로 자원 낭비가 발생하고 의존성이 높아져

유연성이 떨어지고, 전체적인 프로그램의 비효율을 이끈다.

 

 

이래서 생겨난 게 MSA이다.

 

 

 

 

■ MSA 란?

MSA는 MicroService Architecture의 약자로,

서버를 하나만 두지 말고, 각 용도 별로 여러 개 운영하자는 것이다.

MSA 내부에선 여러 개의 WAS가 각기 다른 서비스를 담당하며, 서로 독립적으로 동작하는 것을 전제로 한다.

 

 

쪼개어 각자 동작하고 합치니, Monolithic Architecture의 문제점을 보완이 가능한 것이다.

 

 

<MSA 장점>

  • 배포(deployment),운영 관점
    -서비스 별 개별 배포 가능 (배포 시 전체 서비스의 중단 필요X )
    -요구사항을 신속히 반영한 빠른 배포

  • 확장(scaling) 관점
    -신기술 적용에 유리함
    -특정 서비스에 대한 확장성이 용이
    -클라우드 사용에 적합
    -서비스를 다양한 언어로 개발 및 운영 가능

  • 장애(failure) 관점
    -장애가 전체 서비스로 확장될 가능성 ↓
    -부분적 장애에 대한 격리가 수월

 

<MSA 단점>

  • 성능 관점
     -서비스 간 호출 시 API를 사용하므로, 통신 비용 발생
  • 테스트 관점
    -서비스가 분리되어 있어 테스트와 트랜잭션의 복잡도 증가

  • 데이터 관리 관점
    -데이터가 여러 서비스에 걸쳐 분산되어 한번에 조회가 어려움



 

이런 MSA 구조를 사용하게 되면 CORS를 조심해야 한다.

다음 글을 참고하자.

 

 

CORS 에러란? 발생 원인과 해결 방안까지

프론트-백을 겸하여 개발하다보면쉽게 만날 수 있는 CORS 에러.특히나 서로 다른 도메인이나 포트에서 실행되는 마이크로서비스(MSA)들 간의 요청에서CORS 문제가 발생할 수 있다.■ CORS란?CORS(Cross-

hansjour.tistory.com

 

 

 

 

 

 

반응형