MSA 5

ELK 스택으로 MSA 로그 한곳에 모으기

1. 왜 중앙화된 로그 시스템이 필요할까?마이크로서비스 환경에서 장애가 발생하면 곤란한 상황에 빠질 수 있다. 현재 나의 devnote를 예로 들면 요청 하나를 추적하기 위해 6개의 서비스 컨테이너에 각각 접속해 로그 파일을 뒤지는 것은 상당히 비효율적일것이다. 이 문제를 해결하기 위해 모든 서비스의 로그를 한곳으로 모아 검색하고 분석할 수 있는 중앙화된 로그 시스템으로 ELK 스택을 구축했다. 2. Devnote 프로젝트의 로그 아키텍처로그는 Filebeat → Logstash → Elasticsearch → Kibana 순서로 흐르도록 구성했다. 각 컴포넌트는 아래처럼 명확한 역할을 수행한다. MSA 서비스 → 호스트의 로그 파일 → Filebeat (수집) → Logstash (가공) → Elas..

Kafka와 AI로 콘텐츠 자동 수집 및 분류 시스템 만들기

DevNote개발 관련 YouTube/News Aggregator - 최신 개발 트렌드와 뉴스를 한 곳에서devnote.kr1. 왜 이벤트 기반 데이터 파이프라인인가?devnote 프로젝트의 핵심은 외부 콘텐츠를 가져와 가공하는 것이다. 만약 데이터 수집, AI 분류, DB 저장을 하나의 동기적 흐름으로 짰다면 AI 분류 API가 느려지거나 실패했을 때 전체 데이터 수집 프로세스가 멈춰버리는 문제가 발생했을 것이다. 이러한 문제를 해결하고 각 기능의 독립성을 보장하기 위해, Kafka를 이용한 이벤트 기반 비동기 데이터 파이프라인을 구축했다. 2. 전체 데이터 파이프라인 아키텍처데이터의 흐름은 명확한 역할 분담을 따르도록 설계했다. 1. 데이터 생산 (Produce): news-youtube-servic..

개인 프로젝트에 MSA를 도입한 이유

DevNote개발 관련 YouTube/News Aggregator - 최신 개발 트렌드와 뉴스를 한 곳에서devnote.kr 1. 개인 프로젝트에서 MSA는 오버 엔지니어링일까?포트폴리오를 위한 개인 프로젝트를 시작할 때면 늘 같은 고민에 빠진다. "어떤 아키텍처를 선택할 것인가?" 가장 익숙하고 빠른 방법은 모든 기능을 하나의 프로젝트에 담는 모놀리식 방식이다. 하지만 MSA를 경험해보고 싶은 마음을 무시할 수 없었다. 과연 학습 목적의 개인 프로젝트에 오버 엔지니어링은 아닐까?devnote 프로젝트를 시작하며 나는 이 질문에 "그럼에도 불구하고 MSA로 가자"고 답했다. 이번 글에서는 그 결정의 이유와 초기 설계 과정을 작성했다. 2. 이번 프로젝트에 MSA를 선택한 이유이번에 진행한 개인 프로젝트 ..

Devnote 프로젝트

DevNote개발 관련 YouTube/News Aggregator - 최신 개발 트렌드와 뉴스를 한 곳에서devnote.kr 1. 개발자 콘텐츠 플랫폼흩어져 있는 최신 개발 소식과 유튜브 영상을 한곳에서 모아볼 수 있는 개발자 콘텐츠 허브 플랫폼으로 Devnote 프로젝트를 기획했다. 단순히 링크를 모아두는 것을 넘어, AI를 통해 모든 콘텐츠를 알맞은 카테고리별로 자동 분류하고 검색 기능과 커뮤니티 기능을 통해 사용자가 원하는 정보를 쉽고 깊이 있게 탐색할 수 있도록 설계했다. 2. 주요 기능개발자에게 유용한 정보를 제공하기 위해 다음과 같은 핵심 기능들을 구현했다. 2-1. 콘텐츠 자동 수집 및 분류외부 뉴스 사이트의 RSS와 YouTube API를 통해 개발 관련 콘텐츠를 주기적으로 수집하고, G..

[MSA] MSA란 무엇일까?

1. 모놀리식(Monolithic) 방식(AS-IS):하나의 애플리케이션이 하나의 거대한 아키텍처를 가지는 방식 장점단순성모든 코드가 모여있어서 변경 사항이 발생할 경우 필요한 모든 코드가 한 곳에 존재한다. 그래서 테스트와 디버깅이 간단하다. 간편한 배포단일 프로젝트로 배포하면 되기 때문이 간단하다. 새로운 기능이 추가되거나 버그가 수정될때마다 애플리케이션을 배포하면 된다. 보편성대부분의 개발자가 모놀리식 방식으로 개발하기 때문에 익숙함이 높아 프로젝트를 쉽게 시작할 수 있다. 쉬운 모니터링오류 발생시 문제가 발생한 위치를 식별하기 쉽다 단점효율성- 수정사항이 생기면 전체를 재빌드하고 재배포해야 함(규모가 커지면 구동시간 증가)특정 오류가 서버 전체에 영향을 줌부분적인 서버의 장애가 전체 장애로 번질확..

프로필사진

남건욱's 공부기록

반응형