현재 홈서버의 자원이 한정적이어서 최대한 효율적으로 사용할 수 있도록 설정을 최적화했습니다.테스트용 자원 할당량이니 참고해주세요. 1. Helm 차트 준비Helm은 쿠버네티스 애플리케이션을 손쉽게 배포하고 관리할 수 있도록 해주는 도구로, Redis와 같은 복잡한 애플리케이션도 빠르게 배포할 수 있습니다. 우선, Redis Helm 차트를 사용하기 위해 저장소를 추가하고 업데이트합니다.helm repo add bitnami https://charts.bitnami.com/bitnamihelm repo update 2. redis-values.yaml 파일 구성Redis 설치 시 다양한 커스텀 설정을 추가하기 위해 redis-values.yaml 파일을 작성합니다. architecture: standalo..
홈서버에서 그라파나를 통해 Kafka 모니터링을 설정하면서 겪은 문제 해결 과정을 공유합니다. 기본적으로 리소스가 제한된 환경에서 작업하기 때문에 메모리와 CPU 사용량을 제어하고, Kafka와 Prometheus Exporter 간 연결 설정에서 SASL 인증을 추가하는 방법을 다룹니다. 1. Prometheus-Kafka-Exporter 설치exporter 설치 후 연결이 지속적으로 실패하는 문제가 발생했는데,원인을 분석해보니 Kafka SASL 인증 설정 누락과 Kafka 서버 주소를 자동으로 찾지 못하는 두 가지 문제가 있었습니다. 따라서 아래와 같이 인증 정보와 Kafka 서버 주소를 명시적으로 설정하여 Helm으로 설치를 진행했습니다.# 해당 명령어로 어떤 value 들을 설정할 수 있는지 볼..
두 대의 노드로 구성된 홈 서버에 Kafka를 설치했더니 제한된 자원 때문에 서버가 그냥 다운되거나 Pod에 메모리 제한을 설정해도 OOMKilled 오류가 발생했습니다. 그래서 Pod가 아닌 컨테이너 자체의 메모리 할당을 조정하는 설정 방법을 찾게 되었습니다.이 글에서는 Kubernetes 환경에서 Helm을 사용하여 Bitnami Kafka를 설치하고, NFS 스토리지 설정을 통해 Volume을 설정하는 방법을 설명합니다.*Kafka는 Helm으로 쉽게 다운 가능한 Bitnami Kafka를 이용하였습니다. 1. 메모리 최적화 설정한정된 메모리 환경에서 Kafka의 안정성을 유지하려면 JVM의 힙 메모리를 적절하게 제한해야 합니다. 이를 위해 Bitnami Kafka Helm Chart의 kafka..
결제 시스템과 동시성 문제를 다룰 수 있는 프로젝트를 간단하게 구현해보고자 고민하던 중, 한정된 수량의 인기 상품을 특정 시간에 판매하는 서비스를 만들기로 결정했습니다.기능 요구사항핵심 기능특정 시간(예: 10시)에 품절 대란인 물건이 판매된다.사용자는 1인당 최대 3개까지만 구매 가능하다.회원 가입사용자 정보고유 사용자 번호: 각 사용자는 고유한 번호를 가진다.사용자 명:최소 2자, 최대 6자로 제한된다.로그인 아이디:이메일 주소를 사용하여 로그인할 수 있다.비밀번호:비밀번호는 암호화되어 DB에 저장된다.로그인사용자는 로그인 아이디(이메일)와 비밀번호를 입력하여 로그인할 수 있다.내 정보 조회사용자는 자신의 정보를 조회할 수 있다.물건 구매구매 절차사용자는 한 번에 하나의 물건만 구매할 수 있다.한 물..
컨테이너 환경을 바꾸어 보았다.람다 -> ECS + Fargate이미지: DockerHub 이용하기 알고보니 GPU를 이용하려면 EC2를 이용해야 하는 것이었고,GPU를 사용하는 경우 엄청 비싸기 때문에 그냥 Fargate로 사용해보기로 했다. 처음에는 2vCPU + 16GB를 줬었는데, 배포가 잘 되지 않았다. 혹시나 하고 4vCPU + 30GB를 배정해줬는데도 불구하고 배포 되면 죽고, 배포 되면 죽고의 반복이었다. 그렇다고 해서 컨테이너 자체의 로그를 볼 수 있는 부분인 CloudWatch 내 로그 이벤트에 '실패'가 뜨는 것도 없었다.Ollama 서버용 컨테이너 자체는 잘 동작하고 있는 것이다. 아래의 여러가지 시도를 해봤는데 되지 않았다.CPU 및 메모리 재설정상태 확인 경로 '/'로 변경해보기..