본문 바로가기

반응형

전체 글

(149)
[SpringBatch] 스프링배치 개념을 알아보자. 출처 : https://deeplify.dev/back-end/spring/batch-architecture-and-components 위 출처의 내용을 참고하여 공부 용도로 정리하였습니다. 구조 노란색 : 스케줄러 / DB (외부 애플리케이션) → AWS EventBridge , RDB , MongoDB , Redis , .. 빨간색 : 애플리케이션 서비스 (Spring Batch에서 제공) 초록색 : 개발자가 구성해야 하는 것들 → ex) 일정 주기대로 작업 시작되도록 설정하거나 , 작업을 실행하는 방법 등 Run Tier : 애플리케이션의 예약 및 시작과 관련이 있는 계층 (배치 작업의 시간 기반 및 상호 의존적인 스케줄링 제공 / 병렬 처리) Job Tier : 배치 작업의 전체 실행을 담당 (배..
[Observability] fluentd 보다 더 좋은(?) Vector에 대해 알아보자. 개요 Toss slash 2023을 보다가 Logstash에서 Vector로 전환 후 상당히 만족한다는.. Star 수도 Fluentd를 넘었다고 한다. 작년에 Datadog에서 인수했다는 소식만 들었고 어떤 놈인지에 대해서는 관심이 없었는데, 마침 리서치를 해보자고 마음먹게 되었다. 허나, vector를 검색하니 기하와 벡터에서 배운 그 수학 용어만 나오던데.. 잘못 검색한 것인지 아직 한글로 정리된 글들이 없는 것인지.. 그래서 아래 Docs를 보면서 내용들을 정리하였다. 상당히 깔끔히 정리되어있었다. Vector란 ? Observability data를 관리하는 도구이다. : Logs, Metrics 등을 하나의 툴에서 수집하고, 변환하고, 라우팅하는 Observability pipeline이다. ..
[ElasticSearch] 정리 #1 - 기본 개념 ElasticSearch : 검색 , 분석 엔진으로 대량의 데이터를 실시간으로 색인(Indexing)하고 검색(Searching)하고 분석(Ananyzing)하며 시각화(Visualizing)할 수 있다. ES는 다양한 언어에 대해 Restful API를 제공하므로 프로그래밍 기반으로 ES를 사용할 수도 있다. ES 기본 개념 Index : Document를 저장하는 논리적 구분자 ( ~= RDB의 Table ) Document : ES에서 실제 데이터를 저장하는 단위 ( ~= RDS의 Table 내 Row ) Document CRUD - Create(인덱싱) : Document를 특정 Index에 포함시킴 - Read : DSL(Domain Specific Language) 사용하여 Index 내 모든..
[EKS] CA의 대체, Karpenter 사용 후기 요즘 EKS를 사용하고 있는 회사들이라면 Karpenter에 대해서 한번씩은 들어봤을 것이다. Karpenter는 EC2를 생성 및 오토스케일링 해주는 오픈소스 서비스로 Cluster Autoscaler에 대한 단점들을 보완해준다고 많이 설명되어 있다. Cluster Autoscaler에 비해 Karpenter가 가지는 장점 및 단점들은 다양한 매체나 블로그 글에 많이 소개가 되어 있기 때문에 Karpenter에 대한 소개는 아주 간단히 진행하고 현재 Karpenter를 어떻게 사용하고 있고 Karpenter를 사용할 때 주의 사항 및 간단한 팁들을 소개할 예정이다. # 1. Karpenter 구성 요소 Karpenter는 크게 다음의 요소로 구성되어 있다. - Karpenter(Pod) : 실질적으로 ..
[EKS] 로그 시스템 Loki 도입을 위한 몇가지 운영 팁 Loki로 로그 시스템을 구성해서 쓴지 어느덧 3개월이 넘어간다. Loki를 맨 처음에는 Loki Stack(Grafana, Promtail, Loki)로 구성해서 모놀리식 형태로 쓸 수 있지만 쓰다보면 다양한 문제점들이 발견된다. 1. 다량의 로그가 Write되면 Loki 파드가 죽는데 정확히 어떤 컴포넌트가 죽었는지 확인하기가 쉽지 않다. 2. Grafana에서 읽을 시 상당히 느리다. 3. 각 컴포넌트들에 대한 이해가 어렵다. 4. Ingest 할 때 어디에선가 쓰로틀링이 걸린다. 5. 등등 하여 사용가능한 로키 헬름 차트들은 어떤게 있으며 로키에 대한 간략한 컴포넌트 소개, 운영 시 어떤 설정값들을 적용하면 좋을지에 대해 간단히 설명하기 위해 글을 쓰게 되었다. 아직 많이 부족한 지식이지만 Lok..
[Github Action] Self hosted runner에서 Gradle, Docker image cache #2 - EFS 활용 #1 편에서는 아주 간단하게 EBS, PVC를 활용하여 캐싱을 수행하였다. https://nyyang.tistory.com/163 [Github Action] Self hosted runner에서 Gradle, Docker image cache #1 - EBS, PVC로 캐시하기 Github hosted runner에서는 다양한 actions에서 caching 전략을 제공하기 때문에 단순 actions를 사용하는 것만으로 손쉽게 캐싱을 수행할 수 있다. 캐싱은 docker image caching도 아주 쉽게 수행할 수 있다. 이 nyyang.tistory.com 1. 개요 #1 편에서는 아주 간단하게 EBS, PVC를 활용하여 캐싱을 수행하였다. 하지만 프로젝트가 많아질 경우 PVC가 Available..
[Github Action] Self hosted runner에서 Gradle, Docker image cache #1 - EBS, PVC로 캐시하기 Github hosted runner에서는 다양한 actions에서 caching 전략을 제공하기 때문에 단순 actions를 사용하는 것만으로 손쉽게 캐싱을 수행할 수 있다. 캐싱은 docker image caching도 아주 쉽게 수행할 수 있다. 이는 buildx에서 --cache-from과 --cache-to의 type 중 gha(github action)란 type을 제공하는데, 아주쉽게 구현 가능하다. gradle cache 또한 제공하는 actions를 쓰면 된다. 하지만 github hosted runner를 쓰면 다양한 단점이 존재한다. 1. 개발한 코드가 클라우드 상에 배포된다. 2. runner가 argocd 등의 명령어를 수행하기 위해 argocd가 public 망에 존재해야 한다...
[EKS] CoreDNS 운영 시 소소한 팁 (Rcode, ndots) 1. 개요 필자의 회사는 모니터링 서비스로 Datadog을 이용하고 있는데 CoreDNS 쪽에서 특이사항을 발견했다. 바로 rcode 중 nxdomain 수치가 높다는 점이였다. nxdomain는 non-existing domain name의 약자로 domain name이 존재하지 않다는 뜻이다. 즉, CoreDNS 에서 질의를 했을 때 domain name이 존재하지 않는 메트릭이 다소 발생한다는 뜻이다. 2. 원인 원인은 다음과 같다. bash-4.2# cat /etc/resolv.conf search testdemoapp-dev.svc.cluster.local svc.cluster.local cluster.local ap-northeast-2.compute.internal nameserver 172..

반응형