반응형

분류 전체보기 287

ELK Stack 구축해보기

Overview이번 글에서는 로그 수집 및 시각화 시스템인 ELK Stack (Elasticsearch, Logstash, Kibana, Filebeat)을 Kubernetes 환경에서 직접 구축하는 방법을 정리해보았다. 기본적인 ELK 스택의 아키텍처와 각 컴포넌트의 역할, 그리고 실제 운영 환경에서 구성한 Helm 기반 배포 방식과 커스텀 파서 적용 방법까지 상세히 다루며, 실무에서 필요한 구조적인 로그 파싱과 동적 인덱스 설정, 메트릭 처리 및 로그 필터링 방법도 함께 설명하였다. 또한 Filebeat와 Logstash 설정 시 JSON 처리, 로그 필드 가공, 조건 분기 등의 활용 예제를 포함하여 Kibana에서 쉽게 분석 가능한 구조로 만드는 방법도 공유하였다. 마지막으로 운영 시 주의할 점과 ..

Monitoring 2025.01.27

8. Gitlab Repository Mirroring 방법

Overview이번 글에서는 GitLab의 Repository Mirroring 기능을 활용하여 저장소 간 동기화(Push 방식)를 설정하는 방법에 대해 다룬다. GitLab은 기본적으로 원격 저장소와의 Push 또는 Pull 기반 미러링 기능을 지원하며, 이를 통해 외부 저장소로의 자동 복제, 백업, 다중 GitLab 환경 간 소스코드 동기화 등을 효율적으로 수행할 수 있다. 특히 Pull 방식은 GitLab Premium 이상의 유료 플랜에서 제공되며, 일반 사용자나 커뮤니티 에디션에서는 Push 기반의 일방향 미러링이 대표적으로 사용된다.  이 글에서는 GitLab → GitLab 미러링 구성을 예시로, 실습 순서, 설정 화면, Outbound 네트워크 허용, 주의사항까지 상세히 설명하고 실시간 로..

IaC/CI CD Tool 2025.01.20

Google Chrome Extension 만들어보기

