책
-
[14장] 운영 클러스터 구축책/엘라스틱_스택_개발부터_운영까지 2022. 5. 7. 20:12
복수의 노드로 클러스터를 구성하고 충분한 하드웨어를 할당할 필요가 있음 운영 클러스터 고려사항 충분한 하드웨어 확보 클러스터링과 분산, 병령 처리 개념을 이해해 노드를 구성할 필요 최소 3개의 마스터 노드 구성 => 스플릿 브레인 없이 서비스가 지속되게 하기 위한 최소한의 구성 데이터 노드를 최소 두 대 이상 확보 메모리: 가장 이상적인 메모리 64GB CPU: 단일 코의 성능 높은 CPU 보단 더 많은 코어 수를 권장 디스크: SSD 권장(하드 디스크를 사용할 경우 RPM이 빠른 제품 선택) => 네트워크 저장소 피하고, 최대한 빠른 디스크 성능 선택 하드웨어 통일: 성능을 통일하는 것이 중요 스냅샷 처리: 모든 노드에서 접근 가능하도록 네트워크 공유 드라이브 구성이 필요 노드 elasticsearch..
-
[13장] 클러스터와 노드 구성책/엘라스틱_스택_개발부터_운영까지 2022. 5. 1. 14:56
클러스터 구성 방법 노드 클러스터 동작 원리 http계층, 전송계층 마스터 노드, 데이터 노드, 인제스터 노드 클러스터 백업 방법 샤드, 샤드 할당 과정, 모니터링, 샤드의 크기와 갯수 구성 클러스터, 노드, 인덱스 설정방법 개념 설명 클러스터: 여러 대의 컴퓨터를 병렬로 연결해 하나의 시스템을 구성하는 것 고가용성, 시스템 성능 향상 분산처리 여러 노드의 집합 노드: 클러스터를 구성하는 요소 엘라스틱서치 클러스터를 구성하는 하나의 인스턴스 데이터 저장 및 인덱싱과 검색에 사용 노드 이름이 중복되면 안 됨 하나의 노드가 여러 역할 가능 하드웨어의 영향을 많이 받음 http 모듈 api 형태로 제공, 외부 클라이언트 앱과 통신시 사용 9200번대 포트 사용 전송 모듈 클러스터 내부 모듈 간의 통신에 사용 ..
-
[5장] 엘라스틱서치 집계책/엘라스틱_스택_개발부터_운영까지 2022. 3. 23. 08:23
엘라스틱서치 집계 메트릭 집계, 버킷 집계, 파이프라인 집계 메트릭 집계: 통계나 계산에 사용 버킷 집계: 도큐먼트를 그룹핑 하는데 사용 size:0 설정하면 집계에 사용한 도큐먼트를 결과에 포함하지 않아 비용이 절감됨 메트릭 집계 최소/최대/합계/평군/중간값 같은 통계 결과를 보여줌 메트릭 집계 종류 평균값(avg) 최솟값(min) 최댓값(max) 총합(sum) 백분윗값(percentile) min/max/sum/avg/count(stats) 유니크 갯수(cardinality) 위치 정보 중심점(geo-centroid) 유니크 값 계산 precision_threshold는 높을 수록 정확도가 올라가지만 리소스를 많이 사용함 실제 결과보다 크게 설정해야함 기본값은 3000, 최대 40000까지 설정가능 ..
-
[4장] 엘라스틱서치 검색책/엘라스틱_스택_개발부터_운영까지 2022. 3. 9. 12:28
내용정리 쿼리 컨텍스트 & 필터 컨텍스트 쿼리 컨텍스트: 유사도를 계산해 결과를 보여줌 포함여부를 찾을 때 결과를 제공 필터 컨텍스트: 유사도를 계산하지 않고 일치여부에 대한 결과를 보여줌 정확하게 일치 여부를 찾을 때 예/아니오의 결과를 제공 스코어 계산하지 않음 => 쿼리 속도 빠름 결과 캐시 사용가능 엘라스틱서치는 힙 메모리의 10%를 캐시로 사용 쿼리 스트링 & 쿼리 DSL 쿼리 스트링 한 줄 정도의 간단한 쿼리 쿼리 DSL 한 줄에 넣기 힘든 복잡한 쿼리 JSON기반 해당 용어가 포함된 도큐먼트를 반환 유사도 스코어 BM25 알고리즘 기반 스코어가 높을 수록 찾으려는 도큐먼트에 가까움 TF(Term Frequency), IDF(Inverse Document Frequency) 검색에 문서가 얼마..
-
[3장] 엘라스틱 서치 기본책/엘라스틱_스택_개발부터_운영까지 2022. 2. 28. 22:03
내용정리 인덱스와 도큐먼트 인덱스: 도큐먼트를 저장하는 논리적 구분자 도큐먼트: 실제 데이터를 저장하는 단위 클러스터----(n)인덱스----(n)도큐먼트----(n)필드 MySQL 엘라스틱서치 테이블 인덱스 레코드 도큐먼트 컬럼 필드 스키마 매핑 동일한 인덱스에 있는 도큐먼트는 동일한 스키마 도큐먼트는 반드시 하나의 인덱스에 포함되어야 함 도큐먼트 수정, 삭제는 비용이 많이 든다 벌크 데이터 bulk API는 읽기는 지원하지 않음(생성,삭제,수정만 지원) ndjson 형식을 사용(라인이나 쉼표 주의, json과 문법 다름 -> json 형태로 포맷팅하면 작동하지 않음) 매핑 다이나믹 매팽 명시적 매핑 저장할 데이터를 확실히 안다면 명시적 매핑이 좋음 이미 정의된 필드를 수정하거나 삭제할 수 없음(주의할..
-
[1,2장] 엘라스틱스택이란책/엘라스틱_스택_개발부터_운영까지 2022. 2. 20. 23:20
내용정리 배경 전문 검색 기능을 제공하는 강력한 소프트웨어의 필요성 -> 엘라스틱 서치 빅데이터 파이프라인을 구성하는 플랫폼 형태로 성장 단순 검색엔진을 넘어서는 플랫폼으로 발전 유연성 확보를 위해 데이터를 수집, 가공, 저장, 분석, 시각화하는 파이프라인을 구성(다양한 오픈소스 소프트웨어의 조합) => 엘라스틱 스택 엘라스틱 스택 = 키바나(시각화) + 엘라스틱 서치(데이터 저장, 검색엔진) + 비츠, 로그스태시 (데이터 수집) 엘리스틱 서치 JSON 도큐먼트 형태로 입력, 관리 쿼리 결과에 대해 일치하는 원본 도큐먼트를 반환(일반적인 데이터베이스처럼) 다양한 데이터 타입에 최적화 검색엔진이면서 데이터베이스(일종의 NoSQL)의 역할 용어 단위의 역인덱스 사전을 구축 최적화된 컬럼 기반 자료구조를 저장..
-
클린 아키텍처, 소프트웨어 구조와 설계의 원칙(로버트C.마틴)책/인상깊게_읽은_책들 2022. 1. 4. 14:45
클린 아키텍처라는 제목만으로도 읽기에 어려울 수 있겠다는 생각이 드는 책이었다. 미뤄뒀던 책을 읽어보게 되었는데 읽으면서 느끼는 점이 너무 많았다. 물론 이 책의 모든 내용을 이해했다고는 할 수 없겠으나 내가 책에서 공감되었던 내용, 충격적으로 다가왔던 내용들 위주로 기록에 남겨보려고 한다. 생각보다 너무 재밌었고, 주변에 추천해가며 읽었던 책이다. 어떻게 코드를 짜야할까, 어떤 구조로 구성해야할지 고민을 조금이라도 했던 사람이라면 매우 추천하고 싶다. Quotes 패러다임 구조적 프로그래밍은 제어흐름의 직접적인 전환에 대해 규칙을 부과한다. 객체 지향 프로그래밍은 제어흐름의 간접적인 전환에 대해 규칙을 부과한다. 함수형 프로그래밍은 할당문에 대해 규칙을 부과한다. (26~27pg) 각 패러다음은 프로그..