반응형

전체 글 163

Karpenter로 EKS에서 Spot 인스턴스 자동 프로비저닝하기

사전 준비EKS 클러스터EKS의 노드그룹Helm1. Karpenter 설치먼저 Karpenter를 설치하기 전, Karpenter-Controller가 사용할 IRSA가 필요합니다.1-1. IRSA 생성을 위한 IAM Role 생성먼저 EKS의 ID 제공업체 확인해줍니다.# 클러스터 정보 확인aws eks describe-cluster \ --name \ --query "cluster.identity.oidc.issuer" \ --output text이제 Role 생성할 때 필요한 신뢰 관계를 json 파일로 만들어 줍니다.cat > role.json :oidc-provider/oidc.eks..amazonaws.com/id/" }, "Action": "sts:AssumeRole..

AWS 2025.09.03

OpenTelemetry Collector 샘플링 튜닝: 원하는 트레이스를 잡아내는 방법

이전 글에서 분산 트레이싱 을 확인하기 위해 OpenTelemetry, Tempo 를 사용해서 구성을 했었습니다.그런데 샘플링 비율을 10%로 설정을 해서 Trace 를 확인하다 보니, 실제로 제가 원하는 Trace 가 보이질 않아서 방법을 찾아보았더니, OpenTelemetry-Collector 에서 원하는 정보는 무조건 Trace 가 찍히도록 하는게 있어서 적용 해보았습니다.이제 실제로 제가 했던 적용 했던 내용을 설명드리겠습니다.원하는 Trace 조건저 같은 경우, 아래와 같은 경우 무조건 Trace가 찍히도록 설정하였습니다.ERROR400, 500 번대 ERROR 발생11초 이상 걸린 작업개발자의 도움 없이 분산 Trace 추적:OpenTelemetry Auto-Instrumentation과 Te..

Monitoring 2025.08.26

개발자의 도움 필요 없이 분산 Trace 추적: OpenTelemetry Auto-Instrumentation과 Tempo 활용법

분산 트레이싱이 필요해진 계기일을 하다보니, K8s 클러스터에서 파드끼리 통신도 하고, 파드 Kafka, SQS에서 message를 받아서 처리하기도 하는데, 실제로 어디서 지연이 발생했는지 파악하기 힘들어서 분산 트레이싱을 통해 원인 파악이 필요하게 되었습니다.아키텍처주요 컴포넌트들을 소개 하자면,OpenTelemetry OperatorKubernetes Operator로서, Collector와 auto-instrumentation(자동 계측)을 관리 합니다.이는 Custom Resource(CRD)를 통해 다양한 언어(Java, Python, Go, Node.js, .NET 등)에 자동 계측을 주입할 수 있습니다.현재 아키텍처에서는 Instrumentation CRD를 이용해 계측 설정을 정의하고,..

Monitoring 2025.08.21

📡 SSE(Server-Sent Events) 완벽 가이드 — DevOps 관점에서 본 실시간 통신

