반응형

전체 글 173

AI 트래픽을 관리하는 방법: APISIX로 AI Gateway 만들기 - 2편 (설치 및 Custom Plugin 개발)

이전 글을 보고 오시면 이해하기 수월 합니다.AI 트래픽을 관리하는 방법: APISIX로 AI Gateway 만들기 - 1편이번에는 APISIX를 설치해보고 Custom Plugin 만드는 방법에 대해 알아보겠습니다.APISIX 설치저는 쿠버네티스 위에 설치를 진행하여서 Helm 차트로 설치를 하였습니다.설치 명령어helm repo add apisix https://charts.apiseven.comhelm repo updatehelm install apisix apisix/apisix --create-namespace --namespace apisix -f values.yamlvalues.yaml 설정# apisix 파드의 리소스 사용량 설정resources: requests: cpu: 10..

네트워크/APISIX 2025.11.03

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

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

스터디/Kafka 2025.10.31

AI 트래픽을 관리하는 방법: APISIX로 AI Gateway 만들기 - 1편

AI Gateway 란?여러 인공지능 모델이나 서비스들을 하나의 통합된 출입구 (게이트웨이)로 묶어 관리하고 사용할 수 있게 해주는 중간 계층 시스템입니다.즉, 모든 애플리케이션이 직접 LLM(API)으로 가는 것이 아닌, AI Gateway를 통해 통합적으로 접근을 하게 해주는 역할을 합니다.AI Gateway 왜 필요한가?요즘 수 많은 AI API 공급자들이 많이 있고, 해당 공급자들 안에서도 다양한 AI 모델이 존재합니다.이러다보니 문제가 발생합니다.AI 모델이 많아질수록 API 관리가 복잡해지고, 비용 예측이 어려워져 서비스 운영의 효율이 떨어지게 됩니다.이런 문제를 해결하기 위해 AI Gateway 가 필요해졌고 주요 기능은 아래와 같습니다.주요 기능설명비유/예시인증 및 접근 제어 (Auth &..

네트워크/APISIX 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

Packer 사용해서 AWS ami 커스텀 해보기

Packer 란?Packer는 여러 클라우드 및 가상화 환경에서 사용할 수 있는 머신 이미지를 자동으로 빌드해주는 도구 입니다.Packer를 사용하게된 계기Kubernetes 환경에서 Job 리소스를 사용하다 보면, 요청이 들어올 때마다 새로운 Pod가 생성됩니다.이 과정에서 노드가 새로 생성되고, 필요한 컨테이너 이미지를 내려받은 뒤에야 Pod가 실행되기 때문에 시간이 오래 걸리는 문제가 있었습니다.이 문제를 해결하기 위해, 노드가 시작될 때 이미 필요한 컨테이너 이미지가 포함된 상태로 준비되어 있으면 좋겠다고 생각했습니다.이를 위해 선택한 도구가 HashiCorp Packer 입니다.Packer를 사용하면 커스텀 베이스 노드 이미지를 빌드할 수 있고, 여기에 Pod 실행에 필요한 이미지를 미리 포함시..

AWS 2025.09.30

“Helm + ArgoCD + ApplicationSet으로 구축하는 PR Preview 환경 (3편: Preview 환경 배포하기)”

“Helm + ArgoCD + ApplicationSet으로 구축하는 PR Preview 환경 (1편: 아키텍처)”“Helm + ArgoCD + ApplicationSet으로 구축하는 PR Preview 환경 (2편: Helm 차트 구성)”앞선 글과 이어지는 내용 입니다.3편 글에서는 Helm 차트로 만들어준 Preview 환경을 PR이 발생하였을 때, 어떻게 만들어지는지 설명해보겠습니다.Github에서 PR이 발생하면 Argo ApplicationSet 리소스가 해당 PR을 감지하고 Helm 차트를 배포 하는 방식으로 진행 해보겠습니다.Argo ApplicationSet 이란 ?ArgoCD의 Application을 자동화해서 관리할 수 있도록 도와주는 컨트롤러 리소스 입니다.Prview 환경에서 App..

Pipeline 2025.09.16

“Helm + ArgoCD + ApplicationSet으로 구축하는 PR Preview 환경 (2편: Helm 차트 구성)”

“Helm + ArgoCD + ApplicationSet으로 구축하는 PR Preview 환경 (1편: 아키텍처)”앞선 글과 이어지는 내용 입니다.2편 글에서는 Preview 환경을 Helm 차트로 어떻게 만들었는지 설명해보도록 하겠습니다.Helm 차트를 왜 선택했는가?PR 마다 네임스페이스가 달라지고, 각 어플리케이션 파드 별로 이미지가 달라지는 상황에서 k8s yaml을 일일히 변경하면 비효율적이고, 실수를 하게될 위험이 큽니다.Helm은 템플릿화가 가능해서, PR 번호나 이미지 태그 같은 값을 변수로 넘길 수 있어 변화가 잦은 Preview 환경에 적합하다 생각되어 선택하였습니다.이제 Helm 차트를 어떻게 생성하고 구성했는지 알아보겠습니다.Helm 차트 생성Helm 차트 생성 명령어helm cre..

Pipeline 2025.09.12

“Helm + ArgoCD + ApplicationSet으로 구축하는 PR Preview 환경 (1편: 아키텍처)”

PR Preview 환경을 구성하게 된 이유보통은 Prod / Dev / Test 이렇게 3개 환경을 두고 개발을 하죠.하지만 제가 있는 곳은 스타트업이다 보니 비용 압박 때문에 Prod / Test 딱 두 개만 있었습니다.문제는 여기서 시작됐습니다.Dev 환경이 없다 보니, 개발자분들이 기능을 테스트하려면 Test 환경을 뺏어 써야 했습니다.그러다 보니, QA 팀도 쓰고, 다른 팀도 쓰는데… 개발자가 자기 브랜치 테스트를 위해 올려버리면 Test 환경으로 사용하던 다른 팀원 분들의 동작이 멈추게 됩니다..“이거 왜 안 되지?” 하고 보면, 다른 사람이 방금 테스트 중이던 API가 바뀌어 있던 경험… 다들 해보셨을 겁니다.그러다 알아보던 중, 다른 회사들은 개발자가 PR 올리면 자동으로 Preview 환..

Pipeline 2025.09.11
반응형