Helm Hook을 통한 리소스 생성 순서 제어
Kubernetes 환경에서 Helm을 Package Manager로 사용해 애플리케이션을 배포하는 과정에서 종종 데이터베이스 초기화, 스키마 마이그레이션, 캐시 무효화 등의 이유로 특정 리소스가 먼저 생성되어야 하는 경우를 마주할 때가 있습니다. 이때 Helm Hook을 사용하면 특정 이벤트(예: pre-install, post-install, p...
Kubernetes 환경에서 Helm을 Package Manager로 사용해 애플리케이션을 배포하는 과정에서 종종 데이터베이스 초기화, 스키마 마이그레이션, 캐시 무효화 등의 이유로 특정 리소스가 먼저 생성되어야 하는 경우를 마주할 때가 있습니다. 이때 Helm Hook을 사용하면 특정 이벤트(예: pre-install, post-install, p...
최근 SSD를 사용하게 되면서 기본 HDD의 용량을 어떻게 사용할 수 있을까? 라는 고민을 하던 중 Minio를 접하게 되었습니다. Minio는 단순히 오브젝트 스토리지(Object Storage)로 운영하는 방법뿐만 아니라, Kubernetes의 PV(퍼시스턴트 볼륨, PersistentVolume)로도 활용 가능합니다. 포스트를 2개로 나눠 이...
일반적으로 쿠버네티스 환경에서 애플리케이션을 노출할 때, Ingress Controller를 활용해 HTTP/HTTPS 트래픽을 라우팅합니다. 그런데 간단한 테스트나 내부용 서비스처럼 전체 인증/인가 시스템을 구축하기엔 오버지만, 그래도 외부에 바로 열고 싶지 않은 경우가 있습니다. 예컨대: 사내 POC 서비스나 개발용 애플리케이션을 일단 인...
Graceful Shutdown은 프로세스(애플리케이션)가 종료 요청을 받았을 때(예: SIGTERM), 바로 강제 종료되지 않고 일정 시간을 두어 정리 작업(예: DB Connection, Message Queue)을 수행한 뒤 종료되는 방식입니다. Graceful Shutdown이 이루어지지 않고 Ungraceful Shutdown이 이루어지게 되...
2024년 11월부터 12월까지 약 2개월간 Remember Me 프로젝트를 진행했습니다. 해당 서비스는 AWS Lambda와 Amazon API Gateway를 기반으로 동작하는 서버리스(Serverless) 환경에서, 사용자가 단어를 외우고 관리할 수 있는 웹 애플리케이션입니다. 인프라 팀원으로서 HCP Terraform(Terraform Clo...
컨테이너 기반 애플리케이션을 Kubernetes 환경에서 운영하다 보면, kubectl get pods 명령어를 통해 Pod의 상태가 Running임을 확인했음에도 불구하고 애플리케이션에 접속했을 때 에러가 발생하는 상황을 종종 마주하게 됩니다. Pod는 실행 중이지만 내부 애플리케이션은 아직 서비스 준비를 마치지 못했거나, 초기화 과정(예: 데이터베...
최근 다양한 CLI 및 텍스트 편집기를 활용하는데, 이 과정에서 생산성을 높이고 효율적인 환경을 갖추기 위해 Neovim 에디터에 관심을 갖게 되었습니다. Neovim은 Vim과 호환되는 동시에 Lua 기반 설정을 통한 확장성과 편의성을 제공합니다. 이번 포스팅에서는 Neovim을 간단히 소개하고, 플러그인 매니저인 lazy.nvim과 아름다운 테마...
최근 서버리스 기반 단어 암기 앱 Remember Me 프로젝트를 AWS Lambda와 API Gateway를 활용하여 진행하고 있습니다. 서버리스 아키텍처를 구축하면서 다수의 Lambda Function을 프로비저닝 하였는데, 이 과정에서 각 Lambda Function의 로그가 CloudWatch Logs의 Log Group에 분산 저장되어 어떻게...
MongoDB는 현대 애플리케이션에서 중요한 역할을 하는 NoSQL 데이터베이스로, 다양한 형태의 데이터와 복잡한 구조를 유연하게 처리할 수 있는 장점을 가지고 있습니다. 관계형 데이터베이스와 비교했을 때, MongoDB는 문서 지향(Document-Oriented) 모델을 채택하여 데이터의 스키마를 자유롭게 설계할 수 있습니다. 이를 통해 불규칙하거...
1부 Kubernetes 리소스 모니터링(1) - Prometheus와 2부 Kubernetes 리소스 모니터링 (2) - Grafana에 이어서 이번 시간에는 Prometheus에서 수집한 지표를 Grafana를 사용해 시각화 하는 방법에 대해 알아보도록 하겠습니다. Data Source 추가 이전에 변경한 비밀번호를 사용해 Grafan...