1. 왜 이 글을 쓰게 되었나현업에서 DevOps 겸 클라우드 엔지니어로 일하다 보면, 개발팀이 “실시간”이라는 요구사항이 있을 때 대부분 SSE(Server-Sent Event)을 쓰거나, 혹은 실시간 양방향 통신을 원할 때는 WebSocket 를 선택하는 경우가 있습니다.따라서, 애플리케이션의 특성과 통신 방식의 장단점을 맞춰야 효율적인 아키텍처를 만들 수 있습니다.최근 우리 팀도 SSE(Server-Sent Events) 통신 방식를 쓰고 있었는데, 정작 개발자들이 “왜 SSE를 쓰는지”, “어떻게 동작하는지” 정확히 몰라서 아키텍처 논의가 힘들었습니다.그래서 이번 글에서는 SSE의 개념, 동작 원리, 장단점, 아키텍처 설계 시 고려사항까지 정리하려 합니다.SSE란 무엇인가?SSE(Server-Se..

Terraform 파일 분리 기반 구조에서 모듈화 구조로 변경

파일 분리 기반에서 모듈화 구조로 바뀌게 된 계기원래는 이미지에 나와있는 것 처럼 모듈을 사용하지 않고, 한 워크스페이스 안에서 리소스별, 기능별로 .tf 파일을 나눠서 관리 하였습니다.그런데 이번에, AWS Secret Manager 리소스를 1개가 아닌 여러개를 사용해야 해서, 변수를 구분하고자, AWS Secret Manager 부분만 모듈화로 변경하였습니다.관련해서 제가 겪었던 경험을 적어보겠습니다.모듈화 파일구조로 변경이전에는 10_secretmanager.tf 파일로 관리를 해주었다면,현재는 파일 구조를 아래와 같이 설정을 해주었습니다./modules ㄴ / ㄴ / main.tf ㄴ / variables_.tfmain.tf 구조 예시resource "aws_secretsmana..

Terraform 2025.08.13

Strimzi Kafka 설치

사전 준비k8s 클러스터helm 설치1. Strimzi-Kafka-Operator 설치저 같은 경우 Helm 차트를 사용해서 Operator 설치를 해주었습니다.설치가 완료되면, Strimzi Operator와 CRD 모두 설치가 됩니다.다만, 업그레이드가 필요한 경우 CRD는 수동으로 적용 시켜주어야 합니다.helm install my-strimzi-kafka-operator oci://quay.io/strimzi-helm/strimzi-kafka-operator --version 0.47.0현재는 최신 버전인 0.47.0 버전으로 설치를 했지만, 이전 버전으로 설치를 했다면 아래와 같이 업그레이들 해주어야 합니다.번외, Upgrade 과정CRD 수동 갱신 (0.35 -> 0.47)kubectl app..

Kafka 2025.08.13

Strimzi kafka 란?

이번 회사에서 Kafka를 사용하게 되어서 알아보게 되었습니다.참고 문서https://strimzi.io/docs/operators/latest/overviewKafka 란?Apache Kafka는 대규모 실시간 데이터 스트리밍 처리 시스템으로, LinkedIn에서 개발되어 현재는 Apache Software Foundation의 오픈소스로 관리되고 있습니다.Kafka는 분산형 메시지 브로커 시스템으로, 실시간 로그 수집, 데이터 파이프라인, 스트리밍 분석 등 다양한 곳에서 사용됩니다.Kafka를 사용하게 된 계기문제 상황현재 Chat 기반 문서 분석 Ai-Agent를 개발하고 있는데, Backend 서버에서 fetch를 통해 AI 분석 서버와 직접 통신이 통신 구조에서 Backend의 힙 메모리 사용량..

Kafka 2025.08.11

Alertmanager <-> Googlechat 으로 알람 보내기

기본적으로 Alertmanager는 기본적으로 Google-chat으로 알림을 보낼 수 없습니다.그러나 현재 회사에서 Google-chat을 사용하고 있어서, Alertmanager에서 발생하는 alert 페이로드를 받아서 설정된 Google-chat 웹훅 엔드포인트로 메시지를 전달해주는 애플리케이션을 생성하였습니다.이제 제가 했던 방법을 설명드리겠습니다.사전 준비k8s 클러스터kube-prometheus-stack 설치Google-chat 스페이스의 webhook 주소1. 코드 clone먼저 calert git clone 해줍니다.git clone https://github.com/mr-karan/calert.git2. go build 실행clone한 디렉터리로 이동 한 후 go build 명령어 실행..

Monitoring 2025.08.11

파드의 실시간 사용량에 따른 오토 스케일링 (KEDA)

사전 준비Prometheus 설치저 같은 경우 helm 차트를 사용하여 kube-prometheus-stack을 설치 해두었습니다.KEDA 설치KEDA 란?KEDA(Kubernetes-based Event Driven Autoscaling)는 Kubernetes에서 이벤트 기반 자동 스케일링(Event-Driven Autoscaling) 을 제공하는 오픈소스 컴포넌트입니다.일반적인 HPA(Horizontal Pod Autoscaler)로는 대응하기 어려운 메시지 큐, Kafka, 데이터베이스 등의 외부 이벤트를 기반으로 파드의 수를 자동 조절할 수 있게 해줍니다.이제 Helm을 사용하여 설치 해보겠습니다.Helm repo 등록helm repo add kedacore https://kedacore.gith..

쿠버네티스 2025.08.06

Apache Kafka 에 대해 알아보기

Apache Kafka 란?Apache Kafka는 고성능의 분산 메시징 시스템으로, 대규모의 데이터를 실시간으로 처리하고 전달하는 데 최적화된 플랫폼 입니다.흔히 실시간 로그 수집, 이벤트 스트리밍, 데이터 파이프라인 구성 등에 사용됩니다.Kafka 구성Kafka는 고성능 TCP 네트워크 프로토콜을 통해 통신하는 서버 와 클라이언트 로 구성된 분산 시스템입니다. 서버 : Kafka는 하나 이상의 서버로 구성된 클러스터로 실행됩니다. 서버 중 일부는 브로커라고 하는 스토리지 계층을 구성합니다. 다른 서버는 Kafka Connect를 실행하여 이벤트 스트림으로 데이터를 지속적으로 가져오고 내보내 Kafka를 관계형 데이터베이스 및 다른 Kafka 클러스터와 같은 기존 시스템과 통합합니다. Kafka 클러스..

Kafka 2025.08.06
반응형