Infra/Elasticsearch 5

[Elasticsearch] 엘라스틱서치 운영 준비

엘라스틱서치 운영 준비 - 아키텍처 구성 이 글은 `당신의 신문, 당신` 프로젝트를 진행하면서 간단한 Elasticsearch 클러스터를 구성하면서 진행된 일련의 과정을 정리해놓은 글입니다. Elasticsearch를 제대로 원활하게 사용하기 위해서는 높은 하드웨어 스펙을 가지고 있어야 하지만 신입 개발자를 준비하는 상태로 높은 스펙을 사용하기에는 경제적 문제가 있어 극한의 환경에서 구성하여 사용하였습니다. Elasticsearch의 구성과 하드웨어 스펙은 다음과 같습니다. 하드웨어 스펙과 구성 아키텍처 Docker를 이용하여 작은 인스턴스에 3개의 노드를 사용했던 지난 글에서 언급했듯 Elasticsearch를 사용하기 위해서는 하드웨어의 스펙이 어느정도 받쳐주어야 합니다. 그렇기 때문에 어떻게 이런 ..

Infra/Elasticsearch 2022.10.13

[Elasticsearch] 엘라스틱서치 설치

엘라스틱 서치를 사용하는 방법은 여러가지가 있다. 단순히 공식 홈페이지나 Amazon에서 제공하는 Elastic Cloud를 사용하거나 특정 OS에 직접 오픈소스를 설치하여 사용하는 방식, 그리고 이전 글에서 안내했던 Docker를 사용한 방법이 있다. 여기서 설명할 방식은 서비스를 사용하는 것이 아닌 직접 오픈소스를 사용해 설치하고 구성하고 운영하는 방식을 정리하고자 한다. 우리에게 주어진 방식은 본인의 로컬에서 사용하는 방식과 AWS EC2와 같은 서버, 인스턴스에 설치하여 사용하는 방법이 있다. 전자는 공식 홈페이지의 윈도우 설치 파일을 다운로드 하고 zip파일을 압축 해제하여 사용하고 후자는 우리 프로젝트와 같이 특정 server에 설치하여 사용한다.(Docker 방식은 이전글을 참조하면 좋을 것..

Infra/Elasticsearch 2022.10.12

[Elasticsearch] Ubuntu, Docker-compose를 이용한 Elasticsearch 환경 구성

Ubuntu Docker 를 이용한 Elasticsearch 환경 구성 당신의 신문 프로젝트를 진행하면서 최초에는 Docker에 Elasticsearch 및 kibana 컨테이너를 올려 환경을 구성하려 했었고, docker-compose를 통하여 구글 클라우드 플랫폼에 e3.medium(2 core, 4gb ram)의 환경으로 es node 3개 및 kibana를 올렸습니다. 다만, 미숙한 실력과 운영상의 문제가 있다고 판단하였고, 빠른 프로젝트 진행을 위해 직접 ES를 설치하여 진행하는 방식으로 선택했습니다. 또한, 이 문서 마지막에서 보이듯 작은 인스턴스에 많은 양의 node를 올림으로서 Elasticsearch 사에서 추천하는 최소 권장 사양을 하드웨어 스펙이 제공하지 못하므로 서비스의 원활한 운영..

Infra/Elasticsearch 2022.10.12

[Elasticsearch] 엘라스틱서치의 기본

도큐먼트와 인덱스 엘라스틱 서치는 인덱스(index)와 도큐먼트(document)로 이루어져 있습니다. 엘라스틱서치를 이해하기 위해서는 이 두가지 개념이 무척이나 중요한데 인덱스는 데이터를 저장하는 논리적 구분자로, 도큐먼트가 실제 데이터를 JSON 형식으로 저장하게 됩니다. 보통 운영상에서 프로젝트를 구현할 때 하나의 클러스터를 생성하게 될것입니다. 그리고 그 클러스터 내부에는 데이터의 성격에 따라 여러 개의 인덱스가 들어있을 것입니다. 하나의 인덱스는 여러 개의 JSON 형식의 데이터를 가진 도큐먼트로 이루어져 있고, 도큐먼트(Document)는 복수의 필드를 가집니다. 도큐먼트(Document) 도큐먼트는 데이터가 저장되는 기본 단위로 JSON으로 저장됩니다. 다음과 같이 하나의 도큐먼트는 여러 필..

Infra/Elasticsearch 2022.10.11

[Elasticsearch] 엘라스틱서치의 역사

엘라스틱서치(Elasticsearch)가 첫 등장했을 때는 지금과 같은 형태의 빅데이터 파이프라인을 구성하는 플랫폼으로 성공하리라 예상하지 못했습니다. 엘라스틱서치가 탄생한 배경은 명확했는데 사이트 내에서 전문 검색(full text search) 기능을 제공하는 강력한 소프트웨어의 필요성입니다. 인터넷 검색 서비스는 계속 등장했지만 이 기능에 대한 구현체는 기업의 저작권이 있기에 공개하지 않았고, 일반적인 개발자가 검색에 대한 로직을 알기 쉽지 않았습니다. 따라서 검색 서비스를 구현해야하는 회사들은 벤더의 비싼 솔루션을 사용할 수 밖에 없었습니다. 루씬(Lucene)의 등장 루씬이라는 이름은 1999년 하둡(Hadoop)으로 유명해진 더그 커팅의 부인의 중간 이름에서 따왔습니다. 루씬은 더그 커팅의 다..

Infra/Elasticsearch 2022.10.10