본문 바로가기

전체 글

서비스를 옮겨도 Datadog 비용이 안 줄던 이유: OpenTelemetry + 셀프호스팅 HyperDX 이전기 한 줄 요약: 앱 계측을 OpenTelemetry 표준으로 바꾸고 자체 호스팅 HyperDX(ClickStack)로 옮기면서 Datadog은 서비스가 아니라 조직 단위로 비워 나갔다.이런 분께: 사용량 과금 APM 비용 때문에 OpenTelemetry와 자체 호스팅 백엔드를 검토하는 분환경: ClickStack 공식 Helm 차트(2026-10 이관), ClickHouse 1대 + S3 cold tier, OpenTelemetry Java 에이전트, EKS·ECS 혼용 (2026-11 기준)내 역할 (2025.05 ~ 진행 중): 기획, PoC, 전환, 운영을 맡았고 Datadog 계약 갱신은 팀장과 함께 진행핵심 결과: 다 옮긴 Datadog 조직 1개 정리, 로그 보관 15일 → 30일(이후 S3 장.. 더보기
KEDA와 ArgoCD가 하루 284번 싸운 이유: spot 위 서비스에 HPA를 붙이며 배운 replicas 소유권 한 줄 요약: prod 오토스케일링의 목적을 비용에서 "spot이 한꺼번에 빠져도 파드가 0개가 되지 않게"로 다시 잡고 on-demand 파드 1개 + spot HPA 구조로 바꿨다.이런 분께: spot 위 서비스에 HPA나 KEDA를 붙이려는 분, ArgoCD와 오토스케일러가 replicas를 두고 다투는 분환경: EKS 1.36, Karpenter 1.14.1, metrics-server, ArgoCD ApplicationSet (2026-10 기준)내 역할 (2025.11 ~ 2026.11): 설계, Helm 차트 구현, 검증, prod 적용은 직접 진행 (prod 적용 여부는 팀 검토로 결정)핵심 결과: prod 15개 서비스에 HPA 적용. 그중 13개는 spot이 한꺼번에 회수돼도 on-de.. 더보기
파드는 Ready인데 ALB는 502: EKS 롤링 배포의 공백을 Pod Readiness Gate로 막기 한 줄 요약: 쿠버네티스의 Ready와 ALB의 healthy를 Pod Readiness Gate로 묶어 새 파드가 ALB에서 healthy가 된 뒤에만 기존 파드가 내려가게 했다.이런 분께: EKS에서 ALB를 쓰는데 probe와 preStop을 넣어도 롤링 배포 중 502가 가끔 남는 분환경: EKS 1.36, prod AWS Load Balancer Controller v3.4.3 (2026-10 기준)내 역할 (2025.05 ~ 2026.11): 2025년 장애는 팀원들과 함께 대응했고 Pod Readiness Gate는 설계부터 prod 적용, 개발자 공유까지 직접 진행했다핵심 결과: prod 적용 작업(Deployment 18개 순차 재시작) 중 ELB 5xx 0건, 파드당 추가 대기 3~18.. 더보기
"최근 10분 에러 로그 알려줘": OpenTelemetry 표준화와 HyperDX MCP로 개발자에게 관측 데이터 열어 주기 한 줄 요약: 앱 계측을 벤더 전용 에이전트에서 OpenTelemetry 표준으로 바꾸고 개발자가 Claude Code에서 자연어로 로그·트레이스를 조회하도록 HyperDX MCP를 열었다.이런 분께: 벤더 전용 APM 에이전트에서 벗어나려는 팀, 개발자에게 관측 데이터를 AI 도구로 열어 주려는 분환경: EKS 공통 Helm 차트, OpenTelemetry Java·Node 자동 계측, 셀프호스팅 HyperDX(ClickStack), Claude Code내 역할 (2023.11 ~ 진행 중): OTel 표준 계측(공통 Helm 차트·언어별 가이드), HyperDX MCP 개방과 개발자 안내를 직접 진행핵심 결과: prod EKS 서비스 30개 중 22개 OTel 연동(2026-11-15, 차트 기준),.. 더보기
알람 100건 중 사람이 반응한 건 1.5건: critical 알람을 주 106건에서 3건으로 줄인 재설계 한 줄 요약: 흩어진 인프라 알람을 심각도 규칙으로 나누고 판단은 원래 시스템에 둔 채 전달만 Alertmanager로 모았다.이런 분께: 알람이 너무 많아 진짜 장애가 묻히는 팀, 여러 도구의 알람 경로를 하나로 모으려는 분환경: EKS + Prometheus·Alertmanager, CloudWatch, Grafana, Datadog·HyperDX내 역할 (2026.08 ~ 진행 중): 알람 현황 조사, 심각도 설계, 노이즈 정리(Robusta 제거), 공통 어댑터(alert-bridge) 개발과 prod 전환은 직접. 장애봇 연동은 팀원과 함께 기획하고 나눠서 구현(연동 규약·Alertmanager는 나, 장애봇·전화 호출은 팀원)핵심 결과: critical 채널 알람 주 106건 → 3건(−97%.. 더보기
AI 알람 조사 완주율 100%, 그래도 내렸다: HolmesGPT를 prod 알람에 붙여 보고 배운 것 한 줄 요약: 알람 1차 조사를 AI에게 맡기려고 K8sGPT와 HolmesGPT를 차례로 써 봤다. HolmesGPT 조사는 돌았지만 근거가 빈 리포트가 섞였다. 여기에 Robusta 유료 플랜 문제와 메시지 형식 제약이 겹쳐 10월에 내렸다.이런 분께: 알람 조사에 LLM 에이전트를 붙여 보려는 SRE·DevOps 엔지니어환경: EKS, Prometheus·Loki·Alertmanager, Robusta + HolmesGPT 0.38(2026년 8월 당시), Amazon Bedrock Claude Sonnet 4.5(IRSA로 호출)내 역할 (2026.03 ~ 2026.10): K8sGPT PoC, HolmesGPT 연동과 커스텀 액션 개발·검증을 Claude Code와 함께 직접 진행핵심 결과: p.. 더보기
액세스 키 없이 배포하기: Bitbucket OIDC·IRSA·GCP Workload Identity로 정적 키 걷어낸 기록 한 줄 요약: AWS·GCP 정적 키 대신, 실행할 때마다 OIDC 토큰을 교환해 단기 자격증명을 받게 바꿨다.이런 분께: CI/CD나 쿠버네티스 파드가 쓰는 클라우드 액세스 키를 없애고 싶은 분환경: Bitbucket Pipelines, AWS IAM·EKS(IRSA), GCP Workload Identity Federation, Terraform, 공용 Helm 차트내 역할 (2023.08 ~ 2026.11): Bitbucket 파이프라인 OIDC 전환, IRSA·GCP Workload Identity 적용과 가이드 작성, 이관 중 장애 대응을 했다. OIDC 공급자·공용 역할과 IRSA 모듈 초안은 팀원이 만들었고 GCP 모듈화는 팀원과 함께 했다.핵심 결과: 파이프라인이 있는 저장소 207개 중 .. 더보기
Karpenter 노드가 10분마다 바뀌었다: NodePool 14개를 9개로 합치며 잡은 재배치 루프 한 줄 요약: 서비스별로 taint를 걸어 나눠 두던 Karpenter NodePool을 목적·아키텍처별로 합치고 그 뒤 생긴 재배치 루프를 disruption 설정과 인스턴스 크기 제한으로 잡았다.이런 분께: 서비스별 NodePool로 노드가 잘 차지 않거나, consolidation으로 노드가 너무 자주 바뀌는 분환경: 2026.11 기준 EKS 1.36, Karpenter 1.14.1. 공용 Helm 차트의 기본 노드는 Spot내 역할 (2023.11 ~ 2026.10): Karpenter 도입과 NodePool 설계·통합·튜닝을 맡아 진행했다. 일부 풀 추가와 설정 조정은 팀원이 했다.핵심 결과: 운영 NodePool 14개 → 9개. 요청이 2.2배 늘 때 EC2 vCPU는 1.9배 (다른 최적.. 더보기