[MSA]마이크로서비스 아키텍처 구성해보기 - 2
마이크로서비스 간 통신 방법
1. API Gateway
관련 블로그 : https://inpa.tistory.com/entry/AWS-%F0%9F%93%9A-API-Gateway-%EA%B0%9C%EB%85%90-%EA%B8%B0%EB%B3%B8-%EC%82%AC%EC%9A%A9%EB%B2%95-%EC%A0%95%EB%A6%AC
API Gateway는 api 요청을 받는 입구라고 생각하면 이해하기 쉽다. 즉, API Gateway로 요청이 들어오면 알아서 적절한 마이크로서비스에 요청을 전달하는 방식이다.
또한 API Gateway는 트래픽 관리, 로킹 및 모니터링, 캐싱, 인증 및 인가 등의 기능을 제공한다.
하지만 나는 위 방식은 생각보다 비쌀 것 같기도 하고, AWS Lambda같은 서비스를 이용해 서버리스를 구성할 때 더 적절한 방식이라고 생각하여 해당 방식은 포기했다.
2. Kafka
Kafka는 아파치에서 만든 메시지 브로커이다. 카파카는 LinkedIn에서 실시간 대규모 데이터 분석을 위해 탄생했다. 실시간으로 대규모 데이터를 안정적으로 스트리밍, 저장, 전송할 수 있는 플랫폼을 만든 것이다.
이때 이런 특성이 마이크로서비스 간 통신에도 유용하게 사용할 수 있어, 마이크로서비스 아키텍처를 구성할 때 kafka를 사용하는 경우가 많다고 한다.
카프카에 대한 설명은 카프카 글에서 더 자세하게 다룬다.
이때 AWS에서 제공하는 Amazon MSK (Managed Streaming for Apache Kafka)를 이용할까 했지만, 비용도 무섭고 직접 kafka를 도커에 세팅해 설정하고 관리하는 것을 해보고자 직접 kafka 브로커를 설치해 이용하기로 결정했다.