ES - 일래스틱서치 개요와 기본기능


ES - 일래스틱서치 개요와 기본기능

들어가며

일래스틱 서치를 알게된 건 대학원 수업때 였다. 빅데이터 플랫폼 구축과 설계라는 과목이었는데 정말 지금생각해도 아주 좋은 실전형 과목이었다. 그런 과목을 이수할 수 있었음에 감사를 드린다.

당시 ES는 6.X 초반 버젼으로 강의를 들었던 것 같은데 지금 벌써 7.X 후반이라고 한다. 참 버전업이 매우 빠르다. 여튼 핵심은 여전히 DB랭킹에서는 ES가 극도로 안정화 되고 범용성도 충분하여 사랑받는다고 한다.

여튼 각설하고, 하나하나 차분히 글을 풀어나가 보겠다.

ES란 무엇일까 ?

ES -> Elasticsearch / Elastic 의 약자다. 이젠 아예 홈페이지명이 elastic.co 로 바뀌었다. 결국 검색엔진 역할을 해주는 것이 Elasticsearch이며 DB역할도 수행하는 ELK Stack의 심장이라고도 불렸다. 참고로 ELK는 추후 소개할 Elasticsearch Logstash Kibana 3개를 줄여 부르는 용어고 이젠 잘 안쓰는 듯 하다.

여튼 ES는 이를 전체적으로 통칭하는 명칭으로 쓰여지는 듯 하다.

ES를 최초 개발한 사람은 ?

Shay Bannon - 샤이 배논이라는 양반께서 아파치 프로젝트 중 하나인 ‘루씬’프로젝트로 부터 시작하셨다고 한다. 일화가 항상 숨어있는데 ES는 샤이 베논의 와이프가 요리 레시피를 찾는 방법을 최적화를 고민하다가 시작되었다고 한다. 매우 훌륭한 남편이신가 보다.

또한 여담이지만 사내 샤이 베논의 아이디는 kimchy라고 한다. 한국을 매우 좋아하는 분 같으며 특히 어릴때부터 동양권 문화에 큰 관심을 가지셨다고 한다. 예전 로고만 찾아봐도 소나무를 마크로 쓰고.. 여튼 그랬다고 한다. 아래는 인자해 보이시는 샤이 배논의 사진이다.

Shay Bannon

ES의 주요기능?

ES는 다음의 기능을 제공한다.

  • 수집
    • 모든 데이터 형식 수집을 지원
    • 파일/스크립팅/TCP,UDP 등의 수집 방식 지원
    • 필요시 별도의 에이전트 개발 가능
    • 수집 데이터 필터링 기능 지원
  • 저장
    • 정형/비정형/반정형 데이터까지 모두 처리 가능
    • 별도의 파서나 스키마가 필요없음(스키마리스)
    • 분산환경의 대용량 처리가 가능
  • 분석
    • 다양한 처리 명령어 지원
    • 대용량 룩업 지원
    • Common Informatino Model
  • 시각화
    • 실시간 분석 및 시각화 지원
    • 사용자 정의 대시보드 구현 가능
    • 다양한 리포트 생성
    • Open Source와 연계 가능

ES를 사용한 대표적인 기업들?

ES가 오픈소스 형태로 제공 되는것이 기본이기 때문에 많은 회사들이 이를 활용하여 현업에 적용한다고 한다. 그 대상기업들에 대해서 한번 알아보자.

1.UBER

https://figmaelements.com/wp-content/uploads/2019/10/uber-redesign-app.png

  • 우버의 택시탑승 및 하차 지점을 찍을때 자동완성을 지원하는 것.. 이 기능을 ES로 구현했다고 전해진다.
  • 그 외에도 카프카 등을 통해 ES와의 멋진 조합으로 운영에 쓰인다고 한다.

2.YELP

https://res.cloudinary.com/practicaldev/image/fetch/s--xQcJ9ok3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/by3oj9tkrsblyyadwhjr.gif

  • 맛집 찾아주는 YELP. 국내에선 그닥이지만.. 해외에선 필수 앱인데 이또 한 ES기반으로 빠르게 서치가 가능하다고 한다.

3.Tinder

https://files.speakerdeck.com/presentations/74e2c229bac84d6e91ae51ac8c146644/slide_13.jpg

  • 세계 최대 데이팅 앱 틴더. ES기반으로 아주 빠르게 데이팅 상대를 추천하고 정보를 제공해준다.. 와우

4.Activision Blizzard

