반응형

Kafka 9

Strimzi Kafka mTLS 적용 알아보기

Kafka 클러스터에 엑세스 보안이 필요한 이유Kafka는 단순 메시지 큐가 아니라 실제 운영 환경의 모든 주요 데이터 흐름이 지나가는 곳 입니다.예시를 들자면,사용자 로그인 이벤트결제 데이터주문 상태 정보로그/모니터링 데이터내부 서비스 간 API 결과그런데, Kafka 클러스터 접근에 아무런 조지가 없이 열려있다면 회사의 실시간 비즈니스 데이터에 쉽게 접근할 수 있게됩니다.이렇게 되면 누구나 Producer/Consumer 가 되어버리면 데이터가 조작이 가능해져 서비스가 위험해질 수 있습니다.그래서 이번엔 Strimzi Kafka에서 mTLS 인증을 사용해보는 방법에 대해 알아보겠습니다.mTLS(mutual TLS) 란?mTLS는 서버와 클라이언트가 서로 인증서를 통해 상대의 신원을 확인하는 보안 통신..

Kafka 2025.12.03

AWS MSK 메트릭 수집 및 모니터링

MSK도 Prometheus와 연결을 하여 메트릭 수집을 할 수 있습니다. 그러기 위해선 먼저 해주어야 할 과정이 있습니다.MSK 모니터링 편집에서 오픈 모니터링 Enable 입니다. AWS 콘솔에 접속해서 MSK 클러스터에 들어 간 후, 우측 상단의 작업 박스를 클릭하고 모니터링 편집 을 클릭해서,아래와 같이 오픈 모니터링 활성화를 해주면 됩니다.그리고 이제 Prometheus 설정에 아래와 같이 추가를 해준 후 적용을 해주면 됩니다.(저 같은 경우 Helm 차트를 이용하여 kube-prometheus-stack을 설치하여 values.yaml 파일에서 설정을 변경해주었습니다.)prometheus: prometheusSpec: additionalScrapeConfigs: - job_na..

Kafka 2025.11.06

Kafka 리플리케이션 완벽 이해: 동작 원리부터 토픽 설정까지

카프카는 브로커 한두 대에서 장애가 발생하더라도 중앙 데이터 허브로서 안정적인 서비스가 운영될 수 있도록 구상되었습니다.이 때 안정성 확보를 위해 카프카 내부에서는 리플리케이션 이라는 동작을 하게 됩니다.리플리케이션 동작 개요카프카에서 데이터는 토픽(topic) → 파티션(partition) 단위로 저장됩니다.각 파티션은 하나의 리더(Leader)와 여러 개의 팔로워(Follower) 복제본으로 구성됩니다.리더(Leader): 실제로 프로듀서와 컨슈머가 읽고 쓰는 주체팔로워(Follower): 리더의 데이터를 동기화(Replication) 하는 복제본, 리더가 장애나면 팔로워 중 하나가 리더로 승격 하게 됩니다.리더와 팔로워가 하는 역할에 대해 좀 더 자세히 알아보면,카프카는 모두 동일한 리플리케이션들을..

Kafka 2025.10.31

카프카 프로듀서 구조와 동작 원리

이번 글에서는 메세지를 전달하는 프로듀서에 대해 자세히 알아보도록 하겠습니다.프로듀서 디자인먼저 프로듀서가 어떻게 디자인 되어있는지 살펴보겠습니다.출처 https://dzone.com/articles/take-a-deep-dive-into-kafka-producer-api위 그림은 프로듀서의 전체 흐름을 나타낸 그림 입니다.ProducerRecord먼저 ProducerRecord라고 표시된 부분을 보면, 카프카로 전송하기 위한 실제 데이터 입니다.레코드는 아래와 같은 정보로 구성됩니다.토픽: 데이터를 보낼 카프카 토픽 이름 (필수)파티션: 토픽의 파티션 번호 지정 가능, 다만 필수는 아니여서 지정 안해두면 카프카가 자동 결정키: 파티션 선택에 영향을 주는 값 (선택)밸류: 실제 전송할 메시지 데이터 (필..

Kafka 2025.10.24

Kafka는 왜 이렇게 빠르고 안정적일까? — 높은 처리량과 안정성을 만드는 핵심 원리

