[기초부터 다지는 ElasticSearch 운영 노하우] 1장. ElasticSearch 훑어보기

eunsol Jo·2021년 8월 24일
0
post-thumbnail

1.1 ElasticSearch란

  • 루씬(Lucene) 기반의 오픈소스 검색엔진
  • JSON기반 문서 저장/검색/분석

ElasticSearch 특징

  1. 준실시간 검색엔진 : 색인 → 검색 속도가 빠름

    • 샤드(shard) : 데이터 공간
    • refresh_interval : 데이터 공간 저장후, 설정된 시간 이후에 검색이 가능 (ex. 1초)
  2. 클러스터 구성 : 한 대 이상의 노드를 클러스터로 구성 → 높은 수준의 안정성 + 부하분산

    • 클러스터 : 여러 컴퓨터 및 구성요소를 하나처럼 사용하는 기술
    • 노드 하나가 망가져도 클러스터유지 → 서비스 안정성
    • 노드는 *메시형태로 요청을 주고받음 → 부하분산

    *메시형태 : 노드간 서로 직접 통신

    cf. RDBMS의경우 마스터 서버에서만 명령 처리 가능

  3. 스키마리스 : 동적으로 스키마 생성

  4. RestAPI

    • 어떤 언어로도 클라이언트 생성가능. (ex. curl)

1.2 RPM or DEB으로 ElasticSearch 설치하기

*RPM : 리눅스에서 제공하는 레드햇 기반 패키지 설치 매니저 (CentOs7이상지원)

*DEB : 데비안 계열의 리눅스 배포판 패키지 관리 시스템 (우분투)

  • 간단한 명령어로 설치
  • 실행/중지 스크립트 제공
  • 정의된 위치에 파일이 들어감
  • 자바 설치되어 있어야함

1.4 tar 파일로 설치하기

  • 서로다른 버전의 ElasticSearch 운영시
  • 한 노드에 2개 이상의 ElasticSearch 프로세스

위와 같은 환경에서 유리. 서로 다른 버전을 다른 위치에 설치가능.

  • 자바 설치되어 있어야함
  1. 설치파일 다운로드

  2. 압축해제

    $ tar xvfz ./파일명

    디렉토리

    • bin : 실행을 위한 바이너리 파일
    • config : 환경설정 파일
    • lib : 실행을 위한 외부 라이브러리. 확장자가 jar. ElasticSearch의 기본인 루씬라이브러리 포함
    • logs : 디폴드 로그 저장 디렉터리. config/elasticsearch.yml파일으로 변경가능.
    • modules : 구성 모듈(=기능이 구현된것). 노드간 통신을 구현한 transport 모듈 등.
    • plugins : 설치한 플러그인을 구성하는 파일.
  3. 실행

    $ cd bin

    $ ./elasticsearch

    종료 : ctrl + c

    ⇒ 프로세스를 *포어그라운드 형태로 실행한것. → 터미널 입력 불가

    • 프로세스의 실행 형태 : 포어그라운드(직접실행) or 백그라운드(데몬 형태로 동작)

    데몬 형태로 실행

    $ ./elasticsearch -d

  4. 동작 확인

    $ curl -s http://localhost:9200

    • build_type : tar

두개의 ElasticSearch 띄우기

  1. 각 디렉터리명을 다르게 압축을 푼다.

  2. config/elasticsearch.yml 수정 → http.port: 9201 으로 변경

  3. 각각 서비스 실행

profile
Later never comes 👩🏻‍💻

0개의 댓글