반응형

분류 전체보기 193

Prometheus에서 수집 가능한 커스텀 메트릭 만들기 (Python)

커스텀 메트릭 생성하게 된 계기기존에는 KEDA를 사용하여 SQS 큐 안에있는 메시지 개수를 보고 오토스케일링을 했었는데, 문제는 파드가 늘어나면 SQS 메시지 수를 파드 수로 나누어 평균 분산 해버리는 구조여서 원하는 방식대로 오토스케일링 기준을 잡기가 어려웠습니다.이에 따라 개발자분이 만들어둔 SlotManager의 슬롯 상태를 기준으로 오토스케일링을 하려고 메트릭을 만들게 되었습니다.메트릭 생성이제 실제로 제가 어떻게 했는지 과정을 말씀드리겠습니다.Prometheus Client 의존성 추가먼저 Python 애플리케이션에서 Prometheus 메트릭을 만들기 위해 prometheus-client 라이브러리를 추가하였습니다.prometheus-client이 라이브러리는, Counter, Gauge, ..

개발/Python 2026.01.08

[Go 언어 학습기 #9] Go 언어(Golang) 의 포인터

이 글은 Must Have Tucker의 Go 언어 프로그래밍 책을 참고하여 작성하였으며, 개인적인 학습 내용을 정리한 글입니다.포인터포인터는 메모리 주소를 값으로 갖는 타입입니다.포인터를 이용하면 동일한 메모리 공간을 여러 변수가 가리킬 수 있습니다.예를 들어 int 타입 변수 a를 선언하면, 변수 a는 메모리에 저장되어 있고 속성으로 메모리 주소를 가지고 있습니다.var a int = 3---- 변수 a는 값 10으로 선언- 메모리 어딘가에 저장됨- 그 메모리 주소를 가리키는 것이 포인터이 때 변수 a의 주소가 0x0100 번지라고 가정을 했을 때, 메모리 주솟값(0x0100) 또한 숫자값이기 때문에 다른 변수의 값으로 사용될 수 있습니다.이렇게 메모리 주솟값을 변숫값으로 가질 수 있는 변수를 포인터..

개발/Go 2025.12.24

[Go 언어 학습기 #8] Go 언어(Golang) 의 슬라이스

이 글은 Must Have Tucker의 Go 언어 프로그래밍 책을 참고하여 작성하였으며, 개인적인 학습 내용을 정리한 글입니다.슬라이스슬라이스는 Go 언어에서 제공하는 동적 배열 입니다.동적 배열 이란? 자동으로 배열 크기를 증가시키는 자료 구조 입니다.일반적인 배열은 처음 배열을 선언할 때 정한 길이에서 더 늘어나지 않습니다.하지만 슬라이스를 사용하면 이런 불편함에서 벗어날 수 있습니다.바로 선언 방법에 대해 알아보겠습니다.슬라이스 선언var slice []int기존 배열 선언에서 배열의 길이만 정의하지 않으면 됩니다.그러다보니 슬라이스 길이를 초기화 해주지 않으면 길이가 0인 슬라이스가 됩니다.예시 코드를 보면,package mainimport "fmt"func main() { var slic..

개발/Go 2025.12.23

[Go 언어 학습기 #7] Go 언어(Golang) 의 패키지

이 글은 Must Have Tucker의 Go 언어 프로그래밍 책을 참고하여 작성하였으며, 개인적인 학습 내용을 정리한 글입니다.패키지 란?Go에서 패키지는 코드를 묶는 가장 큰 단위 입니다.패키지 = 관련된 Go 파일들의 집합하나의 패키지는 하나의 디렉터리같은 디렉터리에 있는 .go 파일들은 모두 같은 패키지명을 가져야 합니다.코드 재사용, 의존성 관리, 네임스페이스 역할myapp/ ├─ main.go ← package main ├─ utils/ │ ├─ math.go ← package utils │ └─ string.go ← package utilsutils 디렉터리에 있는 .go 파일들은 모두 package utils 로 같은 패키지를 사용하는데,main.go 는 pack..

개발/Go 2025.12.22

[Go 언어 학습기 #6] Go 언어(Golang) 의 구조체

이 글은 Must Have Tucker의 Go 언어 프로그래밍 책을 참고하여 작성하였으며, 개인적인 학습 내용을 정리한 글입니다. 구조체 란?구조체는 여러 필드를 묶어서 사용하는 타입 입니다. 구조체를 통해서 연관된 여러 데이터를 하나의 이름으로 묶을 수 있습니다.예를 들어 이름, 나이 등을 묶어서 학생 구조체 데이터를 만들어 처리할 수 있습니다. 바로 선언하는 방법에 대해 알아보겠습니다.구조체 선언 방법type 타입명 struct { 필드명 타입 필드명 타입 ...} 위와 같은 방식으로 구조체를 선언을 합니다. 아래와 같은 예시를 들어보자면,type User struct { Name string Age int Email string} User..

개발/Go 2025.12.18

[Go 언어 학습기 #5] Go 언어(Golang) 의 배열

이 글은 Must Have Tucker의 Go 언어 프로그래밍 책을 참고하여 작성하였으며, 개인적인 학습 내용을 정리한 글입니다.배열 이란?배열은 타입이 같은 값 여러 개를 가지는 자료 구조 입니다.위 이미지로 좀 더 자세히 설명을 드리자면,배열을 이루는 각 값은 요소 라고 합니다.또한 요소를 가리키는 위치 값을 인덱스 라고 합니다. 여기서 인덱스는 1부터 시작하는 것이 아닌 0부터 시작을 합니다.배열을 사용하는 장점은 타입이 같은 여러 데이터를 변수 하나로 묶어서 효과적으로 다룰 수 있는 점 입니다.배열 정의 방법배열 정의 방법은 아래와 같습니다.var 변수명 [요소 개수]타입ex)var t [5]float64위와 같은 방식으로 배열을 정의 합니다.간단한 예제를 통해 사용법을 익혀보면,package m..

개발/Go 2025.12.17

AWS NAT Gateway 비용 분석: S3 트래픽과 VPC Endpoint의 중요성

문제 상황매일 AWS 비용을 확인하는데, 평소에 17달러 씩 나가던 EC2-기타 비용이 갑자기 47.64달러 씩 나가길래 사용량 유형에서 자세히 살펴보니, NatGateway-Bytes 비용이 급증한 걸 확인했습니다.이에 따라 Cloudwatch에서 NAT Gateway 가 어디로 많이 통신을 하는지 VPC Flow 로그에서 아래 쿼리로 확인을 해보니,fields interfaceId, srcAddr, dstAddr, bytes, action| filter interfaceId = '' and action = 'ACCEPT'| stats sum(bytes) as totalBytes by srcAddr| sort totalBytes desc| limit 20---결과값3.5.x.x ..

AWS 2025.12.16

Strimzi Kafka 모니터링 구축 가이드: Prometheus + Grafana로 메트릭 수집하기

이번엔 Strimzi Kafka 를 설치하고 모니터링 하는 방법에 대해 알아보겠습니다.먼저 Strimzi Kafka가 설치가 되어있어야 합니다.설치가이드jmxPrometheusExporter 설정먼저 jmxPrometheusExporter 설정을 해주어야 합니다.앞서 설치가이드에서 설치를 할 때 정의해둔 Kafka 리소스 YAML 파일을 살펴보겠습니다.apiVersion: kafka.strimzi.io/v1beta2kind: Kafkametadata: name: kafka-cluster namespace: kafka-operator annotations: strimzi.io/node-pools: enabled strimzi.io/kraft: enabledspec: kafka: ve..

Kafka 2025.12.11

Strimzi Kafka mTLS 적용 알아보기

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

Kafka 2025.12.03

[Go 언어 학습기 #4] Go 언어(Golang) 의 함수

이 글은 Must Have Tucker의 Go 언어 프로그래밍 책을 참고하여 작성하였으며, 개인적인 학습 내용을 정리한 글입니다.함수 란?함수란 특별한 목적의 작업을 수행하는 코드 묶음입니다. 일정 범위의 코드를 묶어서 함수를 만들면 같은 코드를 여러 번 작성하지 않고 한 번만 작성해 재활용 할 수 있습니다.함수 정의함수는 아래와 같이 구성 됩니다.함수 키워드함수명매개변수반환 타입함수 코드 블록 1 2 3 4func Add(a int, b int) int { ------ return a + b | 5 } ------ 1 = func 키워드를 사용해서 함수 정의2 = 그 뒤에 함수명 정..

개발/Go 2025.12.02
반응형