Data Engineering 107

📘 [MinIO & Cilium 기반 오브젝트 스토리지 연동 시리즈 #4] Cilium L3/L4 정책으로 MinIO 접근 제한 실습

✅ 목표: Cilium의 L3/L4 NetworkPolicy를 사용하여 MinIO 서비스에 접근할 수 있는 Pod를 제한하고,네트워크 정책이 실제로 작동하는지 검증하는 실습을 진행합니다.🔎 이번 글에서 수행할 작업 요약MinIO에 자유롭게 접근할 수 있는 테스트 클라이언트 파드 생성Cilium L3/L4 네트워크 정책을 적용하여 접근 제어 구성접근 가능/불가능한 사례 비교 테스트네트워크 정책 동작 여부 검증🧱 1단계: 테스트 클라이언트 파드 생성이 단계의 목적: MinIO에 curl 등을 통해 접근할 수 있는 일반적인 테스트 파드를 생성하고,네트워크 정책 적용 전의 기본 동작을 확인합니다.# test-client.yamlapiVersion: v1kind: Podmetadata: name: test-..

📘 [MinIO & Cilium 기반 오브젝트 스토리지 연동 시리즈 #3] MinIO 내부 네트워크 구조 및 s3a:// 접근 테스트

✅ 목표: Kubernetes 클러스터 내부에서 MinIO의 DNS 기반 네트워크 구조를 이해하고,Spark 등 워크로드가 s3a:// 방식으로 MinIO에 접근할 수 있는지 실제로 테스트해봅니다.🔎 이번 글에서 수행할 작업 요약MinIO 서비스의 DNS 구조 및 접근 주소 확인Spark 또는 테스트 파드에서 s3a:// 프로토콜로 접근 테스트Spark 설정에 필요한 핵심 fs.s3a.* 항목 정리 및 테스트🌐 1단계: MinIO 서비스 DNS 구조 확인이 단계의 목적: MinIO가 내부에서 어떤 DNS 주소로 노출되는지 확인하고,s3a:// 경로로 접근할 때 사용할 수 있는 주소 형식을 파악합니다.# MinIO 서비스 정보 확인kubectl get svc -n minio 예시 출력:NAME T..

📘 [MinIO & Cilium 기반 오브젝트 스토리지 연동 시리즈 #2] Helm Chart 기반 MinIO 커스터마이징 실습

✅ 목표: MinIO를 Helm으로 배포할 때, values.yaml을 수정해 커스터마이징을 적용하고로깅, 리소스 제한, 버킷 설정 등을 자신에게 맞게 구성하는 방법을 실습합니다.🔎 이번 글에서 수행할 작업 요약MinIO Helm Chart values.yaml 다운로드 및 구조 확인로그 출력 설정, 리소스 요청/제한, 버킷 구성 등 커스터마이징Helm Chart를 수정한 후 다시 배포변경 사항이 반영되었는지 확인📂 1단계: values.yaml 가져오기 및 구조 분석이 단계의 목적: MinIO 설치 시 사용하는 values.yaml 파일을 직접 가져와 수정 가능하도록 만들고,어떤 설정들이 가능한지 카테고리별로 구조를 파악합니다.# MinIO Helm Chart 저장helm show values bi..

📘 [MinIO & Cilium 기반 오브젝트 스토리지 연동 시리즈 #1] Docker Desktop Kubernetes에서 MinIO 설치 및 S3 버킷 구성하기

✅ 목표: 로컬 환경(Docker Desktop Kubernetes)에 MinIO를 Helm으로 설치하고, 기본 버킷을 생성하여S3 호환 오브젝트 스토리지를 쿠버네티스에서 직접 운영할 수 있는 기반을 마련합니다.🔎 이번 글에서 수행할 작업 요약Helm 저장소 추가 및 MinIO 설치PVC와 서비스 등 MinIO 리소스 확인기본 버킷 생성 (mc CLI 사용)Helm uninstall 테스트로 상태 복원 확인🧱 1단계: Helm 저장소 추가 및 MinIO 설치이 단계의 목적: Helm 차트를 사용하여 MinIO를 빠르게 설치하고,Kubernetes에서 사용하는 리소스(Pod, PVC, Service 등)가 자동으로 생성되는 구조를 이해합니다.# Bitnami Helm 저장소 추가helm repo add..

[Airflow 가이드 ep.8] 2부 DAG 작성 #3 | Branching, SubDAG, Dynamic DAG 활용 전략

이 글에서는 Airflow DAG 작성의 고급 기법인 Branching, SubDAG, Dynamic DAG에 대해 알아봅니다. 기본적인 DAG 구조를 넘어 더 복잡하고 유연한 워크플로우를 구현하는 방법을 실전 예제와 함께 살펴보겠습니다. 다양한 비즈니스 로직을 Airflow에 효과적으로 구현하기 위한 전략을 배워보세요.📌 Branching 이해하기Airflow에서 Branching은 조건에 따라 다른 경로로 워크플로우를 분기하는 기능입니다. 데이터 처리 파이프라인에서 상황에 맞게 다른 작업을 수행해야 할 때 유용합니다.✅ BranchPythonOperator의 기본 원리BranchPythonOperator는 Python 함수의 반환값에 따라 워크플로우의 다음 경로를 결정합니다.  from airflo..

[Airflow 가이드 ep.7] 2부 DAG 작성 #2 | Task 간 의존성 설정과 트리거 규칙

이 글에서는 Airflow에서 Task 간 의존성을 설정하는 다양한 방법과 트리거 규칙에 대해 자세히 알아봅니다. 복잡한 워크플로우를 위한 다양한 의존성 패턴과 조건부 실행 방법을 실제 코드 예제와 함께 살펴보겠습니다.📌 기본 의존성 설정 방법✅ 비트시프트 연산자 (>>, Airflow에서 Task 간 의존성을 설정하는 가장 직관적인 방법은 비트시프트 연산자(>>,  # 비트시프트 연산자를 사용한 기본 의존성 설정# 필요한 모듈 임포트from datetime import datetime, timedelta # 날짜/시간 처리를 위한 모듈from airflow import DAG # DAG 객체 임포트from airflow.operators.bash import BashOperator # Bash ..

[Airflow 가이드 ep.6] 2부 DAG 작성 #1 | DAG 생성 기초: 기본 구조와 파라미터 이해

이 글에서는 Airflow DAG 파일을 작성하는 기본 방법에 대해 알아봅니다. DAG 파일의 기본 구조와 필수 파라미터들을 상세히 살펴보고, 실제 예제를 통해 DAG 작성법을 익혀보겠습니다. 초보자도 쉽게 이해할 수 있도록 각 요소를 하나씩 설명합니다.📌 DAG 파일의 기본 구조✅ DAG 파일이란?DAG(Directed Acyclic Graph) 파일은 Airflow에서 워크플로우를 정의하는 Python 파일입니다. 이 파일은 작업(Task)과 작업 간의 의존성(Dependencies)을 정의하여 워크플로우의 실행 순서와 방식을 결정합니다.DAG 파일은 기본적으로 다음과 같은 구조를 갖습니다:필요한 라이브러리 임포트기본 인자(default_args) 정의DAG 객체 인스턴스 생성Task 정의Task ..

[Airflow 가이드 ep.5] 1부 개념과 설정 #5 | Airflow 기본 설정값 airflow.cfg 완전 해부

이 글에서는 Airflow의 핵심 구성 파일인 airflow.cfg를 심층적으로 분석합니다. 각 섹션별 중요 설정 옵션들을 살펴보고, 실무에서 자주 수정하게 되는 설정들과 성능 최적화를 위한 팁을 알아봅니다. 초보자도 이해할 수 있는 설명과 함께 실제 운영 환경에서 활용할 수 있는 구체적인 예시를 제공합니다.📌 airflow.cfg 개요✅ airflow.cfg 파일이란?airflow.cfg는 Airflow의 모든 구성 요소와 동작 방식을 정의하는 중앙 설정 파일입니다. Airflow를 처음 초기화할 때 자동으로 생성되며, 기본적으로 $AIRFLOW_HOME 디렉토리 아래에 위치합니다.# airflow.cfg 파일 위치 확인ls -la $AIRFLOW_HOME/airflow.cfg# 또는 다음 명령으로 ..

[Airflow 가이드 ep.4] 1부 개념과 설정 #4 | Airflow 설치: 로컬, Docker, Kubernetes 기반 설치 비교

이 글에서는 Apache Airflow의 다양한 설치 방법에 대해 자세히 알아봅니다. 로컬 환경 설치부터 Docker 컨테이너 기반 설치, 그리고 Kubernetes 환경에서의 설치까지 각 방법의 특징과 장단점을 비교하고, 실제 설치 과정을 단계별로 살펴보겠습니다.📌 Airflow 설치 개요✅ 설치 전 고려사항Airflow를 설치하기 전에 먼저 고려해야 할 몇 가지 중요한 사항들이 있습니다:환경 요구사항:Python 3.6 이상 (Python 3.8 이상 권장)운영체제: Linux(권장), macOS, Windows(WSL2 권장)충분한 CPU, 메모리, 디스크 공간사용 목적:개발/학습용: 간단한 로컬 설치 적합소규모 프로덕션: Docker 기반 설치 적합대규모 프로덕션: Kubernetes 기반 설치..

[Airflow 가이드 ep.3] 1부 개념과 설정 #3 | Airflow 주요 구성요소: Scheduler, Webserver, Worker, DB

이 글에서는 Airflow의 핵심 아키텍처와 주요 구성요소들을 상세히 알아봅니다. Scheduler, Webserver, Worker, Metadata Database 등 Airflow를 구성하는 각 컴포넌트의 역할과 상호작용 방식을 이해하고, 각 구성요소가 어떻게 동작하는지 살펴보겠습니다.📌 Airflow 아키텍처 개요✅ Airflow의 기본 아키텍처Airflow는 다음과 같은 주요 구성요소로 이루어진 분산 시스템입니다:Web Server: 사용자 인터페이스(UI) 제공Scheduler: DAG와 태스크 스케줄링 담당Worker: 실제 태스크 실행 담당Metadata Database: Airflow의 상태 정보 저장DAG Directory: DAG 파일 저장소   ✅ 컴포넌트 간 상호작용Airflow..

728x90