Overview이번 글에서는 Google Chrome Extension(크롬 확장 프로그램)을 개발하고 실제 Chrome Web Store에 배포하는 전 과정을 다룬다. 크롬 확장 프로그램은 웹 브라우저 기능을 확장하거나 사용자의 편의성을 높이기 위한 도구로, manifest.json 파일을 중심으로 popup, background, content script, 옵션 페이지 등 다양한 구성 요소로 이루어져 있다. 본 글에서는 확장 프로그램의 기본 구조와 핵심 역할을 설명하고, 개발된 확장 기능을 로컬 환경에서 테스트하는 방법과 함께 Chrome Web Store에 등록 및 배포하는 절차까지 실습 기반으로 자세히 소개한다.  또한 실전 예제로 직접 제작한 두 가지 Extension(Dev Toolkit, ..

Helm Base App Chart 생성(With ArgoCD)

Overview이번 글에서는 Helm Chart를 활용해 Base App Chart를 설계하고, 이를 기반으로 다양한 애플리케이션을 ArgoCD를 통해 자동 배포하는 방법을 정리한다. 단일한 Helm Chart 템플릿(Base Template)을 기반으로, 환경(dev1, dev2 등)과 서비스(admin, auth 등)에 따라 개별 values.yaml 파일만 다르게 구성해 애플리케이션을 배포할 수 있는 구조를 설계한다. 이를 통해 공통된 차트 구조를 유지하면서도 확장성과 유지보수성을 높일 수 있으며, ArgoCD ApplicationSet과의 연동을 통해 GitOps 방식으로 다중 환경 및 클러스터에 손쉽게 배포가 가능하다.  글에서는 아래 항목을 실습 중심으로 설명한다.Helm Base App Ch..

AWS DynamoDB Local 설치

Overview이전 글에서는 AWS DynamoDB의 개념과 사용 사례에 대해 살펴보았다. 이번에는 로컬 환경 또는 쿠버네티스 클러스터에서 DynamoDB Local을 설치하고 테스트하는 방법에 대해 다룬다. DynamoDB Local은 AWS에서 제공하는 로컬 테스트용 NoSQL 데이터베이스이며, 실제 AWS DynamoDB와 유사한 인터페이스를 제공한다. 개발 및 테스트 환경에서 비용 없이 DynamoDB 연동 기능을 검증할 수 있으며, AWS 자격 증명이나 인터넷 연결 없이도 사용할 수 있다는 장점이 있다. 특히, Kubernetes 환경에서 In-Memory 방식과 Data Storage 방식의 차이를 이해하고, 목적에 따라 적절한 배포 전략을 선택하는 것이 중요하다.        📅 관련 글2..

AWS 2025.01.03

Helm Chart 생성 및 패키징 (gh-pages)

Overview이번 글에서는 직접 개발한 Kubernetes Operator(예: helios-lb)를 Helm Chart로 패키징하고, GitHub Pages 기능을 활용해 Helm Chart Repository를 구축 및 배포하는 전 과정을 다룬다. helm create 명령어를 통해 Helm Chart의 기본 구조를 생성하고, CRD, 컨트롤러, RBAC, 서비스 등 필요한 리소스를 templates/에 정의한다. 이후 Helm의 `package, repo index` 명령을 통해 `.tgz` 패키지와 `index.yaml` 을 생성한 후, GitHub의 `gh-pages` 브랜치에 업로드함으로써 Helm Chart를 외부에 서비스할 수 있는 레포지토리를 구축한다. 이 과정을 통해 Helm Char..

Kubernetes Operator(CRD, CR) 생성(With kubebuilder)

Overview이번 글에서는 Kubebuilder를 활용하여 Kubernetes Operator를 개발하는 전반적인 과정을 살펴본다.Kubebuilder는 Kubernetes의 표준 API 패턴을 따르며, CRD 생성부터 컨트롤러 구현, 테스트, 빌드, 배포까지 효율적인 워크플로우를 제공한다.직접 Operator를 만들고 Docker 이미지로 빌드하여 배포하는 방법까지 다루므로, 실제 프로젝트에 적용하기 위한 기반을 마련할 수 있다. k8s-namespace-sync, helios-lb 등 실 사례를 통해 Operator 구조를 이해하고, 마커 기반의 CRD 정의, Makefile을 통한 테스트 및 빌드 자동화 등 실무에 꼭 필요한 요소들도 함께 다뤘다.     📅 관련 글2024.04.15 - [Co..

Kubernetes Operator 및 Custom Resource Definitions(CRDs) 이해하기

OverviewKubernetes Operator와  Custom Resource Definitions (CRDs) 대해서 알아본다.   Kubernetes Operator Kubernetes 생태계에서 Operator는 Kubernetes 애플리케이션을 패키징, 배포, 관리하는 방법이다. Kubernetes 애플리케이션은 Kubernetes에 배포되고 Kubernetes API 및 kubectl 도구를 사용하여 관리된다. Operator는 클러스터 상태를 감시한 다음 필요한 경우 변경을 수행하거나 요청하는 루프인 컨트롤러의 Kubernetes 원칙을 따른다. Operator는 Kubernetes를 확장하여 특정 애플리케이션의 전체 수명주기 관리를 자동화한다. ​ 왜 Operator를 사용해야 할까?Ku..

Kubernetes Headless Service란?

OverviewKubernetes에서 일반적인 Service는 클러스터 내의 파드들 사이에 로드 밸런싱과 가상 IP(ClusterIP)를 제공하는 방식으로 작동한다. 하지만, 데이터베이스나 Stateful 애플리케이션처럼 각 파드에 직접적인 네트워크 접근이 필요한 경우에는 이 방식이 적합하지 않다. 이런 상황에서 사용하는 것이 바로 Headless Service이다. `Headless Service는 clusterIP: None` 으로 설정되어 있으며, DNS를 통해 각 파드의 개별 IP를 직접 노출시켜준다.  이로 인해 클라이언트는 파드 하나하나에 직접 접근할 수 있게 되고, 이는 클러스터링 기반 DB 시스템(Cassandra, MongoDB 등)이나 StatefulSet 환경에서 매우 유용하게 활용된..

AWS DynamoDB란?

OverviewAmazon DynamoDB는 AWS가 제공하는 완전관리형 서버리스 NoSQL 데이터베이스로, 대규모 애플리케이션에서 실시간 성능과 높은 확장성을 요구할 때 이상적인 선택이다.테이블 기반의 비정형 데이터 저장 구조와 자동 확장 기능, 그리고 AWS 서비스와의 밀접한 통합을 통해 빠르고 안정적인 데이터 처리를 가능하게 한다. 특히 게임, IoT, 모바일 백엔드, 전자상거래 등 다양한 실시간 기반 워크로드에서 활발히 사용되고 있으며, DynamoDB Streams와 Lambda를 활용하면 이벤트 기반 아키텍처도 손쉽게 구축할 수 있다.  이 글에서는 DynamoDB의 핵심 개념, 기능, 사용 사례, 다른 데이터베이스와의 비교 등을 통해 전반적인 이해를 돕고자 한다.       📅 관련 글20..

AWS 2024.11.27
반응형