본문으로 바로가기

MSA(Micro Service Architecture)와 API Gateway

category IT 2021. 9. 23. 15:37
반응형

마이크로 서비스란(microservice)?

마이크로 서비스(microservice)의 사전적인 정의를 말씀드리면 다음과 같습니다. 애플리케이션을 느슨하게 결합된(loosely coupled) 서비스의 모임으로 구조화하는 서비스 지향 아키텍처(SOA,Service Oriented Architecture) 스타일의 일종인 소프트웨어 개발 기법입니다.
규모가 작은 자율적인 팀들이 팀별 서비스를 독립적으로 개발 확장 할 수 있게 됨으로써 병렬로 개발 할 수 있게 하고, 지속적인 배포와 디플로이를 가능하게 하는 아키텍처를 말합니다.

요약해보면 크게 3가지로 정리할 수 있습니다.

  • 서비스들의 느슨한 결합(loosely coupled)
  • 서비스 지향 아키텍처의(SOA) 일종
  • 지속적인 배포와 디플로이 가능(CI/CD)

MSA(Micro Service Architecture)의 등장 배경

마이크로서비스 아키텍처가 언급되기 시작한 시점은 2011년 5월 베니스에서 개최된 소프트웨어 아키텍처 워크숍에서 였습니다. 그 이후 2012년부터 넥플릭스와 아마존에서 자사의 시스템에 적용하기 시작했습니다. 대규모 고객을 상대로한 웹기반 분산 시스템을 구현해야하는 넷플릭스, 아마존은 다양한 기능을 빠르게 개발,테스트,유지보수 할 수 있어야 했고 모놀리식 아키텍처에서 마이크로 서비스 아키텍처를 채택하게 되었습니다.

MSA(Micro Service Architecture)의 핵심은 API Gateway

MSA에서는 다양한 클라이언트와 여러 서비스들이 잘게 나뉘어지기 때문에 이 둘을 연결하고 인터페이스를 담당하는 중간다리 역할인 API Gatway가 필요하게 되었습니다.

API Gateway 역할

  1. 엔드포인트 단일화 : API서버 앞단에서 모든 API 서버들의 엔드포인트를 단일화하여 여러 마이크로 서비스에 번거롭게 호출하지 않아도 됨
  2. API 호출 관리 : API 호출이 서버 앞단에서 이루어 지므로 API호출에 대한 등록 및 로그 기록 관리가 쉽다
  3. API 서비스 호출 인증(Authentication) : API gateway 앞단에서 한번에 인증 해주므로 각 마이크로 서비스가 별도로 인증하지 않아도됨
  4. API 라우팅(Routing) : API요청을 여러 서버로 라우팅을 해주는 기능 함
  5. API 캐싱(caching) : Json, Xml형태의 API응답에 대한 캐싱을 함
  6. API 사용 빈도 제한(Rate Limiting) : API공급자의 과도한 트래픽을 빈도, 시간 별로 제한 함
반응형