반응형

전체 글 118

[ALB] User-Agent 헤더별로 트래픽 전달

User-Agent 헤더이란?웹 브라우저나 앱 같은 클라이언트가 서버에 요청을 보낼때, 자기 자신의 정보(종류,버전,운영체제, 등)를 서버에게 알려주는 HTTP HearderUser-Agent 헤더의 역할1. 기기/브라우저에 맞는 페이지 제공- PC용, 모바일용 페이지 자동 분기- PC는 www.naver.com- 모바일은 www.m.naver.com2. 로그 분석/통계- 웹사이트 접속자가 어떤 브라우저, 어떤 OS를 많이 쓰는지 분석3. 호환성 처리- 특정 브라우저에서 버그 있을 때 예외 처리 등 1. User-Agent 헤더 정보 예시 PC 크롬Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrom..

카테고리 없음 2025.11.21

[APIGateway] REST API

API Gateway 이란 ?클라이언트(웹/앱 등)의 API 요청을 백엔드 서비스(Lambda, EC2, EKS, 등)로 전달하고,인증, 요청 필터링, 속도 제한, 트래픽 제어 같은 기능을 수행하는 API 전용 프록시 서비스입니다.[ EKS 환경에서 트래픽 흐름 ]Client -> API Gateway -> NLB -> Service -> POD 특징HTTP APIREST API목표저렴한 비용, 빠른 속도, 단순성풍부한 기능, 세밀한 제어, 레거시 지원지연 시간낮음, REST API 보다 빠름높음비용REST API 보다 저렴HTTP API 보다 비쌈통합 유형HTTP, Lamdba, AWS 서비스, MockHTTP, Lamdba, AWS 서비스 등인증/권한 부여JWT 토큰, Lambda 권한 부여자IAM,..

[Locust] 스트레스 툴 사용방법

Locust는 부하 테스트를 수행하는 Python 기반 오픈소스 툴입니다.단순한 GET/POST 뿐만 아니라, 로그인, api 호출, 시나리오 기반 흐름까지 재현 가능.웹 UI 제공 1. Locust 설치 Python3 설치 sudo dnf update -ysudo dnf install -y python3 python3-pippython3 --versionpip3 --version Locust 설치python3 -m pip install --upgrade pippip3 install locust 2. Locust 사용방법 locustfile.py 만들기wait_time : 1초~5초 랜덤하게 요청해요.self.client.get("/") : --host로 지정한 기본 URL 뒤에 슬래시(/)를 ..

카테고리 없음 2025.09.04

[ k6 ] 스트레스 툴 사용방법

K6란 ?오픈소스 부하 테스트(Load Test) & 스트레스 테스트(Stress Test) 도구 JavaScript로 스크립트를 작성 → 편하게 시나리오 구성 가능 CLI(Command Line)에서 실행 → 서버나 CI/CD 환경에도 쉽게 붙일 수 있음 공식 사이트: https://k6.io 1. K6 테스트 종류성능 테스트(Performance Test)정상 범위(낮음->중간->높음)에서 시스템의 응답성, 지연, 처리량 기준을 측정- 낮은 트래픽에서 처리량 파악- 평소 트래픽에서 처리량 파악- 많은 트래픽에서 처리량 파악- 서비스의 성능을 파악하는 테스트부하 테스트(Load Test)점진적인 사용자 증가에 따른 시스템 성능 변화 관찰100명 -> 200명 -> 500명 -> 1000명 -> xxx..

인프라/기타 2025.08.14

[APIGateway] HTTP API

API Gateway 이란 ?클라이언트(웹/앱 등)의 API 요청을 백엔드 서비스(Lambda, EC2, EKS, 등)로 전달하고,인증, 요청 필터링, 속도 제한, 트래픽 제어 같은 기능을 수행하는 API 전용 프록시 서비스입니다.[ EKS 환경에서 트래픽 흐름 ]Client -> API Gateway -> NLB -> Service -> POD 항목API GatewayALB용도API 요청 처리 전용웹 트래픽 라우팅 (L7)백엔드 연결 대상Lambda, HTTP 서비스, VPC Link 등EC2, ECS, POD, IP, Lambda 등성능높은 지연 시간(Latency) 가능성 있음더 빠름메세지 변환요청/응답 매핑 가능 (JSON -> JSON)불가능보안IAM, Cognito, JWT, API Key ..

