본문 바로가기
반응형

MSA6

'Service Mesh' VS 'API Gateway' 이전 포스팅에서 Service Mesh 와 Api Gateway 에 대해서 다룬 글이 있다. 자세한 내용은 아래 참고포스팅을 참고 바란다. 이번 포스팅에서는 둘의 차이를 비교해보려고 한다. 차이점 적용 위치 API Gateway는 중앙집중식으로 외부에서 들어오는 트래픽을 제어하여 서로 다른 망 사이에 존재한다. Service mesh는 애플리케이션 기능에 인프라 계층에서 관리되는 마이크로 서비스 분리 방법으로 내부망 K8S 클러스터 내에 존재한다. 패턴 API Gateway 는 Gateway Proxy Pattern 을 사용한다. 호출자는 구현 내용을 알 필요 없이 Gateway를 호출만 하면 Gw 가 알아서 수행한다. Service Mesh는 Sidecar Pattern 을 사용한다. 호출자의 코드에는.. 2024. 3. 8.
Service Mesh 란? 요즘 떠오르는 MSA 에서의 시스템 내부 통신이 Mesh 네트워크의 형태를 띄는것처럼 보인다. MSA와 Mesh 네트워크에 대해서는 아래 참고 포스팅을 참고 바란다. MSA 내부에서 서비스들끼리 서로 Mesh네트워크 형태처럼 서비스를 주고 받는것을 Service Mesh라고 한다. 아래 그림을 참고하면 각 MS에서 필요한 서비스를 Proxy를 통해 호출하고 받고 상호작용을 한다. Service Mesh 적용 이유 Service Mesh를 적용하는 이유는 MicroService Architecture는 Monolitic Architecture의 단점 극복과 Cloud 환경에서 시스템을 운영할 때의 이점을 극대화하기 위해 많이 사용되고 있다. 이를 통해 많은 문제들이 해결되었지만, 또다른 문제점도 발생했는데.. 2024. 1. 9.
API Gateway란? 요즘 인기있는 디자인 아키텍쳐 중에 가장 많이 언급되고 있는 MSA 를 알고 해당 포스팅을 보는것을 추천한다. 만약 MSA 에 대한 개념을 모른다면 아래 참고포스팅을 한번 보고 해당 포스팅을 읽어보는것을 추천한다. 다양한 서비스에 따라, 유저의 호출에 따라 불러와야할 서버들이 그림과 같이 다르다. 그럴 경우 api gateway는 중간에 껴서 적절한 서버를 request, response 해주는 역할을 한다. 물론 각각 요청별로 RESTTemplete 를 만들어도 되고 프록시 등 다양한 방법이 있지만 apigateway를 사용하게 되면 장점은 다음과 같다. 클라이언트의 요청을 일괄 처리 전체 시스템의 부하 분산 시키는 로드밸런서 역할 동일 요청에 대한 불필요한 반복작업을 캐시로 수행 시스템상을 오고가는 .. 2022. 7. 14.
SAGA 패턴 이전 포스팅에서도 디자인 패턴에 대해서 다룬 글들이 몇개 있었다. 아래 참고 포스팅을 확인해보면 도움이 될것이다. 이번에 다룰 디자인 패턴은 SAGA 패턴이다. 해당 패턴은 MSA 구조에서 많이 사용되는 패턴으로 MSA 역시 아래 참고 포스팅을 참고하길 바란다. SAGA 패턴이란? 마이크로서비스들끼리 이벤트를 주고 받아 특정 마이크로서비스에서의 작업이 실패하면 이전까지의 작업이 완료된 마이크서비스들에게 보상 (complemetary) 이벤트를 소싱함으로써 분산 환경에서 원자성(atomicity)을 보장하는 패턴이다. 즉 작업들이 하나의 트랜잭션으로 이루어져있고 하나라도 실패를 하면 작업이 rollback 된다고 생각을 하면 된다. 그림으로 보면 다음과 같다. 하나의 App 은 물론 하나의 기능이 될수도 .. 2022. 7. 5.
대용량 트래픽에 대한 대처법 서버든 데이터베이스든 다수의 사용자가 동시에 몰리면 트래픽이 집중이 되어 서버가 렉이 걸릴수도 있고 만약 메모리가 오버가 된다면 out of memory등의 에러를 내뱉으면서 서버가 뻗게 된다. 이를 방지할수 있는 몇가지 방안을 소개해보는 포스팅을 작성해볼것이다. was와 webserver 구분하기 대표적으로 was로는 tomcat 등이 있고 webserver 는 apache 등이 있다. 정적과 동적이라는 뜻은 알것이라 생각하고 정적인 페이지 코드들은 webserver에, 동적인 페이지 코드는 was 에 구분을 해서 작성을 해두면 페이지 로딩할때 각각 분담을 하여 로딩을 하기에 속도 개선에 도움이 된다. scale up / scale out 실제로 가장 효과적인 방법이며 가장 좋은 방법이지만 단점은 돈이.. 2022. 4. 23.
MSA(Micro Service Architecture) 소개 아키텍쳐라 하면 개발하는 방식을 뜻한다. 요즘엔 클라우드 기술이 많아지면서 마이크로서비스 아키텍쳐가 많이 사용된다, 이전까지의 방식으로는 monolithic 방식이라 해서 하나의 묶음으로 개발을 하였는데, 마이크로서비스 아키텍쳐 방식은 서비스단위나 비슷한기능끼리 묶어서 기능을 제공하는 방식이다. 아래 그림을 보자. 오른쪽 처럼 하나로 뭉쳐있는 예전 방식에 비해 왼쪽처럼 기능별로 별도로 진행되는것이 요즘의 방식이다. 특정 목적을 가진 어플리케이션 단위로 나눠서 관리를 하면서 나눠진 어플리케이션은 약한결합도와 강한응집도를 목표로 한다. 서로 api사용하여 통신을 하며 결과물을 신뢰하며 각각 독립적으로도 배포를 할수 있는게 장점이다. 이 말고도 다른 방법들도 많지만 msa에 대해서만 다뤄보았다. 모든기능을 한.. 2022. 1. 19.
반응형