Data Engineering 107

[Kafka 초보자 가이드 Ep.02] 메시지 큐와 Kafka의 차이점

이 글에서는 전통적인 메시지 큐(RabbitMQ, ActiveMQ 등)와 Apache Kafka 간의 핵심적인 차이점을 살펴봅니다. 아키텍처, 성능, 활용 사례, 데이터 처리 방식 등 여러 측면에서 두 시스템을 비교하여 각각 어떤 상황에서 더 적합한지 이해할 수 있도록 도와드립니다.📌 메시지 큐와 Kafka: 개념 비교메시지 큐와 Kafka는 모두 애플리케이션 간 비동기 통신을 지원하는 미들웨어지만, 근본적인 설계 철학과 목적에 차이가 있습니다. ✅ 메시지 큐(Message Queue)란?애플리케이션 간 메시지를 전달하는 중간 저장소 역할주로 작업 부하 분산, 비동기 처리, 시스템 간 결합도 감소를 위해 설계AMQP(Advanced Message Queuing Protocol)와 같은 표준 프로토콜 기..

[Kafka 초보자 가이드 Ep.01] Kafka란 무엇인가?

이 글에서는 Apache Kafka의 기본 개념, 탄생 배경과 문제 해결 목적을 알아보겠습니다. 분산 시스템의 메시지 처리에 관심 있는 분들에게 Kafka가 왜 중요한지, 그리고 어떤 특징을 가지고 있는지 명확히 이해할 수 있도록 도와드립니다.📌 Kafka의 정의와 핵심 특징Kafka는 LinkedIn에서 개발되어 2011년 오픈소스로 공개된 분산 이벤트 스트리밍 플랫폼입니다. 간단히 말하면, Kafka는 다양한 시스템 간에 대용량 데이터를 안정적으로 주고받을 수 있게 해주는 메시징 시스템입니다. ✅ Kafka의 세 가지 핵심 기능데이터 스트림 발행(publish)과 구독(subscribe) - 다른 시스템에서 발생한 이벤트를 실시간으로 주고받을 수 있습니다데이터 스트림 저장 - 내구성 있게 데이터를 ..

EP17 [ MinIO S3 + Cilium 기초 과정 ] 기본 보안 설정 #1 | 쿠버네티스 Secret 활용하기 - MinIO 자격 증명 보호

이 글에서는 쿠버네티스 Secret을 활용하여 MinIO의 민감한 자격 증명 정보를 안전하게 관리하는 방법에 대해 알아보겠습니다. 보안 모범 사례와 함께 실제 구현 방법을 상세히 설명합니다.📌 쿠버네티스 Secret 개념 이해하기✅ Secret이란 무엇인가?Secret은 비밀번호, API 키, 인증서와 같은 민감한 정보를 저장하기 위한 쿠버네티스 리소스입니다. ConfigMap과 유사하지만 보안에 중점을 둔 리소스입니다.▶️ Secret의 주요 특징:민감 데이터를 저장하도록 설계됨Base64 인코딩으로 저장 (암호화는 아님)etcd에 저장될 때 암호화 가능 (추가 구성 필요)메모리에만 마운트 가능 (tmpfs)Pod 간 공유 제한 가능apiVersion: v1 # 핵심 ..

EP16 [ MinIO S3 + Cilium 기초 과정 ] 네트워크 기초 #4 | 기본 네트워크 정책 적용하기 - MinIO 접근 제한 실습

이 글에서는 Cilium을 사용하여 MinIO에 기본 네트워크 정책을 적용하는 방법을 실습 형태로 살펴보겠습니다. 네트워크 정책을 통해 MinIO 서버에 대한 접근을 효과적으로 제한하고 보안을 강화하는 방법을 단계별로 설명합니다.📌 네트워크 정책 개요✅ 네트워크 정책이란?네트워크 정책은 쿠버네티스에서 Pod 간 통신을 제어하는 규칙 집합입니다. Cilium은 쿠버네티스 표준 NetworkPolicy를 지원할 뿐만 아니라, 확장된 기능을 제공하는 CiliumNetworkPolicy도 지원합니다.▶️ 네트워크 정책의 주요 특징:Pod 간 통신을 명시적으로 허용/거부기본적으로 화이트리스트 모델(명시적으로 허용한 트래픽만 허용)인그레스(수신) 및 이그레스(송신) 트래픽 제어라벨 선택자를 통한 세밀한 타겟팅✅ ..

EP15 [ MinIO S3 + Cilium 기초 과정 ] 네트워크 기초 #3 | Cilium이란 무엇인가 - eBPF 기반 네트워킹의 장점

이 글에서는 Cilium의 개념과 아키텍처, 그리고 eBPF 기반 네트워킹이 제공하는 주요 장점에 대해 알아보겠습니다. 특히 MinIO와 같은 스토리지 서비스를 운영할 때 Cilium이 어떤 이점을 제공하는지 자세히 설명하겠습니다.📌 Cilium 소개✅ Cilium이란 무엇인가?Cilium은 Linux 커널의 eBPF 기술을 활용하는 오픈소스 소프트웨어 정의 네트워킹 솔루션으로, 쿠버네티스 환경에서 CNI(Container Network Interface)로 작동합니다.▶️ Cilium의 핵심 특징:eBPF 기반의 데이터 플레인 구현L3-L7 계층에서의 네트워크 보안 정책 지원높은 성능과 낮은 리소스 사용량애플리케이션 프로토콜 인식 기능풍부한 모니터링 및 트러블슈팅 기능✅ 일반 CNI와 Cilium의 ..

