| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- JPA
- 동시성제어
- monitoring
- Kubernetes
- RDBMS
- 트랜잭션
- 데이터베이스
- mysql
- prometheus
- kafka
- Kotlin
- CloudNative
- spring boot
- SpringBoot
- docker
- 성능최적화
- GitOps
- selector
- 백엔드개발
- DevOps
- helm
- Java
- jvm
- webflux
- 백엔드
- redis
- NIO
- netty
- grafana
- 성능 최적화
- Today
- Total
목록DevOps (14)
유성
1~2 편에서는 ELK 스택을 통한 로깅 아키텍처를, 3~4편에서는 Prometheus를 이용한 메트릭 고가용성을 다뤄보았다.운영을 하다가 초당 수만 줄의 로그를 처리하기 위해 Elasticsearch 클러스터를 계속 키우는 것은 비용과 운영 측면에서 큰 부담이 될 수 있다. 그래서 이번 5편에서는 저비용 고효율의 로깅 스택인 Loki를 구축해본다. 1. Loki는 ELK와 어떤 부분이 다른지ELK의 경우 매우 강력한 도구지만, 반대로 너무 무거운 도구이긴하다. 모든 것을 인덱싱할 것인가?ELK와 Loki의 가장 큰 차이는 "무엇을 인덱싱하는가?"에 있다.ELK: 로그의 모든 단어를 인덱싱한다. 검색은 빠르지만, 로그 양이 늘어나면 인덱스 크기가 비대해져 SSD 비용이 기하급수적으로 상승한다.Loki: ..
[클라우드 네이티브] 3편: 고가용성 모니터링(메트릭) 아키텍처 설계 전략지난 1, 2편에서는 로그 수집의 핵심인 ELK 스택을 고가용성 환경으로 구축하는 방법을 살펴보았다.로그가 서비스에서 발생하는 "기록"을 추적한다면, 이번에 다룰 메트릭(Metric)은 시스템의 "상태youseong.tistory.com이전 글에서는 모니터링 구조 설계에 대한 이론적 배경을 살펴보았다.이번 실전 편에서는 ArgoCD와 Helm을 통해 실제 메트릭 모니터링 시스템을 구축하는 과정을 공유한다. 모든 인프라는 코드로 관리되며, 복잡한 설치 과정을 Helm 차트로 추상화하여 관리 효율을 높인다. 먼저, 실습에 사용할 인프라 구축 코드를 로컬 환경으로 가져오자.# 실습 코드 클론 및 체크아웃git clone https://g..
지난 1, 2편에서는 로그 수집의 핵심인 ELK 스택을 고가용성 환경으로 구축하는 방법을 살펴보았다.로그가 서비스에서 발생하는 "기록"을 추적한다면, 이번에 다룰 메트릭(Metric)은 시스템의 "상태"를 숫자로 파악하는 작업이다. 메트릭 모니터링은 로그 수집과 설계 철학부터 다르다.이번 글에서는 모니터링으로 많이 사용되는 Prometheus와 Thanos, Grafana를 활용한 고가용성 모니터링 구조를 설계해본다. 1. 모니터링 아키텍처: Prometheus + Thanos + Grafana이번 설계의 핵심은 "수집은 중복으로, 조회는 통합으로"이다. 이를 위해 다음과 같이 레플리카를 구성한다.Service Monitor: 일종의 명세서로, 어디서 메트릭을 가져가야 하는지 적어놓는다.Prometheu..
과거 온프레미스 환경에서 고가용성을 갖춘 ELK 스택을 구축하고 유지하는 것은 꽤나 큰 복잡성을 지니고 있었다.단순히 서버를 띄우는 것을 넘어, 인프라와 애플리케이션 사이의 수많은 '수동 연결 고리'를 관리해야 했기 때문이다. 이 글에서는 과거의 ELK 구성 방식과 클라우드 네이티브 환경의 ELK 구성을 비교해 본다. 1. 과거 온프레미스 환경: 운영의 발목을 잡았던 로깅의 복잡성과거 온프레미스 환경에서는 고가용성 ELK를 구성할 때 꽤 큰 복잡성을 가지고 있었다.이러한 구성에서 애플리케이션을 확장한다고 가정해 보자.애플리케이션을 확장한다는 것은 새로운 물리 서버나, VM을 할당받는 것을 의미한다.이때마다 다음과 같은 작업이 반복되었다.Filebeat 수동 배포: 새 서버가 뜰 때마다 Filebeat 설..
과거 LifeKeeper 같은 고가의 솔루션으로 수일씩 걸려 구축했던 DB 고가용성(HA) 환경, 이제는 쿠버네티스와 Helm 명령어 단 몇 줄로 끝낼 수 있다.이번 글에서는 오픈소스를 활용해 비용 없이 무적의 DB 환경을 구축하고, 실제 마스터 노드를 죽여가며 그 복구 과정을 검증해 본다. 1. 왜 고가용성(HA)인가?현대 서비스에서 데이터베이스는 시스템의 심장과 같다. 하지만 단일 DBMS 구성은 여러 가지 태생적 위험을 안고 있다.고가용성이 왜 필수적인지, 기존 구조에서 발생하는 주요 문제점들을 통해 살펴보자. A. 단일 DBMS의 다운 (SPOF)DB를 단 한 대만 운용할 경우, 해당 서버에 장애가 발생하는 즉시 서비스 전체가 마비되는 '단일 장애점(Single Point of Failure)' ..
1. '명령'하는 배포에서 '선언'하는 배포로이전 글에서는 가장 직관적이지만, 한계 또한 명확한 '명령(Push) 방식'의 배포를 다루었다. 정답 없는 CI/CD, 우리 환경에 맞는 최적의 파이프라인 설계이 글에서는 단순한 코드 전송을 넘어, 복잡한 환경에서 어떻게 안정적이고 효율적인 CI/CD 파이프라인을 구축했는지 그 설계 과정을 공유한다. 1. CI/CD란 무엇인가?: 규모에 따른 변칙적 대응CI/CDyouseong.tistory.com 초기 단계에서는 GitHub Actions의 Runner가 클러스터에 직접 접속해 kubectl 명령을 날리는 방식이 빠르고 효율적이다.하지만 프로젝트가 커지고 인프라가 복잡해질수록 다음과 같은 치면적인 문제들에 직면하게 된다. 기존 yaml 배포 방식의 페인 포..