https://assets.vg247.com/current//2021/07/activision_blizzard_logos_blue_bg_1.jpg

  • 스타크래프트의 아버지 블리자드.. 이들 또한 모니터링 시스템을 키바나로 구축하여 실시간 사용자들과 서버를 모니터링 한다고 한다.

이렇듯 글로벌 네임드 회사들이 많ㅇ ㅣ사용하고 있다.. 국내 SI 3사 대기업들도 라벨 갈이만 해서 각자들의 플랫폼을 만들어서 판매까지 하고 있는 것으로 파악된다… 대단허다.. 그리고 실제 ES 코리아도 가장 최근에 생긴 회사이긴 한데 아직은 그 규모가 작다고 한다. 그래도 은근 매력적이고 나름 이직 메리트들이 존재한다고 들었다.

ES관련 Certificate?

ES 엔지니어가 국내에 그닥 많지 않다고 한다. 그래서 더더욱 관련 자격증을 공부하면 가치가 상승하지 않을까 하는 생각이 들어서 검색을 해보았다.

일단 대략 3가지 자격증이 존재하는 것으로 보인다.

1.Elastic Certified Engineer

  • 기본적인 요건은 이러하다. Certification for experts who can install and manage clusters, as well as develop search solutions.
  • 즉 설치와 구동, 그리고 클러스터 매니지까지 가능한 수준의 자격증.
  • 과목들은 아래와 같다.
    • Data Management
      • Define an index that satisfies a given set of requirements
      • * Use the Data Visualizer to upload a text file into Elasticsearch
      • Define and use an index template for a given pattern that satisfies a given set of requirements
      • Define and use a dynamic template that satisfies a given set of requirements
      • * Define an Index Lifecycle Management policy for a time-series index
      • * Define an index template that creates a new data stream
    • Searching Data
      • Write and execute a search query for terms and/or phrases in one or more fields of an index
      • Write and execute a search query that is a Boolean combination of multiple queries and filters
      • * Write an asynchronous search
      • Write and execute metric and bucket aggregations
      • Write and execute aggregations that contain sub-aggregations
      • Write and execute a query that searches across multiple clusters
    • Developing Search Applications
      • Highlight the search terms in the response of a query
      • Sort the results of a query by a given set of requirements
      • Implement pagination of the results of a search query
      • Define and use index aliases
      • Define and use a search template
    • Data Processing
      • Define a mapping that satisfies a given set of requirements
      • Define and use a custom analyzer that satisfies a given set of requirements
      • Define and use multi-fields with different data types and/or analyzers
      • Use the Reindex API and Update By Query API to reindex and/or update documents
      • Define and use an ingest pipeline that satisfies a given set of requirements, including the use of Painless to modify documents
      • Configure an index so that it properly maintains the relationships of nested arrays of objects
    • Cluster Management
      • Diagnose shard issues and repair a cluster’s health
      • Backup and restore a cluster and/or specific indices
      • * Configure a snapshot to be searchable
      • Configure a cluster for cross-cluster search
      • * Implement cross-cluster replication
      • Define role-based access control using Elasticsearch Security

2.Elastic Certified Analyst

  • Certification for Kibana experts that have mastered data visualization and advanced analysis.
  • 즉 키바나 전문자격이고 데이터 시각화 및 데이터 분석 전문가라고 볼 수 있다.
  • 시험 토픽은 아래와 같다.
  • Searching Data
    • Define an index pattern with or without a Time Filter field
    • Set the time filter to a specified date or time range
    • Use the Kibana Query Language (KQL) in the search bar to display only documents that match a specified criteria
    • Create and pin a filter based on a search criteria
    • Apply a search criteria to a visualization or dashboard
  • Visualizing Data
    • Create a Metric or Gauge visualization that displays a value satisfying a given criteria
    • Create a Lens visualization that satisfies a given criteria
    • Create an Area, Line, Pie, Vertical Bar or Horizontal Bar visualization that satisfies a given criteria
    • Split a visualization using sub-bucket aggregations
    • Create a visualization that computes a moving average, derivative, or serial diff aggregation
    • Customize the format and colors of a line chart or bar chart
    • Using geo data, create an Elastic map that satisfies a given criteria
    • Create a visualization using the Time Series Visual Builder (TSVB) that satisfies a given set of criteria
    • Define multiple line or bar charts on a single TSVB visualization
    • Create a chart that displays a filter ratio, moving average, or mathematical computation of two fields
    • Define a metric, gauge, table or Top N visualization in TSVB
    • Define a TSVB chart from the data of an ML job
    • Create a Tag Cloud visualization on a keyword field of an index
    • Create a Data Table visualization that satisfies a given criteria
    • Create a Markdown visualization
    • Define and use an Option List or Range Slider control
    • Create a Dashboard that consists of a collection of visualizations
  • Analyzing Data
    • Answer questions about a given dataset using search and visualizations
    • Use visualizations to find anomalies in a dataset
    • Define a single metric, multi-metric, or population Machine Learning job
    • Define and use a scripted field for an index
    • Define and use a Space in Kibana

