안녕하세요! 최근 Airflow Helm Chart를 사용하여 GKE(Google Kubernetes Engine)에 Airflow를 배포하면서 겪었던 흥미로운 문제 해결 과정을 공유하려고 합니다. 배포 과정에서 airflow-api-server Pod가 계속해서 CrashLoopBackOff 상태에 빠지는 문제가 발생했는데요. 해당 문제를 해결해 가는 과정을 단계별로 정리했습니다. 문제: Pod의 무한 재시작kubectl get po 명령어를 실행했을 때, airflow-api-server Pod의 STATUS가 Running으로 표시되지만 READY 상태가 0/1이고, RESTARTS 카운트가 계속 올라가는 현상이 발생했습니다. 이는 Pod 내부의 컨테이너가 정상적으로 시작되지 못하고 계속 충돌하고 ..
1. Kafka와 Strimzi에 대한 설명Kafka란? Apache Kafka는 대용량 실시간 데이터를 처리하기 위한 분산 이벤트 스트리밍 플랫폼입니다. 주로 아래와 같은 역할을 수행합니다.메시지 큐(Message Queue): 생산자(Producer)가 보낸 메시지를 소비자(Consumer)가 받아서 처리할 수 있도록 저장하고 전달하는 역할을 합니다.분산 시스템: 여러 대의 서버(브로커)에 데이터를 분산 저장하여 확장성과 안정성을 확보합니다.고성능 및 확장성: 초당 수백만 건의 이벤트를 처리할 수 있으며, 필요에 따라 브로커 수를 늘려 성능을 확장할 수 있습니다.지속성: 디스크에 데이터를 저장하여 장애 발생 시에도 데이터 손실 없이 복구할 수 있습니다.Strimzi란? Strimzi는 쿠버네티스(Ku..
데이터 엔지니어링 학습 중 다양한 데이터 파이프라인을 구축해보면서 복잡한 워크플로우를 자동으로 관리하고 모니터링하는 시스템에 대한 필요성이 커졌습니다. 이번 포스팅에서는 Airflow와 Kubernetes를 통해 안정적이고 효율적인 데이터 파이프라인을 구축을 위해 필요한 기본 개념에 대해 알아보겠습니다. 이번 포스팅은 Line Engineering의 Kubernetes를 이용한 효율적인 데이터 엔지니어링(Airflow on Kubernetes VS Airflow Kubernetes Executor)글을 참고하여 작성하였습니다.https://engineering.linecorp.com/ko/blog/data-engineering-with-airflow-k8s-1 Kubernetes를 이용한 효율적인 데이터..
소비자들은 상품을 구매할 때 리뷰를 꼼꼼하게 살피지만, 방대한 양의 리뷰를 일일이 읽고 핵심을 파악하기란 쉽지 않습니다. 판매자 역시 시장의 흐름을 파악하고 마케팅 전략을 세우는 데 어려움을 겪곤 하죠. 저희 팀은 이러한 불편함을 해소하고자 "상품 리뷰 기반 실시간 감정 분석 및 요약 서비스"를 기획했습니다.이 서비스는 사용자가 원하는 상품의 리뷰를 실시간으로 수집하고, LLM(대규모 언어 모델)을 활용해 감정 분석과 핵심 요약까지 제공하는 것을 목표로 합니다. 나아가 관심 상품의 가격 변동이나 리뷰 변화 추이까지 한눈에 파악할 수 있는 기능까지 포함하는 종합적인 서비스가 될 것입니다.저희는 고가용성 서비스 운영 및 기존 pipeline을 고도화한다는 의미를 담은 HighPipe로 프로젝트 명을 정했습니..
1. DE Pro Project의 시작DE Toy Project 고도화를 위한 기능 설계 이후 새로운 기술 스택을 배우는 시간을 가졌습니다. Kubernetes, Kafka, Spark등의 새로운 기술을 배우고 실습을 진행했습니다. 그렇게 시간이 흘러 KOSA에서 수강중인 Cloud Solution Architect 과정 중 final project를 진행하게 되었습니다. 해당 교육과정의 semi project로 Hybrid cloud를 구축하는 team project를 진행했습니다. 이번 final project는 해당 프로젝트에서 발전시켜 aws환경에서 EKS(Kubernetes)와 CI/CD 접목한 data pipeline 자동화를 구축하기로 했습니다. 사실 그전에도 DE Toy Project를 하..
1. 구성 환경 및 설치 버전GCP Computer Engine: e2-standard-2(vCPU 2개, 메모리 8GB) 3대무료 크레딧을 사용할 수 있는 GCP를 사용Kafka 3.7.2최신 4버전을 설치해서 사용해보려 했으나 학습목적이므로 stable버전을 사용하기로함Java 17Kafka 3.7.2: Java 11이상 권장 (Kafka Broker Java11이상 / Kafka Clients, Streams Java 8이상)Kafka 4:Java 17이상 권장 (Kafka Broker Java17이상 / Kafka Clients, Streams Java 11 이상)추후 업그레이드를 생각하여 Java17로 설치하기로함KRaft분산 시스템을 관리하기 위한 메커니즘기존엔 Zookeeper를 사용하여 클..