1) 소개


Elastic search는 아파치의 Lucene 기반으로 개발한 오픈소스 실시간 분산 검색 엔진(서버)으로 JSON 기반의 비정형 데이터 분산 검색과 분석을 지원합니다. 설치와 서버확장이 매우 편리하다는 장점과 실시간 검색 서비스 지원, 분산 및 병렬 처리 그리고 멀티테넌시 기능을 제공하며, 다양한 기능을 플러그인 형태로 구현하여 적용할 수 있는 것이 큰 특징입니다. 아마존 웹 서비스의 클라우드 서비스와 빅 데이터 처리를 위한 하둡 연동도 지원하고 있습니다. 또한 분산시스템이기 때문에 검색 대상의 용량이 증가했을 때, 대응하기가 수월하다는 장점이 있습니다.

Elastic search는 현재 웹 문서 검색, 소셜 데이터 분석, 쇼핑몰 검색 등 다양한 서비스에서 사용되고 있으며, 앞으로도 중•소규모의 데이터부터 빅 데이터까지 광범위한 검색과 분석 서비스에 활용될 것이라는 전망이 있습니다.




2) 특징


 분산과 확장성, 병렬 처리


Elastic search는 보통 3개 이상으로 구성하고 클러스터로 묶어서 처리하기 때문에 하나의 shard가 깨져도 복제되어 있는 다른 곳에 자동적으로 이동해 보여주기 때문에 SPOF(Single Point Of Failure)를 제거합니다. 또한 데이터의 분산과 병렬 처리가 되므로 실시간 검색 및 분석을 할 수 있고,수평적으로 늘어나도록 설계 되어 있기 때문에 더 많은 용량이 필요하면 노드(Elastic search 서버)를 추가하고 클러스터에 추가 후, 추가적인 하드웨어로 이용할 수 있도록 해주면 됩니다.  (같은 클러스터 내에서 라면 초기설정 그대로도 노드끼리 연결이 되지만, 다른 클러스터에 있다면 설정 필요)


고가용성


Elasticsearch 는 동작중에 죽은 노드를 감지하고 삭제하며 사용자의 데이터가 안전하고 접근가능하도록 유지하기 때문에, 동작 중에 일부 노드에 문제가 생기더라도 문제없이 서비스를 제공합니다.


 멀티 테넌시


클러스터는 여러개의 인덱스들을 저장하고 관리할 수 있으며, 독립된 하나의 쿼리 혹은 그룹 쿼리로 여러 인덱스의 데이터를 검색할 수 있습니다.


 전문 검색(Full text search)


Elastic search는 강력한 full text search를 지원합니다.


 문서 중심(Document oriented)


복잡한 현실세계의 요소들을 구조화된 JSON 문서 형식으로 저장합니다. 모든 필드는 기본적으로 인덱싱되며, 모든 인덱스들은 단일 쿼리로 빠르게 사용할 수 있습니다.


 Schema free


JSON 문서 구조를 통해 데이터를 인덱싱하고 검색가능하게 합니다. (NoSQL과 같은 스키마가 개념이 없음) 그리고 사용자의 데이터가 어떻게 인덱싱 될 것인가에 대한 것은 사용자가 커스터마이징 할 수 있습니다.


 플러그인 형태 구현


검색엔진을 직접 수행하지 않고 필요한 기능에 대한 플러그인을 적용하여 기능을 확장할 수 있습니다. 예를 들어 외부에서 제공하는 형태소 분석기나 REST API를 구현하여 적용할 수 있습니다.

'LogSystem' 카테고리의 다른 글

Elasticsearch 설치 및 사용법  (0) 2016.07.14
ELK와 스플렁크  (0) 2015.11.14
루씬(Lucene)이란?  (0) 2015.11.14
Full text index란?  (0) 2015.11.14
노드 생성, 동작 원리 및 shard란?  (0) 2015.11.14
Elastic search란?  (0) 2015.11.14

robobob.co.kr/56

'아두이노' 카테고리의 다른 글

아두이노로 220V 제어  (0) 2015.11.14

구글에서 공개한 리눅스 컨테이너 관리 시스템.

클러스터가 구성된 coreos-docker의 컨테이너들을 집합 개념으로 관리하며 집합이 죽었을 때의 백업집합을 관리하는 service를 운영


Kubernetes의 구조


POD: 컨테이너들의 집합

-       같은 주소컨테이너 2: A또는 B의 포트를 노출 -> 해당포트로 연결

-       호스트가 다르고포트가 여러 개 필요하다면? Overlay network로 해결!



Overlay network란 물리 네트워크 위에 가상 컴퓨터 네트워크 -기존의 데이터 센터 네트워크 망이 어떻게 구성되어 있던지 Network을 넘어 구성하겠다는 것

vxlan이란 L2 Network 확장성을 의미한다. VLAN 기반 네트워크 보다 더욱 많은 Layer 2 Segment 를 구성한다. VLAN 숫자의 제약을 극복 할 수 있음을 의미한다. Mac Over IP/UDP Header 24bit VAND ID를 새롭게 구성하게 되므로 기존의 VLAN 숫자를 뛰어넘는 구성이 가능해진다. VXLAN Header + UDP + IP 기반으로 전송





Ip netns란 리눅스 시스템에서 네트워크는 단지 하나만 존재하는 글로벌 자원네트워크 네임스페이스를 이용하면격리된 네트워크 환경을 구축할 수 있음


내 생각위의 과정을 봤을 때도커에게 할당 받은 ip들을 리더(?) 격인 1개만 남기고 나머지는 해제이후 포드 하나의 그룹 대표 ip로 지정??


ReplicationController복제를 담당

-       ReplicationController 3으로 지정해 POD 3개를 관리하다가, POD1개가 고장 났을 때, Replication Controller에서 해당 포드를 재 생성해 살려냄.

-       새로 생성해서 죽은 pod를 살리면 ip가 바뀌면서 살아남

-       한 서비스 안에 여러 포드를 관리할 수 있음.







Service & proxy

-       Service를 생성하면 별도의 ip가 할당

로드밸런스로 포드에 균일하게 처리할 수도 있고 트래픽을 강제로 한쪽으로만 몰수도 있음.




장점컨테이너들을 묶어 관리하기 때문에 네트워크, volume, 리소스(cpu, ram)가 공유

Pod가 죽어도 rc에서 관리하기 때문에 백업기능

Service를 생성한 후, pod를 연결하면 자동 로드밸런스 기능뿐만 아니라 강제로 트래픽을 포드에 조절할 수 있음.



단점


'CoreOS' 카테고리의 다른 글

[CoreOS]CoreOS란?  (0) 2017.01.28
[CoreOS] cloud-config 파일 유효성 검사  (0) 2017.01.28
[CoreOS] CoreOS 업데이트  (0) 2017.01.28
[CoreOS] CoreOS 설치  (0) 2015.11.14
Vagrant 사용하지 않고 CoreOS 3대 클러스터링하기 (VirtualBox)  (0) 2015.11.14
Kubernetes  (0) 2015.11.14

+ Random Posts