[ArgoCD] applicationSet

1. kubernetes YAML 방식kubernetes 리소스를 정의하는 가장 기본적인 방식입니다.apiVersion: apps/v1kind: Deploymentmetadata: name: nginx-devspec: replicas: 1 selector: matchLabels: app: nginx-dev template: metadata: labels: app: nginx-dev dev/stg/prod 환경 마다 yaml을 모두 만들어야합니다.yaml 개수가 많아질 수록 수작업이 많아집니다.YAML으로 관리하는 것은 추천하지 않습니다. 2. Heml 방식Helm은 Kubernetes용 패키지 매니저 입니다.YAML 템플릿에 변수(values.yaml)을 ..

[OpenTelemetry] Target Allocator

Target Allocator 이란 ?Otel Agent = Opentelemetry Collector PodOtel Agent으로 metrics을 수집할때 모든 인스턴스 정보를 수집합니다.Otel Agent가 여러 대가 있으면 모든 인스턴스 정보를 중복 수집 문제가 발생합니다.Target Allocator가 Service Discovery 정보를 바탕으로 scrape 대상을 Otel Agent에게 동적으로 자동 배분합니다.Otel Agent Pod 수가 늘어나도 Target Allocator가 중복 수집되지 않도록 scrape 대상을 자동 분배합니다.공식 홈페이지 : https://opentelemetry.io/docs/platforms/kubernetes/operator/target-allocator..

[Grafana Mimir]Metrics 저장소

Grafana Mimir고성능, 수평 확장성 시계열 데이터베이스이며, Prometheus와 호환되는 스토리지 및 쿼리 엔진입니다.대규모 모니터링 환경에서 사용합니다.Grafana Mimir는 Grafana Labs에서 개발한 클라우드 네이티브 시계열 데이터베이스로다음과 같은 주요 목적을 가지고 있습니다.- Prometehus와 100% 호환되는 Remote Write 및 Read API 제공- 멀티 테넌시 지원- 수평 확장- 장기 보존- 고가용성 HA- 쿼리 성능 최적화, 데이터 중복 제거, Rule 및 Alert 관리 등 1. Grafana Mimir 사용하는 이유 Prometheus의 한계 극복Prometheus는 로컬 스토리지 기반이며, 장기 보존이나 수평 확장이 어렵습니다.Mimir는 외부 객체..

모니터링/Mimir 2025.07.03

[Grafana faro] faro sdk

faro SDK는 웹 어플리에키션 성능 모니터링 자바스크립트 라이브러리입니다.faro SDK 역할1. RUM (Real User Monitoring)Faro SDK는 웹사이트를 사용하는 실제 사용자들의 브라우저에서 발생하는 다양한 이벤트(페이지 로드 시간, 자바스크립트 에러, 사용자 인터랙션 등)를 수집합니다.2. 성능 및 오류 데이터 수집페이지 랜더링 속도, API 호출 지연, 자바스크립트 예외 같은 성능 지표와 오류 정보를 자동으로 수집해줍니다.3. Trace 및 분산 추적 지원Faro SDK의 일부 모듈(@grafana/faro-web-tracing)은 OpenTelemetry 표준 기반의 트레이스 데이터를 생성해,분산 시스템에서 서비스 간 호출 흐름을 추적할 수 있도록 합니다.4. Grafana ..

모니터링/Tempo 2025.06.25

[Grafana tempo] Grafana tempo, Traces 로그 수집

Trace 이란?Trace 로그는 마이크로서비스(MSA) 분산 시스템에서 하나의 요청(Request)이 여러 서비스나 컴포넌트를 거쳐 처리될 때의 흐름을 기록한 로그입니다.구성 요소 Trace ID : 하나의 요청이 들어오면 전체를 추척할 수 있는 고유 ID값Span ID : 각 단계(서비스, 함수 등)의 실행을 구분하는 IDParent Span ID : 호출 관계 표현 (누가 누구를 호출했는지)시작/종료시간, 에러 상태, 태그/속성 등Trace ID: 1234abcd [app-a pod] ---> [app-b pod] ---> [app-c pod] Span 1 -> Span 2 -> Span 3어디에서 지연이 발생했는지어느 서비스에서 에러가 났는지사용자 요청이 어..

모니터링/Tempo 2025.06.20
반응형