3.Elastic Certified Observability Engineer

  • Certification for experts who can implement observability to monitor and react to events anywhere.
  • 즉, observability 를 통한 모니터링과 이벤트 대처 전문가라고 한다. 즉 ES의 모니터링 시스템 관련 전문성을 갖추게 하는 자격증같다.
  • 시험 토픽은 아래와 같다.
    • Uptime
      • Configure and run Heartbeat to determine the uptime of a process or service
      • Use Heartbeat to determine if a service is reachable via ICMP, TCP or HTTP
      • Use the Uptime app in Kibana to monitor the uptime and availability of a service
    • Metrics
      • Configure and run Metricbeat to collect metrics from an operating system
      • Enable and configure a Metricbeat module to collect the metrics of a specific service
      • Use the Metrics app in Kibana to analyze and answer questions about metrics collected in Elasticsearch
    • Logging
      • Configure and run Filebeat to collect system logs
      • Enable and configure a Filebeat module to collect the logs from a specific service
      • Configure and run Filebeat to tail a given log file
      • Use the Logs app in Kibana to analyze and answer questions about log events collected in Elasticsearch
      • Use the Logs app to view and analyze the predefined machine learning jobs for log events
    • APM
      • Configure an APM Server to send data to an Elasticsearch cluster
      • Enable RUM on an APM Server
      • Use the APM app in Kibana to analyze and answer questions about APM data collected in Elasticsearch
    • Structuring and Processing Data
      • Use Kibana to edit or define an ingest node pipeline
      • Configure Metricbeat or Filebeat to use an ingest pipeline
      • Define ingest node pipelines that use the various processors, including (but not limited to) append, convert, date, dissect, dot expander, geoip, grok, fail, json, remove, rename, set, and split
      • Define an ingest node pipeline that loads event data from an existing Elasticsearch index
    • Working with Observability Data
      • Find anomalies in Observability data using the predefined machine learning jobs in Kibana
      • Define a machine learning job in Kibana on Observability data
      • Define or edit an Index Lifecycle Management policy for indices
      • Define an alert using Kibana Alerts
  • 개인적인 생각으로는 가장 첫번째 자격증인 Elastic Certified Engineer는 말그대로 개발자 또는 데이터 엔지니어 직군에게 맞는 자격증 같고, 두번째는 좀 더 분석가 쪽에 맞다고 본다. 마지막은 시스템 및 클라우드 엔지니어한테 맞는 영역이라고 보여진다.
  • 문과생들은 두번째를 도전해보는 것도 좋을 것 같다. 태블로나 파워BI같은 시각화 툴에 능숙하다면 충분히 도전가치가 있지 않을까 싶다.

  • 실제 위 자격증과 관련하여 Course를 제공하는데… 그 비용이 미화 2400달러.. 약 우리돈으로 300만원가깝다.. 와우 너무비싸다…
  • 시험 비용 또한 400달러로 매우 비싸구나.. 와우
  • 그외에도 프리 트레이닝 코스들이 있다. 나름 유용하다고 보여진다. Anomaly Detection 관련 Cybersecurity 과목이 매우 흥미로워보인다.

감사합니다.

글 12편을 아래와 같이 기획해본다.

1.글또 6기를 시작하며 (DONE!)

2.ES - 일래스틱서치 개요와 기능들(Done!)

3.ES - 키바나를 활용한 데이터 시각화

4.빅데이터를 지탱하는 기술 (책을 통한 스터디 1)

5.빅데이터를 지탱하는 기술(책을 통한 스터이 2)

6.Azure - AZ Fundamental 900로 알아보는 기본 Azure 아키텍쳐

7.Azure - Data Factory로 구축하는 ETL 파이프라인

8.회계법인(Accounting Firm)과 디지털 컨설팅 1

9.회계법인(Accounting Firm)과 디지털 컨설팅 2

10.Image 관련 딥러닝 논문 내용과 적용(미정)

11.NLP 관련 딥러닝 논문 내용과 적용(미정)

12.2021년을 회고하며.. 글또 6기 마무리 글

이 글이 도움이 되셨다면 추천 클릭을 부탁드립니다 :)

Buy me a coffeeBuy me a coffee





© 2020 modified by Tae You Kim

Powered by "shoman2"