DevOps54 기본기있는-카프카깡패 (5) 카프카 브로커 설치하기 계속되는 브로커 설치 시 오류로 인해... 우선 스겜 해보겠다는 마음으로 confluent의 카프카 이미지를 사용하기로 했다...구성도아래 처럼 docker 안에서 zk-net이라는 bridge 네트워크를 만들고 주키퍼 3대 + 브로커 1대 구성으로 테스트 해볼 것이다.📦 Host Machine (Docker)│├── 🐳 Container: zookeeper-1│ - 내부 포트: 2181│ - 외부 포트: 2181│ - ZOO_MY_ID: 1│ - 서버 ID: server.1│├── 🐳 Container: zookeeper-2│ - 내부 포트: 2181│ - 외부 포트: 2182│ - ZOO_MY_ID: 2│ - 서버 ID: server.2│.. DevOps/Kafka 2025. 4. 7. 기본기있는-카프카깡패 (4) 환경 설정 2.1.1 운영체제 선택하기다양한 운영체제에서 실행이 가능하나, 대체로 리눅스가 권장.2.1.2 자바 설치하기카프카와 주키퍼는 모든 OpenJDK 기반 자바 구현체 위에서 원할히 작동하니, jdk 설치를 해야함.2.1.3 주키퍼 설치하기주키퍼는 카프카 클러스터의 메타데이터와 컨슈머 클라이언트에 대한 정보를 저장하기 위해 사용 됨.주키퍼 앙상블주키퍼는 고가용성을 보장하기 위해 앙상블이라 불리는 클러스터 단위로 작동하도록 설계되어 있음.앙상블은 보통 홀수 개의 서버 권장. 주키퍼가 요청에 응답하려면 앙상블 멤버(=쿼럼)의 과반 이상이 응답해야 하기 때문. (만약 3대중 1대의 노드가 죽어도 문제없이 동작한다는 뜻.)image는 https://hub.docker.com/_/zookeeper 공식 도커 이미지 .. DevOps/Kafka 2025. 4. 7. 기본기있는-카프카깡패 (3) 1.3 왜 카프카인가? 카프카가 왜 좋은지에 대해 알아보자.1.3.1 다중 프로듀서여러 프론트엔드 시스템 (프로듀서) 로부터 데이터를 수집하고 일관성을 유지하는 게 가능.1.3.2 다중 컨슈머다수의 카프카 컨슈머는 컨슈머 그룹의 일원으로 작동하면서 하나의 스트림을 여럿이서 나눠 읽을 수 있음.1.3.3 디스크 기반 보존만약 컨슈머가 느린 처리 속도 혹은 트래픽 폭주로 인해 뒤처질 경우에도 데이터 유실의 위험이 없음. 프로듀서 쪽, 컨슈머 쪽을 잠시 정지하더라도 메시지는 카프카 안에 남아있게 되어 컨슈머가 다시 시작되면 작업을 멈춘 지점에서부터 유실 없이 데이터 처리 가능.1.3.4 확장성가용성에 영향을 주지 않으면서 클러스터 확장 가능.1.3.5 고성능1.3.6 플랫폼 기능 DevOps/Kafka 2025. 3. 31. 기본기있는-카프카깡패 (2) 1.2 카프카 입문 카프카는 메시지 발행/구독 시스템1.2.1 메시지와 배치메시지: 데이터의 기본 단위키: 메시지를 저장할 파티션을 결정하기 위해 사용됨.카프카는 효율성을 위해 메시지를 배치 단위로 저장함.배치 크기가 커질수록 시간당 처리되는 메시지 수는 늘어나지만,각각의 메시지가 전달되는 데 걸리는 시간은 늘어남.1.2.2 스키마가장 간단한 건 JSON, XML단점: 타입 처리 기능, 스키마 버전 간의 호환성 유지 기능이 떨어짐Avro조밀한 직렬화 제공메시지 본체와 스키마를 분리하기 때문에 스키마 변경 시에도 코드 생성이 필요 없음강력한 데이터 파이핑스키마 변경에 따른 상/하위 호환성 제공1.2.3 토픽과 파티션토픽: 메시지 분류 단위DB에서는 테이블과 유사, 파일시스템에서는 폴더와 유사파티션커밋로그 관점에서 하나의 로그.. DevOps/Kafka 2025. 3. 31. 기본기있는-카프카깡패 (1) 카프카 핵심 가이드 진도표 드디어 Orelly - 카프카 핵심 가이드 책이 왔다.물론 책이 없어서 공부를 못한 것은 아니지만...ㅎ한번쯤 꼼꼼하게 고시공부하듯 공부해보고 싶었기 때문에 책을 통해 정리해보려한다.개인적으로 궁금한 공부내용은 되고만다-카프카깡패 시리즈에서 알아보고,기본기있는-카프카깡패 시리즈로 매일 한 소단원씩만... 오렐리 책 정리는 해보자...✅ 1주차: 2025.03.27(목) ~ 2025.04.02(수)날짜학습 내용03/27 (목)1.1 발행/구독 메시지 전달03/28 (금)1.2 카프카 입문03/29 (토)1.3 왜 카프카인가?03/30 (일)1.4 데이터 생태계03/31 (월)1.5 카프카의 기원04/01 (화)1.6 카프카 시작하기04/02 (수)2.1 환경 설정✅ 2주차: 2025.04.03(목) ~ 2.. DevOps/Kafka 2025. 3. 27. 되고만다-카프카깡패 (1) CDC란? 올해 들고 굉장히 마음이 헤이해졌음을 느낀다. 카프카가 분명 정말 하고 싶었었는데 행복한 돼지가 되고픈 마음과 겹쳐 공부를 자꾸만 놓고 있었다. 이럴 순 없어! 프로덕션 환경에서 운영자 관점에서 Kafka를 이해해보고, 신규 Kafka 구축도 올해 꼭! 진행해보기 위해 25년 올해 4월까지는 현재 회사 운영 환경에서의 구조에서 잘 모르고 어려운 부분들을 잘 골라내서 self 공부해보려 한다.Change Data Capture(CDC)란 무엇인가데이터가 저장된 상태에서 발생하는 변경 사항을 실시간 또는 근실시간으로 포착해 다른 시스템에 전달하는 기법을 Change Data Capture(이하 CDC)라고 한다.CDC를 활용하면 기존 시스템에 큰 수정 없이 DB 로그 또는 트랜잭션 기록을 근간으로 데이터를 .. DevOps/Kafka 2025. 3. 26. [CCAAK] Broker 개념 노트 v1.0 ✅ Kafka Broker 이해하기Kafka broker는 Apache Kafka 클러스터 내에서 데이터를 수신, 저장, 전송하는 서버이다. Kafka 생태계의 핵심 컴퓨팅 노드이며, 메시지를 불변한 순서로 저장하는 topic partition (로그 파일) 을 갖고 있음.📌 Broker의 기본Broker: 여러 개의 partition에 데이터를 저장하며, producer와 consumer 간 메시지 전달을 중계하는 서버임. Broker ID: 각 Kafka broker는 고유한 정수형 ID로 식별됨. Bootstrap Server: 모든 Kafka broker는 bootstrap server로 동작함. 클러스터 전체에 접근하기 위해서는 하나의 broker에만 연결하면 됨. Cluster: 여러 .. DevOps/Kafka 2025. 3. 24. [리눅스 마스터 1급 1회독] 01-1-1.2 리눅스 기초 1. 리눅스의 철학1) 리눅스 관련 용어GNUFSF: ‘구속되지 않는다 관점에서의 자유’GNU GPL: GNU 소프트웨어에서 카피레프트를 실제로 구현한 라이센스커널: 주된 역할이 하드웨어 제어버전 표시 방법 (주번호는 큰변화, 부번호는 작은 변화, 패치레벨은 버그가 수정되고 새로운 기능이 추가될 시)2) 리눅스와 주요 라이센스정리: 무료이용, 배포, 소스코드 취득 및 수정은 다 가능. 그런데 수정 시 소스코드를 비공개할 수 있는 건 BSD, Apache, MIT만. 독점소프트웨어와 결합은 GPL만 불가.GPL컴퓨터 프로그램은 어떠한 목적으로도 사용할 수 있지만 법 제한 불가프로그램의 실행복사본은 소스 코드를 같이 판매하거나 무료로 공개 해야함.프로그램의 소스코드는 용도에 따라 변경할 수 있음변경된 컴퓨터.. DevOps/👣 Linux 2025. 2. 5. Java-Gradle Kafka 환경 설정하기 sdk 리스트: https://learn.conduktor.io/kafka/kafka-sdk-list/IntelliJ Idea에서 New Project 통해 Java > Gradle 선택 및 jdk 잡아주기프로젝트 하위에 새로운 module을 다음과 같이 만들어준다.maven repository로 간다: https://mvnrepository.com/artifact/org.apache.kafka가장 먼저 kafka-clients가 눈에 띌 것가장 최신 버전을 클릭해주기.거기서 Gradle을 클릭하여 복사해준 후, 그대로 dependencies 하위에 붙여넣어준다.// https://mvnrepository.com/artifact/org.apache.kafka/kafka-clientsimplementati.. DevOps/Kafka 2025. 1. 22. [리눅스 마스터 1급 1회독] 01-1-1.1 운영체제의 개요 정리 01. 리눅스 실무의 이해1. 리눅스의 개요1.1. 운영체제의 개요운영체제의 이해1) 운영체제의 주요 역할컴퓨터의 ____를 제어작업의 ____를 정함____을 제어데이터의 ________ 처리 기능을 수행함.2) 최근 운영체제의 주요 특징다중 ____ 시스템다중 ____ 시스템____ 기술 지원운영체제의 종류1) 주요 서버 및 데스크톱 운영체제유닉스: ____ 연구소에서 시작켄 톰슨이 B언어로 개발하다 데니스 리치가 C언어를 개발해서 작성상업적 목적을 가진 계열은 ____, 그게 아니면 ____윈도우: ____ 빌게이츠에서 시작MAC OS X: ____ 사 스티브잡스에서 시작2) 모바일 운영체제안드로이드바다마에모모블린미고리모타이젠3) 리눅스 기반 모바일 운영체제4) 스마트 TV5) IVI - 약어? _.. DevOps/👣 Linux 2025. 1. 21. Mac OS에서 쓸 수 있는 kafka docker-compose 구성 (arm 64) Docker Compose를 이용한 Kafka 클러스터 구성Kafka는 분산 메시징 시스템으로, 데이터 스트리밍 처리에 널리 사용된다. 이 글에서는 Docker Compose를 활용하여 Zookeeper와 Kafka 브로커 3개로 구성된 로컬 환경을 구축하는 방법을 다룬다. 또한, Kafka UI 및 관리 도구를 포함하여 운영 환경을 시뮬레이션할 수 있는 구성 방법도 설명한다.1. Kafka 클러스터 개요Kafka 클러스터는 일반적으로 다음과 같은 구성 요소를 포함한다.Zookeeper: Kafka 브로커들의 메타데이터를 관리하며 클러스터의 상태를 조율한다.Kafka 브로커: 메시지를 저장하고 클라이언트로부터의 요청을 처리하는 핵심 요소이다. 브로커는 여러 개로 구성될 수 있으며, 데이터의 분산 및 복제.. DevOps/Kafka 2024. 11. 21. [EKS] external secret 이란 개요Kubernetes는 Secrets 리소스를 통해 애플리케이션의 민감한 정보를 안전하게 저장하고 관리할 수 있는 기능을 제공한다. 하지만 Kubernetes Secrets는 이름과 달리 완벽하게 안전하지 않은데, Secrets는 Kubernetes 클러스터의 etcd 데이터베이스에 base64로 인코딩된 평문 형태로 저장되기 때문에, 보안 위협에 노출될 가능성이 있다.이러한 한계를 극복하기 위해 AWS Secrets Manager, Google Secret Manager, HashiCorp Vault 등 외부 Secret 관리 서비스를 Kubernetes와 연동할 수 있는 방법이 필요하며, External Secrets Operator(ESO)**는 이를 가능하게 하는 오픈소스 도구이다. 외부 서비스.. DevOps/👾 Kubernetes 2024. 11. 19. CodeCommit에서 clone 받기 aws 계정 configure이러고 그냥 clone을 받으려하면,이렇게 자격증명을 입력하라는 화면이 나옴. 귀찮으니git config --global credential.helper '!aws codecommit credential-helper $@'git config --global credential.UseHttpPath true두줄 뿅 입력해서 AWS CLI 자격 증명 도우미를 설정해주기 (https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html) DevOps/🐝 AWS 2024. 11. 15. [Istio] istio를 로컬 mac에서 실습할 환경 만들기 minikubek8s 기동minikube start --driver=dockeringress addon 활성화minikube addons enable ingress애드온이 활성화된 후 "minikube tunnel"을 실행하면 인그레스 리소스를 "127.0.0.1"에서 사용할 수 있음.minikube tunnel istioctl - cli설치curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.17.2 sh -vim ~/.zshrcexport PATH=$PWD/bin:$PATH 추가source ~/.zshrc Istio 설치istioctl install --set profile=demo -y설치확인kubectl get all -n istio-systemis.. DevOps/👾 Kubernetes 2024. 11. 7. [Terraform] 지연 이후 Gracefully shutting down 문제 상황Interrupt received.Please wait for Terraform to exit or data loss may occur.Gracefully shutting down... terraform plan시 자꾸 plan이 긴 시간 안되면서 Ctrl + C로 그냥 멈추면 위와 같은 메시지가 뜸 임시 해결책찐 원인이나 해결책은 아직 모르겠고 임시방편으로 다른 터미널 켠뒤,terraform init - terraform plan 해줌.그러면, 이렇게 Error acquiring the state lock과 함께 Lock ID가 나옴. terraform force-unlock [Lock ID]해주면 위와 같이 unlock 되고, 이후에 plan 쳐서 하면 당분간은(?) 위같은 현상 안뜸. 찐 .. DevOps/👾IaC 2024. 10. 27. 이전 1 2 3 4 다음