분류 전체보기 781

애플리케이션 에러가 없는데 서비스 장애라구요?

아침 7시 40분쯤 메신저에서 긴급이라는 메세지가 보였습니다. 서비스 장애가 생겼다는 메세지였습니다. 출근하기 위해 현관문 앞까지 나갔는데 장애라는 키워드를 보자마자 다시 집에 들어가서 노트북을 열었습니다. 실제 서비스 장애가 있었지만 애플리케이션 에러가 없어 조금 늦게 장애를 발견했습니다. 장애가 난 아키텍처는 아래 그림과 같습니다. 애플리케이션은 스프링부트이고 EKS pod에서 실행되고 있었습니다. 클라이언트는 on premise에 위치하고 EKS pod API를 호출하기 위해 public ALB를 사용합니다. 몇십분이 지나서야 EKS에는 이상이 없는 것을 확인했습니다. 대신 ALB에 메트릭 이상현상이 있었습니다. ALB requests가 어느 순간부터 0이었습니다. ALB설정은 수정을 안했는데 어느..

회고모음 2025.07.08

Datadog cloudwatch 메트릭기반 알람의 주의사항

주의사항Datadog에서 cloudwatch 메트릭기반으로 알람을 설정하면 실시간이 보장이 되지 않습니다. 그 이유를 예제와 함께 살펴보시죠.예제Datadog에서 AWS Cloudwatch ALB메트릭을 기반으로 알람을 설정했습니다. 알람은 1분마다 평가하고 평가지연 등 다른 옵션을 설정하지 않았습니다.만약 12:05분에 ALB Error Rate 알람 조건이 만족한다면, Datadog에서는 알람이 언제 울릴까요? 정답과 그 이유정답은 12:10이나 12:20분입니다.Datadog은 기본 설정으로 10분마다 cloudwatch 메트릭을 수집합니다. 따라서 12:05분의 ALB메트릭은 12:10이 지나야 datadog에 cloudwatch메트릭이 있습니다. 만약, cloudwatch 자체 지연이 발생한다..

Datacamp 1년 구독 시작

MLOps 개론을 공부하기 위해 자료조사를 했었고, Datacamp가 MLOps 입문 공부하기 좋다고 생각했습니다. 강의 하나하나가 실습 위주 주 강의와 적당한 분량(2~4시간)이어서 맘에 들었습니다. 그리고 MLOps에 대한 간단한 로드맵을 제공하고 Datacamp 강의와 엮고 있어서 자료조사시간을 단축시켜줬습니다.- https://www.datacamp.com/blog/mlops-roadmap 1년 구독비용은 $330, 한국돈으로 약 40만원 입니다.

uv로 파이썬 패키지를 관리할때, 파이썬 패키지 설치가 실패하는 케이스(부제: uv workspace)

Python 패키지 관리를 위해 uv를 사용하다가 3시간 동안 삽질한 경험을 공유하고자 합니다. 새로운 파이썬 가상환경을 만들었는데도 패키지 설치가 계속 실패하는 상황이었는데, 알고 보니 uv의 workspace 개념 때문이었습니다. 문제 상황제가 겪은 디렉터리 구조는 다음과 같았습니다. 언뜻 보기에는 별개의 두 uv 프로젝트처럼 보이지만, 실제로는 그렇지 않았습니다.parent-directory/├── pyproject.toml├── uv.lock└── child-directory/ └── pyproject.tomluv Workspace란?uv에서는 workspace라는 개념이 있습니다. uv 프로젝트 하위에 또 다른 uv 프로젝트를 생성하면, 하위 프로젝트는 자동으로 상위 프로젝트의 worksp..

kubernetes pod가 GPU를 사용하는 원리 그리고 쿠버네티스 설정

이 글은 kubernetes에서 pod가 GPU를 사용하는 원리를 설명합니다. 그리고 pod가 GPU를 사용하기 위한 쿠버네티스 설정을 다룹니다. 1. pod가 GPU를 사용 = 프로세스가 GPU를 사용kubernetes에서 GPU를 사용하려면 GPU operator, Container Toolkit 등 많은 컴퍼넌트들이 등장장하여, "왜 pod가 GPU를 사용하는데 이렇게 많은 컴퍼넌트가 필요하지?"라는 의문을 가지게 됩니다.' 제 생각에는 pod = 프로세스라는 것을 이해하면 컴퍼넌트가 많이 필요한지 이해하기 쉽다고 생각합니다. pod는 결국 운영체제 입장에서 프로세스이기 때문에, pod가 GPU를 사용한다는 것은 프로세스가 GPU를 사용한다는 것과 같습니다. 결국, pod가 GPU를 사용하는 원..

