분류 전체보기

Elasticsearch node 역할elasticsearch의 node들은 아래와같은 역학들을 가지고있다. Master NodeElasticsearch Cluster 구성을 관리, 제어(인덱스 생성/삭제)를 담당한다. Elasticsearch Cluster는 최소 1개의 마스터노드를 가지고 있어야하며, 데이터 무결성을 위해서 최소 3개(split-brain 방지)의 마스터노드를 권장한다고한다.  Data  Nodedata를 실제로 저장하고 검색 로직을 처리하는 노드데이터를 처리하기 때문에 cpu, mem 사용량이 많다.  Ingest  Nodedata를 Elasticsearch 에 저장하기 전에 전처리 하는 노드Ingest Pipeline을 이용해서 데이터 필터링, 전환, 정규화 등의 작업을 수행한다...
쿠버네티스를 완벽하게 이해하고 있지는 않지만, 점점 익숙해지는 과정에서 자연스럽게 모니터링의 필요성을 느끼게 되었다. 백엔드 서비스를 운영하다 보면 "현재 서비스가 정상적으로 동작하고 있는가?", "어떤 요청이 많고, 장애가 발생했을 때 원인을 어떻게 찾을 수 있을까?" 같은 고민이 생기기 마련이다. 이를 해결하기 위해 쿠버네티스 환경에서 ELK Stack을 구축하여 BE 서비스의 로그를 효율적으로 모니터링하는 방법을 직접 경험해보기로 했다. 이번 글에서는 Kubernetes에서 ELK Stack을 배포하고, 로그를 수집 및 분석하는 과정을 정리해보려고 한다.   ELK Stack VS GrafanaELK 와 Grafana 둘 다 모니터링 도구이지만 각각의 사용 용도는 조금 다르다.  ELK 로그 수집 ..
Object란?쿠버네티스 시스템의 상태를 나타내는 영속성 엔티티   Object 주요 특징Spec (명세)사용자가 정의한 "원하는 상태" 설명 그대로 사용자가 kubernets에 원하는 상태를 정의하는 역할을 한다. 정의 가능 내용에는 아래와같은 내용들이 있다.컨테이너 이름사용 이미지리소스 제한 (CPU, MEM)볼륨 마운트 (Local, PVC) Status (상태)kubernetes Cluster의 "현재 상태" Status는 현재 상태를 나타내며, Spec 에서 사용자가 정의한 상태를 유지하려고 능동적으로 작업한다."읽기 전용"이므로 사용자가 수정할 수 없고, 변경 시 event가 발생한다.   Object 종류1. Podkubernetes 에서 배포되는 최소 단위이며, 하나 이상의 컨테이너를 그룹..
옛날에 혼자 서적을 사서 쿠버네티스를 조금 테스트해 보다가 시간이 없어서 잊고 지냈다. 그런데 최근에 우연히 쿠버네티스를 다룰 일이 생겨서 기억에 남길 겸 정리해 보려고 한다.  kubernetes란?쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식 가능한 확장 가능한 오픈소스 플랫폼으로, 선언적 구성과 자동화를 모두 지원한다. (출처: Kubernetes 공식 문서) 간단히 말하자면, 컨테이너 환경에서 서비스들을 관리하고, 다른 컨테이너들을 배포하며, 자동으로 스케일 아웃(Scale-Out), Ingress 등 오케스트레이션을 지원해 주는 플랫폼이다.    Cluster 란?컨테이너화된 애플리케이션 서비스를 실행하는 노드(Worker 서버)와 이를 관리하고 전체적인 관제를 담당하는 노드(..
· Etc
작성이유개발자라면 무조건 같이 개발한다는 chat GPT 유료버전을 사용중이었다. 간단한 질문을 할때는 좋은 도구(머리?)이지만, 원하는 부분만 발췌하여 질문하는 방식들이 많이 번거로웠고, 방대한 양의 코드의 경우 질문을 할 수가 없는 단점이 있었다. 이런 단점들을 해결하기 위하여 copilot, aws code whisper, codota 와 같이 코드 자체적으로 판단하여 추천해주는 플러그인들이 나오게 되었다. 그중에서 최근 가장 핫한 cursor AI의 장단점이 무엇이며, 사용해보기 위하여 작성하게 되었다.  Cursor AI 란?다른 코드 AI와는 다르게 프로젝트 내에서 AI 모델과 얘기를 하면서 코드를 추천하며 개발해나갈 수 있는도구 이다.  Cursor 특징탭완성사용자의 행동을 예측해서 자동으로..
· 잡담
현재 개인적으로 사용하고 있는 노트북은 Apple M1 Pro 모델이다. 이전에 karabiner를 사용해서 윈도우처럼 한영키를 사용중이었지만, 베타버전의 새로운 기능(iphone 미러링)을 체험해보고 싶다는 생각에 업데이트를 해버렸다. 그러더니 karabiner에서 에러가 발생해서 한영키가 제대로 작동하지 않았었다.생각보다 해당 이슈가 잦았기 때문에 hammerspoon을 사용해보자 라는 생각으로 끄적여본다..  1. karabiner 삭제일단 이 프로그램은 "휴지통으로 이동" 을 해서 삭제되지 않고 다른 방식으로 삭제를 해야됬었다.1-1. karabiner-Elements일반 카라비너는 해당 프로그램을 실행시켜서 uninstall 방식으로 삭제를 해야했다. 1-2. karabiner-EventView..
· infra/기타
작업 이유일전에 jenkins 설치를 위하여 yum update 작업을 진행한 적이 있었다.커널의 버전이 업데이트 되었고 큰 문제는 없었다. 그러나 내가 불편하기도 하고, 추후에 업무적으로 정보를 전달할때 문제가 될 수 있기 때문에 해당 작업을 진행하였다.  적용 방법 $ vi /etc/yum.conf```# 가장 마지막에 추가exclude=rocky-release*, kernel* // Rocky Linux 일 경우* exclude=centos-release*, kernel* // CentOS 일 경우
· BE/기타
작성 이유혼자서 열심히 카프카를 해보기위하여 강의를 보던 중 EDA (Event-Driven Architecture)를 구성하는 내용이 있었다. 거기서 EDA가 어떤 아키텍처인지? 어떤 특성들을 가지고 있는지 궁금하여 이 글을 작성하게 되었다.   EDA (Event-Driven Architecture)란?소프트웨어 아키텍처의 한 패턴으로, 시스템 내 발생하는 이벤트를 기반으로 컴포넌트들이 통신하는 구조.특정 이벤트가 발생하면 이를 구독하고 있는 각각의 컴포넌트들이 동작   EDA 특징?높은 비동기성, 느슨한 결합=> 이벤트 생산자와 소비자 사이의 직접적인 의존 관계를 제거하여 구현됨.=> 시스템의 확장성/유연성이 향상됨   EDA 장점1. 시스템간의 결합도가 낮다.    - 이벤트 메시지를 통해서 통신..
문제  제약조건 메모리 제약 입/출력 문제 분석1. 강의 시작시간 : [강의 종료시간] 의 Map 을 만든다.2. 시작시간부터 쭉 따라가서 종료시간까지 가장 많은 depth를 거치는 경우를 선택한다. 풀이import java.io.*;import java.util.*;public class Main { static long maxTime = 0; // 최대 강의 시간 static long maxCount = 0; // 최대 강의 수 public static void main(String[] args) throws IOException { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); ..
· BE/MSA
작성이유최근 팀 프로젝트를 진행하면서 모놀로틱으로 구성을 진행하였었다. 다만 추후에 MSA로의 마이그레이션 작업을 할 수도 있을 것 같다는 생각에 구조는 MSA 구조와 유사하게 작업을 하였었다. 그렇게 작업을 하다가 문득 MSA가 어떤 아키텍쳐길래 다들 선호하는 것이며, 어떤 장점과 단점들을 가지고 있는지, 어떤 관점으로 설계를 해야되는지에 대해 궁금증을 풀기 위하여 작성을 하게 되었다.  모놀리틱(Monolithic) 란?우선 MSA를 알기 전에 과거부터 존재해오던 모놀리스(Molith) 구조를 먼저 알아야 한다.모놀리스는 하나의 단위로 개발되는 일체식 어플리케이션 이다.즉, 소프트웨어의 모든 구성요소(사용자 인터페이스, 데이터베이스, 어플리케이션 3티어)가 한 프로젝트에 통합 되어 있는 형태 이다. ..
LIST
jjuni_96
'분류 전체보기' 카테고리의 글 목록