현재 홈서버의 자원이 한정적이어서 최대한 효율적으로 사용할 수 있도록 설정을 최적화했습니다.테스트용 자원 할당량이니 참고해주세요. 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..
기존에 홈서버에서 구동되던 코드 리뷰 자동화 봇에 대한 설명은 이전에 작성하지 않아, 이번에 따로 기록하게 되었습니다. 시작하게 된 계기사이드 프로젝트를 진행하면서 팀원이 적어 코드 리뷰에 어려움을 겪게 되었고, 그래서 AI의 도움을 받기로 했습니다.하지만 ChatGPT나 다른 툴을 사용하는 데 비용이 발생하다 보니, 이미 구축해 둔 홈서버를 활용하기로 했습니다. 아키텍처PR 발생 시 Github Action 트리거이때, Github Actions는 PR에서 변경된 git diff 내역을 추출하고, 이를 Kubernetes 클러스터 내에 배포된 LLM 서버로 전송한다.LLM 서버는 사전에 설정된 프롬프트와 git diff 내역을 바탕으로 코드 리뷰를 수행하고, 개선할 점에 대해 피드백을 제공한다.마지막으..
결제 시스템과 동시성 문제를 다룰 수 있는 프로젝트를 간단하게 구현해보고자 고민하던 중, 한정된 수량의 인기 상품을 특정 시간에 판매하는 서비스를 만들기로 결정했습니다.기능 요구사항핵심 기능특정 시간(예: 10시)에 품절 대란인 물건이 판매된다.사용자는 1인당 최대 3개까지만 구매 가능하다.회원 가입사용자 정보고유 사용자 번호: 각 사용자는 고유한 번호를 가진다.사용자 명:최소 2자, 최대 6자로 제한된다.로그인 아이디:이메일 주소를 사용하여 로그인할 수 있다.비밀번호:비밀번호는 암호화되어 DB에 저장된다.로그인사용자는 로그인 아이디(이메일)와 비밀번호를 입력하여 로그인할 수 있다.내 정보 조회사용자는 자신의 정보를 조회할 수 있다.물건 구매구매 절차사용자는 한 번에 하나의 물건만 구매할 수 있다.한 물..