ElasticSearch 역 인덱스(Inverted Index)
·
ElasticSearch
Token, TokenizingTokenizing: 문서(document)에 포함된 텍스트를 특정 기준(예시에선 공백)으로 나누는 것을 말한다.Token(또는 Term): 토크나이징에 의해 나눠진 문자열 덩어리 하나를 토큰(또는 Term)이라고 부른다.Inverted Index위의 설명에서 1번 문서(Document 1)에 포함된 "Hello I am yelly"를 토크나이징한 결과가 "Hello", "I", "am", "yelly"라는 토큰으로 분리되었다. 마찬가지로 2번 문서(Document 2)에 포함된 "Hello You are jelly" "Hello", "You", "are", "jelly"라는 토큰으로 분리되었다. 색인이때 토큰과 문서 정보(Document ID)를 매핑해서 저장한 자료구조..
ElasticSearch 7.8부터 사용하는 Index template과 Component template
·
카테고리 없음
2025.01.10 - [ElasticSearch] - ElasticSearch 클러스터 설정과 인덱스 설정 변경하기 ElasticSearch 클러스터 설정과 인덱스 설정 변경하기클러스터 API설정 변경ElasticSearch 클러스터의 설정은 클러스터 API인 `/_cluster/settings`로 변경할 수 있습니다.클러스터 API는 클러스터 전체에 설정을 적용할 때 사용하는데, 아래 예시처럼 `persistentdev-gallery.tistory.com이전 포스팅에서 살펴봤던 인덱스 설정은 API를 통해 변경했습니다.만약 인덱스가 생성될 때마다 API를 통해 설정하려면 꽤나 번거롭습니다.ElasticSearch는 이 번거로움을 해결하기 위해 template API를 제공하는데요, 기존 templat..
ElasticSearch Cluester API & Index API - 클러스터 설정과 인덱스 설정 변경하기
·
ElasticSearch
클러스터 API설정 변경ElasticSearch 클러스터의 설정은 클러스터 API인 `/_cluster/settings`로 변경할 수 있습니다.클러스터 API는 클러스터 전체에 설정을 적용할 때 사용하는데, 아래 예시처럼 `persistent`, `transient` 필드를 포함해 JSON 포맷으로 요청을 보냅니다. (두 필드 중 하나만 입력할 수 있습니다.)PUT /_cluster/settings{ "persistent": { "cluster.routing.allocation.node_concurrent_recoveries": 4 # 동시에 복구할 노드 수 }, "transient": { "cluster.routing.allocation.enable": "new_primaries" #..
2024년 Real MySQL 1권 + 2권 스터디 기록, 그리고 회고
·
MySQL
학습 범위 및 체크Real MySQL 1권완료 - 4장. 아키텍처 (InnoDB 부분만)완료 - 5장. 트랜잭션과 잠금완료 - 8장. 인덱스완료 - 9장. 옵티마이저와 힌트완료 - 10장. 실행 계획Real MySQL 2권완료 - 11장. 쿼리 작성 및 최적화완료 - 12장. 확장 검색완료 - 15장. 데이터 타입완료 - 16장. 복제완료 - 17장. InnoDB 클러스터스터디 기간1권 (5장, 8장): 2024년 9월 22일(일) ~ 10월 6일(일)2권 (11장, 15장): 10월 27일(일) ~ 11월 10일(일)1권 (9장): 11월 17일(일) - 스터디 종료11월 17일 이후 개인 스터디로 전환스터디 방식각자 README 작성 ⇒ 퀴즈 출제 & 퀴즈 풀기 ⇒ 스터디 모임 종료 후 개인 스터디퀴..
Argo Rollouts를 이용한 Blue-Green 배포 전략 적용하기
·
DevOps
이 포스팅에서는 GitOps 환경에서 Blue-Green 방식의 무중단 배포를 구성하는 과정을 다룹니다.이전 포스팅들을 참고하시면 GitOps 환경에서 GitHub Actions + ArgoCD를 이용한 CI/CD 파이프라인을 구축하실 수 있습니다.2025.01.04 - [DevOps] - GitOps와 ArgoCD2025.01.05 - [DevOps] - GitHub Actions + ArgoCD로 k8s 클러스터 환경에서 CI/CD 구축하기서론쿠버네티스는 배포를 쉽게 해 줍니다. 하지만 GitOps 방식의 CI/CD 파이프라인을 구축한 후 무중단 배포를 위해 설정해야 하는 부분은 꽤나 까다로웠습니다. GitHub Actions 워크플로우 스크립트를 수정할 때 configMap 등을 이용해 현재 배포된..
쿠버네티스에서 트래픽 유실 없는 무중단 배포 적용하기
·
Kubernetes
쿠버네티스는 배포를 편리하게 해 줍니다. 편리하지만 수동으로 배포한다면 꽤나 번거로워질 수 있고 Human Error가 발생할 가능성이 높습니다. 만약 GitOps 방식을 채택했다면 배포 과정에서 트래픽이 유실되지 않도록 하려면 복잡한 설정이 필요할 수 있습니다. 파드가 생성된 후 애플리케이션이 완전히 준비돼야 정상적으로 트래픽을 처리할 수 있고, 그 시점에 서비스 객체가 해당 파드를 바라볼 수 있도록 하는 제어가 필요하기 때문입니다. 서비스가 중단되지 않도록 배포하기 위해 무중단 배포 전략이 등장했고, 무중단 배포 전략에는 canary, blue-green, rolling 등이 있습니다. 이 포스팅에선 blue-green 배포 전략을 예시로 들겠습니다.쿠버네티스에서 트래픽의 이동 경로쿠버네티스 클러스터..
GitHub Actions + ArgoCD로 k8s 클러스터 환경에서 CI/CD 구축하기
·
DevOps
지난 포스팅에서 ArgoCD를 통해 애플리케이션의 자동 배포를 구축했습니다.ArgoCD로 자동 배포를 구축하는 과정은 이 링크를 확인해 주세요! 이번 포스팅은 GitHub Actions를 통해 CI 부분을 자동화하는 부분을 중점적으로 다루며, 이전 포스팅과 함께 읽으신다면 최종적으로 GitOps 방식으로 쿠버네티스 클러스터 환경에서 CI/CD 파이프라인을 구축하는 과정을 보실 수 있습니다.CI/CD 파이프라인 전체 흐름단일 진실의 원천(SSOT)인 GitHub Repository에 코드를 Push 합니다.GitHub Actions의 workflow가 트리거 됩니다.JDK로 Spring 애플리케이션을 빌드하고, 빌드된 JAR 파일로 Docker 이미지를 만든 다음 Docker Hub에 Push 합니다.Do..
GitOps에서 SealedSecret으로 안전하게 Secret 관리하기
·
DevOps
GitOps와 SecretGitOps는 단일 진실의 원천(SSOT)으로 Git 저장소를 사용합니다. (링크)Secret 객체는 암호화와 전혀 상관없는 base64로 인코딩된 값으로 되어 있습니다.그렇기 때문에 민감한 정보가 들어있는 Secret을 Git 저장소에 저장하면 위험합니다. (private 저장소라고 해도 누군가와 공유하는 순간 유출될 위험이 있습니다.) 이번 포스팅은 이 문제를 해결해주는 SealedSecret을 사용하는 방법에 대해 다룹니다.GitHub Repository: https://github.com/bitnami-labs/sealed-secrets GitHub - bitnami-labs/sealed-secrets: A Kubernetes controller and tool for o..