nvidia-smi 명령어로 nvidia GPU 상태 모니터링

들어가며쿠버네티스에서 GPU 워크로드를 운영하기 위해서는 pod레벨에서 GPU상태를 확인하는 것도 중요하지만 인스턴스(노드)레벨에서 GPU정보를 확인하는것도 필요하다고 생각합니다. 따라서, 이 글은 노드레벨에서 nvidia GPU상태를 확인하는 방법을 설명합니다. 실습환경실습환경은 AWS EC2 인스턴스를 사용했고 g6.xlarge를 사용했습니다. GPU 상태 확인nvidia GPU드라이버를 설치하면 nvidia-smi명령어를 사용할 수 있습니다. nvidia-smi 명령어를 사용하면 nvidia GPU 현재 상태를 확인합니다.nvidia-smi GPU 상태 필터링query-gpu 인자를 사용하면 특정 상태를 필터링 하여 조회합니다. 아래는 GPU driver version을 조회한 결과입니다.nv..

회고: 시간안에 많은 것을 할 수 없다면 일부는 포기해야 한다(feat: istio 제거)

올해 여러 EKS 클러스터를 버전 업그레이드하면서 많은 고민을 했던 내용이 있습니다. 고민했던 내용은 istio를 없앨 것인가, 그대로 유지할 것인가입니다. 결국은 istio를 제거했습니다. istio를 제대로 활용하지 않는데 계속 유지하면 서비스 장애 확률이 올라간다고 판단했기 때문에 제거했습니다. network 오류가 발생하면 istio 잘못이 아닌데 저를 포함한 많은 사람이 istio를 가장 먼저 의심했던 상황도 빈번히 있어서 많은 고민 끝에 제거했습니다. 사실 istio를 팀원 모두가 스터디해서 적용하면 좋지만 현재 상황에서는 istio가 우선순위가 가장 낮습니다. AI분야 등 우선순위 높은 분야가 더 많기 때문에 istio를 어쩔 수 없이 활용하지 못했습니다. 아쉬운 상황이지만 시간안에 많은 ..

회고모음 2025.06.15

nvidia GPU operator는 Amazon Linux에 GPU driver설치를 지원하지 않는다.

EKS에서 발견한 GPU driver container image not found 에러EKS에서 gpu operator로 nvidia driver를 설치하려고 했습니다. gpu operator를 helm으로 릴리즈했습니다.helm repo add nvdp https://nvidia.github.io/k8s-device-pluginhelm repo updatehelm install \ --version=v25.3.0 \ --namespace nvidia-gpu-operator \ --create-namespace \ nvdp/nvidia-device-plugin \ --set toolkit.enabled=false \ --set driver.enabled=true 그런데 GPU d..

EKS에서 AIOps를 하기 위한 로드맵

EKS환경에서 AIOps를 하기 위한 로드맵이 AWS EKS문서에 쉽게 설명이 되어 있습니다.문서링크: https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/machine-learning-on-eks.html kubernetes와 EKS와 차이점은 컴퓨팅 자원, 네트워크, 스토리지가 다릅니다. 그리고 EKS는 Sagemaker 등 AWS 리소스 연동하여 할 수 있는 작업이 있습니다. EKS 또는 kubernetes에서 AIOps를 하기 위한 큰 범주는 대규모 모델 훈련, 실시간 온라인 추론 실행, 생성형 AI 애플리케이션이 배포가 있습니다. AI 개발자와 커뮤니케이션 하기 위한 AI 도메인 지식이 간단히 필요하고 파이프라인과 옵저벌리티를 위한 여러 오픈소스 ..

운영의 필수 기능 "Alarm"

개요이 글에서는 AWS cloudwatch를 사용하여 alarm(경보)을 설정하고 테스트하는 과정을 설명합니다. alarm은 시스템의 이상 징후를 빠르게 감지하는 도움을 줍니다. 서비스 운영에 있어서 alarm은 필수항목입니다.alarm 이란어느 기준을 넘으면 alarm이 발생했다라고하며 기준보다 낮아지면 alarm이 해소되었다라고 합니다. alarm이 발생하면 나쁜 조건이 발생한 것입니다. 예를 들어서 disk full 등이 있습니다. alarm 기준 설정막상 alarm을 설정하려면 어떤 것을 기준으로 alarm을 설정할지 고민이 됩니다. 기준을 아직 모를 때는 이전 블로그에 언급한것 처럼 RED method와 USE method로 시작하면 좋습니다.RED method와 USE method: https..