개발 이야기/MSA
[MSA] 모니터링 (Monitoring, Logging, Tracing)
[MSA] 모니터링 (Monitoring, Logging, Tracing)
2022.12.12MSA(Microservice Acchitecture)에서는 서비스가 분산되어 있는데 모니터링을 어떻게 해야 될까? 클라우드 환경에서는 디스크에 기록된 로그들은 사라질 수 있고 수 많은 서비스의 로그를 각각 관리하기는 굉장히 힘들고 시간도 오래 걸린다. 그렇기 때문에 장비의 디스크에 기록하는 것에 의존해서는 안되고 모든 로그들을 한 눈에 볼 수 있도록 구성하여 문제가 발생했을 때 빠른 대처가 가능하다. MSA에서의 모니터링, 로깅, 트레이싱에 대해서 알아보자. 모니터링 (Monitoring) 인프라 및 응용프로그램의 성능이나 효율성을 확인하는 작업으로 각 대상에게서 수집한 Metric정보를 통해서 대상 리소스의 사용률, 트래픽 등을 수치로 표현하는 기능을 수행한다. 자체적으로 시각화하여 수치와 그래프로 ..
[MSA] Service Discovery 구축하기 - Spring Boot + Netflix OSS Eureka Server
[MSA] Service Discovery 구축하기 - Spring Boot + Netflix OSS Eureka Server
2022.12.02이전 글에서 이야기했듯이 MSA에서는 기본적으로 여러 서비스를 등록하고 등록한 서비스의 검색을 수행하는 서비스 디스커버리 서버(Service Discovery Server)가 필요하다. 디스커버리 서버 Client-Side 방식 중에서 가장 유명하고 구현이 쉬운 Netflix OSS Eureka 서버를 구축해보려 한다. 1. Service Discovery Server 프로젝트 생성 1-1. Service Discovery 프로젝트 생성 ServiceDiscovery 프로젝트를 생성하고 dependency 선택창에서 eureka를 검색해서 Eureka Server를 추가한다. 1-2. application.yml 설정 생성된 프로젝트 src/main/resources 폴더 하위에 application.p..
[MSA] API Gateway 구축하기 - Spring Boot + Spring Cloud Gateway
[MSA] API Gateway 구축하기 - Spring Boot + Spring Cloud Gateway
2022.12.02API Gateway를 구현하기 전에 Service Discovery Server가 필요한데 Netflix OSS Eureka를 사용한 구현하는 방법을 소개한 글을 읽고오면 된다. [MSA] Spring Boot로 Service Discovery 구축하기 - Netflix OSS Eureka Server 이전 글에서 이야기했듯이 MSA에서는 기본적으로 여러 서비스를 등록하고 등록한 서비스의 검색을 수행하는 서비스 디스커버리 서버(Service Discovery Server)가 필요하다. 디스커버리 서버 Client-Side diary-developer.tistory.com 바로 시작해보자! 1. API Gateway, Service 프로젝트 생성 1-1. Sping Cloud Gateway 프로젝트 생성..
[MSA] Config Server 이해하기 - Spring Cloud Config (4)
[MSA] Config Server 이해하기 - Spring Cloud Config (4)
2022.11.22MSA에서 서비스가 많아지면서 그만큼 설정정보 파일도 많아지게 되었다. 설정 파일을 수정 후 서비스에 적용하려면 서버를 재기동해야 하는 경우가 생기게 된다. 만약 공통으로 사용하는 설정 파일이라고 생각해보면 변경된 설정을 적용하기 위해서 서비스 수만큼의 재기동을 해야 하는 문제점이 있다. MSA에서는 이런 불편함을 해소하고자 설정 파일을 재기동없이 각 서비스에 적용되도록 하고 많은 설정 파일들을 관리하는 Config Server 라는 개념이 생겨나게 되었다. Config Server 분산된 시스템에서 모든 애플리케이션 관련 설정 정보를 중앙 집중식 관리를 지원하는 서버 Config Server를 사용한다면 모든 서비스들의 설정 정보들을 외부에서 보관 및 관리할 수 있도록 지원하고 서버를 재기동 하지 않고..
[MSA] Service Discovery Server 이해하기 (3)
[MSA] Service Discovery Server 이해하기 (3)
2022.11.22MSA는 클라우드 환경에서 수많은 서비스들이 자동 스케일링, 확장 등 서비스 인스턴스가 수시로 생성되고 또 소멸을 반복하게 되면서 서비스의 정보(IP, PORT 등)는 계속해서 변경되는데 계속해서 변경되는 서비스를 식별해서 호출하기는 상당히 어렵다. 그래서 많은 서비스들을 유지 관리하기 위해 서비스 디스커버리 패턴을 적용할 필요가 있다. 서비스 디스커버리 (Service Discovery) 서비스 인스턴스를 식별하여 서비스를 등록하고 등록한 서비스의 검색을 수행한다. 서비스 디스커버리 서버의 동작 방식에 따라 Client Side, Server Side 방식이 존재한다. Client Side Discovery Client Side Discovery는 클라이언트가 서비스를 호출할 때 디스커버리 서버에 서비..
[MSA] API Gateway 이해하기 - Spring Cloud Gateway (2)
[MSA] API Gateway 이해하기 - Spring Cloud Gateway (2)
2022.11.21지난 글에서는 Monolithic Architecture와 MSA에 대해 전반적으로 알아보고 정리하는 시간을 가졌다. 이번 글에서는 그중 MSA에서의 API Gateway에 대해 조금 더 자세히 다뤄보려고 한다. API Gateway 쉽게 말해 모든 API 요청을 받는 문(통로)으로 요청 들어온 API에 대해 인증/인가, 라우팅, 로깅, 모니터링 등의 기능들을 제공한다. API Gateway는 간단명료하게 모든 요청에 대한 통로라고 생각하면 될 것 같은데 많은 서비스들을 각각 호출하는 것이 아닌 API Gateway 단일 지점을 호출하면 된다. 예를 들어 API Gateway를 고속도로의 톨게이트에 빗대어 생각해보면 어느 지역을 가든 자동차가 고속도로를 이용하기 위해서는 톨게이트를 지나쳐야 한다. 고속도..
[MSA] MSA 개념 이해하기 (1)
[MSA] MSA 개념 이해하기 (1)
2022.11.21최근 회사에서 MSA에 대한 이야기를 듣게 되었는데, MSA라는 개념을 들어본 적이 없어서 생소했다. 그런데 사실 아예 접하지 못한 개념은 아니었다는 것을 알게 되었는데 결론적으로 이야기하면 시스템, 서비스 분산에 대한 내용이었다. MSA 하면 가장 유명한 회사가 있는데 넷플릭스에서 모놀리식 아키텍처(Monolithic Architecture)에서 마이크로서비스 아키텍처(Microservice Architecture)로 전환했다는 이야기를 많이 보게 되었다. 어째서 넷플릭스는 기존 아키텍처에서 MSA로 전환을 택하게 되었는지에 대한 내용들을 찾아보니 많은 내용들을 공감할 수 있었다. 여기서 기존 아키텍처는 Monolithic Architecture인데 어떤 문제점이 있어서 전환을 하게 되었는지 한번 확인..