EP14 [ MinIO S3 + Cilium 기초 과정 ] 네트워크 기초 #2 | Docker Desktop에 Cilium 설치하기 - 기존 CNI 대체 방법

이 글에서는 Docker Desktop 환경에서 Cilium CNI(Container Network Interface)를 설치하고 기존 CNI를 대체하는 방법에 대해 알아보겠습니다. Docker Desktop의 특성을 고려한 Cilium 설치 과정과 주의사항을 상세히 설명합니다.📌 Docker Desktop 환경 이해하기✅ Docker Desktop의 특성Docker Desktop은 macOS와 Windows에서 컨테이너와 쿠버네티스를 쉽게 사용할 수 있게 해주는 도구입니다. 그러나 가상화 계층이 있어 표준 리눅스 환경과는 다른 특성을 가집니다.▶️ Docker Desktop의 주요 특징:경량 가상 머신 위에서 실행 (macOS: HyperKit, Windows: Hyper-V/WSL2)단일 노드 쿠버..

EP13 [ MinIO S3 + Cilium 기초 과정 ] 네트워크 기초 #1 | 쿠버네티스 네트워킹 기본 개념 - Service, Ingress, CNI 이해하기

이 글에서는 쿠버네티스 네트워킹의 기본 개념을 살펴보고, Service, Ingress, CNI의 핵심 개념과 역할에 대해 알아보겠습니다. 특히 MinIO와 Cilium을 활용하는 환경에서 네트워크 구성 방법을 중심으로 설명하겠습니다.📌 쿠버네티스 네트워킹 모델 이해하기✅ 쿠버네티스 네트워킹의 4가지 문제쿠버네티스는 분산 시스템으로서 네트워킹 문제를 해결하기 위한 명확한 모델을 제시합니다.▶️ 쿠버네티스가 해결하는 네트워킹 문제:컨테이너-컨테이너 통신: Pod 내 컨테이너 간 통신Pod-Pod 통신: 서로 다른 Pod 간 통신Pod-Service 통신: Pod에서 서비스로의 접근외부-Service 통신: 외부에서 클러스터 내부 서비스 접근✅ Pod 네트워킹 기본 원칙쿠버네티스의 Pod 네트워킹은 몇 가..

EP12 [ MinIO S3 + Cilium 기초 과정 ] 스토리지 기초 개념 #4 | MinIO의 데이터 지속성 - 볼륨 마운트와 데이터 보존 전략

이 글에서는 MinIO의 데이터 지속성 보장을 위한 다양한 볼륨 마운트 전략과 데이터 보존 방법에 대해 알아보겠습니다. 쿠버네티스 환경에서 MinIO의 데이터를 안전하게 보호하고 관리하는 방법을 상세히 다룹니다.📌 MinIO의 데이터 구조 이해하기✅ MinIO의 데이터 저장 구조MinIO는 데이터를 버킷과 객체 형태로 저장합니다. 이러한 데이터는 파일 시스템에 특정 구조로 저장됩니다.▶️ MinIO 데이터 디렉토리 구조:.minio.sys/: MinIO 시스템 메타데이터 디렉토리.minio.sys/buckets/: 버킷 메타데이터.minio.sys/config/: MinIO 설정 정보bucketname/: 사용자 생성 버킷bucketname/objectname: 실제 객체 데이터✅ 데이터 지속성의 중요..

EP11 [ MinIO S3 + Cilium 기초 과정 ] 스토리지 기초 개념 #3 | StatefulSet의 볼륨 클레임 템플릿 활용 - 자동화된 스토리지 관리

이 글에서는 쿠버네티스 StatefulSet의 volumeClaimTemplates 기능을 활용하여 MinIO와 같은 상태 저장 애플리케이션의 스토리지 관리를 자동화하는 방법에 대해 알아보겠습니다. 볼륨 클레임 템플릿을 통해 복제본마다 고유한 PVC를 자동으로 생성하고 관리하는 방법을 중점적으로 설명합니다.📌 StatefulSet과 볼륨 클레임 템플릿 개요✅ StatefulSet 복습StatefulSet은 상태 저장 애플리케이션을 위한 쿠버네티스 워크로드 리소스로, 각 Pod에 고유한 식별자와 안정적인 네트워크 ID를 부여합니다. Deployment와 달리 Pod가 삭제되고 재생성되어도 동일한 이름과 볼륨을 유지합니다.▶️ StatefulSet의 주요 특징:예측 가능하고 고유한 Pod 이름 (name-..

EP10 [ MinIO S3 + Cilium 기초 과정 ] 스토리지 기초 개념 #2 | Docker Desktop 환경에서 StorageClass 최적화하기

이 글에서는 Docker Desktop 환경에서 StorageClass를 최적화하여 MinIO와 같은 스토리지 시스템의 성능을 향상시키는 방법에 대해 알아보겠습니다. 개발 환경에서 효율적인 스토리지 관리를 위한 실용적인 접근법을 중점적으로 다룹니다.📌 StorageClass의 개념과 역할✅ StorageClass란 무엇인가?StorageClass는 쿠버네티스에서 스토리지 프로비저닝의 추상화 계층을 제공하는 리소스입니다. 관리자가 제공하는 스토리지의 "클래스"를 정의하며, 동적으로 PersistentVolume을 생성할 수 있게 합니다.▶️ StorageClass 주요 특징:동적 볼륨 프로비저닝 지원스토리지 유형별 다양한 속성 정의 가능볼륨 프로비저닝 요청 시 지정된 파라미터에 따라 PV 생성apiVer..

728x90