IT용어
MSA (Microservices Architecture)
미니임
2026. 3. 16. 16:03

1. 개요 (Overview)
**MSA(마이크로서비스 아키텍처)**는 하나의 큰 애플리케이션을 독립적으로 배포 가능한 여러 개의 작은 서비스 단위로 나누어 구축하는 설계 방식입니다. 각 서비스는 특정 비즈니스 기능을 수행하며, 서비스 간에는 가벼운 통신 프로토콜(주로 HTTP/REST, gRPC, Message Queue)을 통해 상호작용합니다.
기존의 모놀리식(Monolithic) 아키텍처가 모든 기능을 하나의 코드 베이스와 데이터베이스에 담았다면, MSA는 이를 기능별로 쪼개어 유연성과 확장성을 극대화한 것이 특징입니다.
2. 주요 특징 (Key Characteristics)
- 독립성 (Independence): 각 서비스는 독립적으로 개발, 배포, 확장이 가능합니다. 한 서비스의 수정이 다른 서비스에 직접적인 영향을 주지 않습니다.
- 기술 다양성 (Polyglot Programming): 서비스별로 가장 적합한 언어, 프레임워크, 데이터베이스를 선택할 수 있습니다. (예: 결제 서비스는 Java, 통계 서비스는 Python 사용)
- 결함 격리 (Fault Isolation): 특정 서비스에 장애가 발생하더라도 전체 시스템으로 확산되지 않도록 차단할 수 있습니다.
- 비즈니스 중심 (Business-Oriented): 조직의 구조가 비즈니스 기능(도메인) 중심으로 구성되며, 각 팀이 특정 서비스의 전체 생명주기를 책임집니다 (DevOps 문화와 밀접).
- 분산 데이터 관리: 서비스마다 자체 데이터베이스를 가집니다. 이를 통해 데이터 결합도를 낮추지만, 분산 트랜잭션 관리라는 새로운 과제가 발생합니다.
3. 기술 스택 (Tech Stack)
MSA 환경을 안정적으로 운영하기 위해 필요한 주요 기술 계층은 다음과 같습니다.
1) 서비스 및 컨테이너 (Infrastructure)
- Docker: 서비스를 컨테이너화하여 환경에 구애받지 않는 배포 지원.
- Kubernetes (K8s): 컨테이너 오케스트레이션의 표준으로, 수많은 서비스의 배포 및 관리를 자동화.
2) 서비스 통신 및 연동 (Communication)
- REST API: 가장 일반적인 동기 통신 방식.
- gRPC: Google에서 개발한 고성능 RPC 프레임워크 (이진 프로토콜 사용).
- Message Broker (Kafka, RabbitMQ): 비동기 통신 및 이벤트 기반 아키텍처(EDA) 구현을 위해 사용.
3) 서비스 관리 (Service Mesh & Gateway)
- API Gateway (Spring Cloud Gateway, Kong): 클라이언트의 요청을 단일 창구에서 받아 적절한 서비스로 라우팅, 인증, 부하 분산 수행.
- Service Discovery (Netflix Eureka, Consul): 동적으로 변하는 서비스들의 IP 주소와 포트를 관리.
- Service Mesh (Istio, Linkerd): 서비스 간 통신 보안, 가시성, 트래픽 제어를 담당하는 인프라 계층.
4) 모니터링 및 추적 (Observability)
- ELK Stack (Elasticsearch, Logstash, Kibana): 분산된 서비스의 로그 통합 관리.
- Prometheus & Grafana: 메트릭 수집 및 시각화.
- Distributed Tracing (Jaeger, Zipkin): 여러 서비스를 거치는 하나의 요청 흐름을 추적하여 병목 현상 파악.
4. 활용 사례 (Use Cases)
- 넷플릭스 (Netflix): MSA의 선구자로 불리며, 전 세계 수천 개의 마이크로서비스를 운영합니다. 장애 시에도 서비스가 중단되지 않는 '카오스 엔지니어링'을 도입했습니다.
- 아마존 (Amazon): 수백 개의 독립적인 서비스 팀이 각자의 서비스를 관리하며, 매일 수천 건의 배포를 안전하게 수행합니다.
- 배달의민족 (Woowa Bros): 국내의 대표적인 성공 사례로, 급격한 트래픽 성장에 대응하기 위해 모놀리식에서 MSA로 전환하여 시스템 안정성을 확보했습니다.
- 우버 (Uber): 초기에 파이썬으로 작성된 모놀리식 구조를 수천 개의 마이크로서비스로 전환하여 전 세계 도시별 맞춤 서비스를 신속하게 제공합니다.
5. MSA 도입 시 고려사항 (Challenges)
- 복잡도 증가: 네트워크 호출 증가로 인한 레이턴시 문제와 데이터 일관성 유지(Eventual Consistency)가 어렵습니다.
- 인프라 비용: 서비스마다 별도의 환경이 필요하므로 운영 비용이 상승할 수 있습니다.
- 숙련도 요구: DevOps 역량과 분산 시스템에 대한 깊은 이해가 필요합니다.
반응형