인터넷에 카프카를 검색해보면, 높은 처리량빠른 응답 속도안정성위와 같은 특징을 가진 분산형 스트리밍 플랫폼 이라는 설명을 보셧을 겁니다.이번 글에서는 왜 카프카가 높은 처리량과 안정성을 지니게 되었는지 보도록 하겠습니다.카프카의 고성능과 안정성을 만드는 핵심 기술들이제부터 설명드리는 내용을 종합해보면, 왜 카프카가 높은 처리량과 안정성을 지니게 되었는지 어느정도 감이 오실 겁니다.분산 시스템분산 시스템은 네트워크상에서 연결된 서버들의 그룹을 말하며, 단일 시스템이 갖지 못한 높은 성능을 목표로 합니다.또한 성능이 높은 것 뿐 아니라 특정 서버에서 장애가 발생했을 때, 그룹 내 다른 서버가 장애가 발생한 서버 대신 처리를 해줄 수 있으므로 장애 대응도 탁월 합니다.이러한 내용을 말한 이유는, 카프카 역시도..

Kafka 2025.10.24

Kafka 저장 구조의 모든 것: Partition, Replication, Segment

카프카는 데이터를 받아서 전달하는 데이터 버스의 역할을 합니다.카프카에서 데이터(메시지)를 만들어서 주느 쪽을 프로듀서(Producer),데이터(메시지)를 소비하는 쪽을 컨슈머(Consumer) 라고 합니다.그리고 주키퍼는 카프카의 정상 동작을 보장하기 위해 메타데이터(metadata)를 관리하는 코디네이터라 할 수 있습니다.리플리케이션리플리케이션(replication)이란?각 메시지들을 여러 개로 복제해서 카프카 클러스터 내 브로커들에 분산시키는 동작을 의미합니다.이러한 동작 덕분에 브로커 한개가 종료되더라도 다른 브로커가 살아있다면 카프카는 안정성을 유지할 수 있습니다.실제 동작을 보면, 카프카에서 토픽이 리플리케이션이 되는 것이 아닌, 토픽의 파티션이 리플리케이션이 됩니다.그래서, 리플리케이션 팩터..

Kafka 2025.10.24

Strimzi Kafka 설치

사전 준비k8s 클러스터helm 설치1. Strimzi-Kafka-Operator 설치저 같은 경우 Helm 차트를 사용해서 Operator 설치를 해주었습니다.설치가 완료되면, Strimzi Operator와 CRD 모두 설치가 됩니다.다만, 업그레이드가 필요한 경우 CRD는 수동으로 적용 시켜주어야 합니다.helm install my-strimzi-kafka-operator oci://quay.io/strimzi-helm/strimzi-kafka-operator --version 0.47.0현재는 최신 버전인 0.47.0 버전으로 설치를 했지만, 이전 버전으로 설치를 했다면 아래와 같이 업그레이들 해주어야 합니다.번외, Upgrade 과정CRD 수동 갱신 (0.35 -> 0.47)kubectl app..

Kafka 2025.08.13

Strimzi kafka 란?

이번 회사에서 Kafka를 사용하게 되어서 알아보게 되었습니다.참고 문서https://strimzi.io/docs/operators/latest/overviewKafka 란?Apache Kafka는 대규모 실시간 데이터 스트리밍 처리 시스템으로, LinkedIn에서 개발되어 현재는 Apache Software Foundation의 오픈소스로 관리되고 있습니다.Kafka는 분산형 메시지 브로커 시스템으로, 실시간 로그 수집, 데이터 파이프라인, 스트리밍 분석 등 다양한 곳에서 사용됩니다.Kafka를 사용하게 된 계기문제 상황현재 Chat 기반 문서 분석 Ai-Agent를 개발하고 있는데, Backend 서버에서 fetch를 통해 AI 분석 서버와 직접 통신이 통신 구조에서 Backend의 힙 메모리 사용량..

Kafka 2025.08.11

Apache Kafka 에 대해 알아보기

Apache Kafka 란?Apache Kafka는 고성능의 분산 메시징 시스템으로, 대규모의 데이터를 실시간으로 처리하고 전달하는 데 최적화된 플랫폼 입니다.흔히 실시간 로그 수집, 이벤트 스트리밍, 데이터 파이프라인 구성 등에 사용됩니다.Kafka 구성Kafka는 고성능 TCP 네트워크 프로토콜을 통해 통신하는 서버 와 클라이언트 로 구성된 분산 시스템입니다. 서버 : Kafka는 하나 이상의 서버로 구성된 클러스터로 실행됩니다. 서버 중 일부는 브로커라고 하는 스토리지 계층을 구성합니다. 다른 서버는 Kafka Connect를 실행하여 이벤트 스트림으로 데이터를 지속적으로 가져오고 내보내 Kafka를 관계형 데이터베이스 및 다른 Kafka 클러스터와 같은 기존 시스템과 통합합니다. Kafka 클러스..

Kafka 2025.08.06
반응형