Elasticsearch Service 소개

네이버 클라우드 Elasticsearch Service 설치형 상품의 개념과 기본 구조를 설명합니다.

Elasticsearch

Elasticsearch는 Apache Lucene을 기반으로 하는 오픈소스 RESTful 검색 및 분석 엔진입니다. Elasticsearch는 현재 가장 인기있는 검색엔진이며, 정형/비정형 데이터, 위치 정보, 메트릭 등 다양한 형태의 데이터를 저장하고 다양한 방법으로 검색할 수 있습니다.

Fulltext Search, 로그 분석, 보안, 비즈니스 분석 등 다양한 분야에 사용됩니다.

Kibana

Kibana는 Elasticsearch의 데이터를 분석하고 시각화하는 솔루션입니다.

네이버 클라우드 플랫폼의 Elasticsearch Service

네이버 클라우드 플랫폼의 "Elasticsearch Service"는 루씬 기반의 검색엔진인 오픈소스 Elasticsearch를 이용하고 있습니다. Apache 2.0 라이선스인 Elasticsearch & Kibana의 OSS 버전을 설치하고 설정하여 클러스터(Cluster) 형태로 제공합니다.

Elasticsearch Service 구성

Elasticsearch Service 클러스터는 1대의 매니저 노드와 3대 이상의 데이터 노드로 구성되어 총 최소 4대의 서버로 구성됩니다. 데이터 노드의 수는 설치 시 원하는 만큼 늘릴 수 있습니다.

  • 매니저 노드는 Elasticsearch Service 클러스터를 관리하며, 코디네이트 노드로 설정되어 데이터가 인입되는 통로로 사용됩니다.
    • 클러스터당 1개의 공인 IP 주소가 매니저 노드에 부여됩니다.
    • 네이버 클라우드 플랫폼 외부에서의 데이터 전송/검색은 공인 IP 주소로, 내부에서의 네이터 전송/검색은 매니저 노드의 사설/공인 IP 주소로 접근하여 이루어집니다.
    • Kibana는 매니저 노드에 설치되며, 외부에서 공인 IP 주소로 접근할 수 있습니다.
  • 데이터 노드는 실제 데이터가 저장되는 서버이며 코디네이트 노드로만 통신합니다. 모든 데이터는 이중화되어 저장되어, 1대의 서버에 장애가 발생해도 정상적으로 작동할 수 있습니다.

Elasticsearch Service 사용하기

Elasticsearch Service는 설치형 상품으로 별도의 이용 신청/해지가 없으며 클러스터 생성 시 계약이 이루어집니다.

클러스터가 삭제되면 계약이 종료됩니다.

Elasticsearch Service 클러스터 생성하기

Elasticsearch Service 메뉴에서 Cluster 생성 버튼을 클릭합니다.

Elasticsearch Service 클러스터 설정 정보 입력하기

① 클러스터 이름을 입력합니다.

② Elasticsearch 버전을 선택합니다.

③ Elasticsearch 버전을 선택하는 화면입니다.

④ ACG 정보입니다.

  • Elasticsearch Service에서 사용되는 ACG는 elasticsearch-클러스터 이름으로 자동으로 생성됩니다.

⑤ Elasticsearch HTTP Port를 입력합니다.

  • 기본 설정은 9200입니다.

⑥ Kibana 접속 Port를 입력합니다.

  • 기본 설정은 5601입니다.

⑦ Kibana에 접속하기 위한 ID를 입력합니다.

⑧ Kibana 접속용 Password를 입력합니다.

⑨ Kibana 접속용 Password를 한 번 더 입력합니다.

⑩ 노드 설정 정보를 입력하기 위해 다음을 클릭합니다.

Elasticsearch Service 노드 설정하기

① OS를 선택합니다.

② Zone를 선택합니다.

③ Manager node 개수의 정보입니다.

  • 1개로, 값을 변경할 수 없습니다.

④ 매니저 노드 서버 타입을 선택합니다.

  • 선택 가능한 서버 타입이 나타납니다.

⑤ 데이터 노드 개수를 입력합니다.

  • 최소 3대부터 최대 10대까지 생성이 가능합니다.
  • 기본 설정은 3대입니다.

⑥ 데이터 노드 서버 타입을 선택합니다.

  • 선택 가능한 서버 타입이 나타납니다.

⑦ 데이터 노드 스토리지 용량입니다.

  • OS 스토리지가 아닌 별도의 BlockStorage를 사용합니다.
  • BlockStorage는 계정당 네이버 클라우드 플랫폼 전체 서비스에서 최대 2000GB까지 사용 가능합니다.

⑧ 선택 가능한 매니저 노드 서버 타입입니다.

  • 서버 타입은 변경될 수 있습니다.

⑨ 선택 가능한 데이터 노드 서버 타입입니다.

  • 서버 타입은 변경될 수 있습니다.

⑩ 인증키 설정을 위해 다음을 클릭합니다.

인증키 설정하기

인증키 설정 화면입니다.

① 보유하고 있는 인증키를 선택합니다.

② 새로운 인증키를 생성해서 사용할 경우 새로운 인증키를 생성합니다.

③ 최종 정보를 확인하기 위해서 다음을 클릭합니다.

입력 정보 최종 확인하기

① 입력된 정보가 맞는지 확인합니다.

② 클러스터 생성을 위해 클러스터 생성 버튼을 클릭합니다.

Elasticsearch Service 클러스터 생성 확인

① Elasticsearch Service 클러스터 생성이 시작되었습니다.

  • 생성 시간은 수 분에서 수십 분 정도 소요될 수 있습니다.

Elasticsearch Service 클러스터 관리하기

생성된 Elasticsearch Service의 삭제, 노드추가, kibana 접속, kibana 접속 password 변경, 서버 접근을 위한 인증키 관리 기능입니다.

생성된 클러스터 확인

① 클러스터 생성이 완료되면 클러스터 요약 정보가 나타나며 해당 클러스터의 요약정보를 선택하면 하단의 상세 정보가 나타납니다.

② 클러스터의 상세 정보 정보를 확인할 수 있습니다.

  • ACG 정보와 Manager node 서버로의 SSH 접속 방법, Data Node List를 링크를 통해 추가로 확인할 수 있습니다.
  • 클러스터가 선택되면 상단의 메뉴 삭제/클러스터 관리/서버 접속 관리 메뉴가 활성화됩니다.

③ 선택 클러스터 삭제 메뉴입니다.

④ 클러스터 관리 메뉴입니다.

⑤ 서버 접속 메뉴입니다.

클러스터 삭제 메뉴

① 클러스터를 선택 후 삭제메뉴를 선택하면 선택된 클러스터 리스트를 확인하고, 최종 삭제를 진행할지 여부를 선택합니다.

② 실제 클러스터를 삭제할지 여부를 선택합니다.

클러스터 관리 메뉴

① 클러스터를 선택 후 클러스터관리 메뉴를 선택 시 데이터 노드 추가, Kibana접속, Kibana 접속 패스워드 초기화 메뉴가 나타납니다.

클러스터 관리 > 데이터 노드 추가

데이터 노드 추가 메뉴를 선택하면 노드를 추가할 수 있는 화면이 나타납니다.

② 최초 현재 클러스터의 데이터 노드가 나타나며 최대 10대까지 증설을 선택할 수 있습니다.

  • 예: 추가할 노드 수 10 선택 시 기존 3대에 7대의 데이터 노드가 추가됩니다.

③ 데이터 노드 증설을 실행합니다.

④ 노드 증설이 시작되면 서버 생성이 진행되며 서버 상태가 변경중으로 표시됩니다.

⑤ 서버 증설이 완료되면 Elasticsearch 설치 및 클러스터 등록을 위해 클러스터 상태가 변경중으로 바뀝니다.

  • Elasticsearch 설치 및 재시작을 위해 Elasticsearch Service 클러스터로의 접속이 차단됩니다.

클러스터 관리 > Kibana 접속

클러스터 관리 > Kibana 접속을 선택하면 Kibana 접속을 위한 사전 작업 팝업이 나타납니다.

Kibana 접속을 위한 사전 팝업에서 Kibana 바로가기를 선택합니다.

③ 최초 생성 시 클러스터 설정 단계에서 입력한 kibana 접속 IDPASSWORD를 입력합니다.

④ 로그인하면 최초 접속 시 Welcome 화면이 나타납니다.

Kibana 사용하기

① 로그인 이후 처음 나오는 Kibana 화면입니다.

  • 초기에는 데이터가 없으므로, 설명을 위해 elastic 사에서 제공하는 sample 데이터를 사용하기 위해 Try our sample data를 선택합니다.

② 샘플 데이터 종류를 선택합니다.

  • 설명을 위해 Sample web logs를 선택했습니다.

③ Kibana 좌측 메뉴의 Discover 메뉴입니다.

  • 데이터를 검색할 때 사용합니다.

Dashboard 메뉴입니다. 다양한 시각화 도구와 대시보드를 지원합니다.

  • 샘플로 web log용 대시보드가 나타납니다.

클러스터 관리 > Kibana 접속 패스워드 초기화

① Kibana 접속용 PASSWORD를 잃어 버렸을 경우에 PASSWORD를 초기화합니다.

② 새로운 PASSWORD를 입력 후 확인을 선택하면 새로운 PASSWORD로 Kibana에 접속할 수 있습니다. 적용시간은 수 분가량 소요될 수 있습니다.

서버 접속 관리

서버에 접속하기 위한 인증키 관리를 위한 메뉴입니다.

서버 접속 관리 > 클러스터 직접 접속 인증키 변경

서버 접속 관리 > 클러스터 직접 접속 인증키 변경 메뉴를 선택합니다.

② 관리자 비밀번호를 입력합니다.

인증메일발송 버튼을 클릭 후 이메일을 통해 인증번호를 확인 후 인증합니다.

④ 보유하고 있는 인증키를 이용 중에서 선택해서 사용합니다.

⑤ 새로운 인증키를 생성해서 변경합니다.

서버 접속 관리 > 인증키 관리

① 보유하고 있는 전체 인증서를 확인할 수 있으며, Elasticsearch Service에서 사용 중이 아닌 인증키를 삭제할 수 있습니다.

② 삭제 버튼을 클릭한 후 화면에서 없어진 인증키를 삭제합니다. 확인 버튼을 누르지 않으면 인증키가 삭제되지 않습니다.

대시보드

생성된 Elasticsearch Service 클러스터들의 정보와 각 클러스터의 상세 상태 및 인덱스, document, disk usage, health/status 등과 같은 상세 정보를 확인할 수 있습니다.

클러스터 대시보드

① 좌측의 Dashboard 메뉴를 선택합니다.

② 현재 생성되어 있는 클러스터 리스트 중에서 상세정보를 확인할 클러스터를 선택합니다.

클러스터 상세 대시보드

① 선택한 클러스터의 노드 리스트입니다.

② 클러스터의 전반적인 상태 정보입니다.

③ 클러스터 인덱스 정보입니다.

Elasticsearch Service 활용하기

Elasticsearch에 데이터를 저장하고 검색하는 방법을 알아봅니다.

Elasticsearch에 데이터 저장하기

① 좌측의 Dev Tools 메뉴를 선택합니다.

Console 화면에 데이터를 입력합니다.

③ 입력한 데이터를 Elasticsearch에 저장하기 위해 버튼을 클릭하거나 CTRL+ENTER 키를 누릅니다.

④ 입력된 결과가 나타납니다.

Elasticsearch에 저장된 데이터 조회하기

① 저장된 데이터를 검색하기 위해 SEARCH를 선택합니다.

② 실행합니다.

③ 조회된 결과가 나타납니다.

Kibana 활용하기

Management

① Elasticsearch에 저장된 데이터를 Kibana에서 확인하기 위해 Management를 선택합니다.

② Index Patterns를 선택합니다.

Create index pattern

Create index pattern을 선택합니다.

② Kibana에서 확인하기 위한 인덱스 패턴을 입력합니다. 위에서 입력한 데이터를 확인하기 위해 test*를 입력합니다.

③ 입력한 pattern에 해당하는 인덱스가 나타납니다.

Next step을 클릭합니다.

Create index pattern (2)

Configure settings 내용을 확인합니다.

  • 날짜/시간 데이터가 있을 경우 해당 Field를 선택합니다.

Create index pattern을 클릭하면 Kibana에서 확인할 수 있는 index pattern이 생성됩니다.

Index pattern & Fields

① 생성된 test* index pattern에 대한 정보를 확인합니다.

Select Index pattern

① 생성된 index pattern을 이용하기 위해 Discover 메뉴를 선택합니다.

② 바로 옆 박스 부분을 선택하면, 등록된 index pattern들이 나타납니다.

test*를 선택합니다.

④ 선택된 index pattern에 포함된 index들의 데이터가 검색됩니다.

Search Field

① Kibana 검색창을 이용하기 위해 위에서 입력했던 name: yuri를 입력하고 ENTER 키를 눌러 실행합니다.

name: yuri로 검색된 결과를 확인합니다.

Notification

① 클러스터 생성, 노드 추가 등 시간이 걸리는 작업이 진행될 경우 등 알림 정보가 있을 때 우측 상단 종 모양의 Notification에 붉은 글씨의 숫자가 나타납니다.

② 종 부분을 클릭하면 알림 내용을 확인할 수 있습니다.

SSH 서버 접속하기

SSH를 사용하여 매니저 노드 연결

SSH를 사용하여 Elasticsearch Service 클러스터 내에 매니저 노드에 연결하는 방법에 대한 설명입니다.

사전 작업

SSH 접속을 위한 정보를 확인합니다.

① 매니저 노드의 AGC를 확인합니다. ACG 설정은 ACG 바로가기 메뉴를 통해 변경할 수 있습니다.

  • Elasticsearch Service는 기본적으로 꼭 필요한 포트 외엔 모두 차단하도록 설정되어 있습니다.
  • SSH 연결을 위해서는 해당 클러스터에 적용된 ACG에 22번 포트가 열려 있어야 합니다.

② 접속 가이드를 확인합니다.

③ 매니저 노드의 공인 IP를 확인합니다.

④ 인증키를 확인합니다. 반드시 인증키가 있어야만 서버에 접속을 할 수 있습니다.

ACG 설정하기

① SSH 접속을 위한 ACG 적용 할 ACG를 선택합니다. 그림에서는 매니저 노드의 AGG를 선택 했습니다.

ACG 설정을 클릭하여 규칙 설정 화면으로 이동합니다.

해당 ACG에 추가가 필요한 규칙들을 입력합니다.

① 프로토콜을 선택합니다.

② 접근 소스 정보를 입력합니다.

  • myip 버튼을 클릭해서 자신의 공인 IP 주소를 확인하고 해당 IP 주소를 접근 소스에 등록합니다.

주의

모든 IP 주소 대역을 포함한 인터넷 전체를 대상으로(IP 주소: 0.0.0.0/0) 접근 소스를 허용하는 경우, 보안상 매우 취약하여 외부로부터 공격이 들어와 클러스터에서 수행 중인 작업에 영향을 미칠 수 있으니 주의가 필요합니다.

③ 허용할 포트를 등록합니다.

  • 특정 포트나 범위로 등록이 가능합니다.

추가를 클릭하면 아래 리스트에 입력한 정보가 보입니다.

⑤ 입력한 규칙을 한번 더 확인한 후 적용을 클릭하면 해당 규칙이 ACG에 적용됩니다.

주의

기존에 등록되어 있는 규칙은 Elasticsearch Service 관리를 위해 필요한 ACG 규칙입니다.

사용자가 임의로 삭제하거나 수정할 경우 클러스터 동작에 영향을 미칠 수 있으니 주의해 주세요(ACG 사용 가이드 참고).

매니저 노드 SSH 접속

공인 IP 주소가 할당된 매니저 노드에만 외부에서 SSH 직접 접속이 가능합니다.

[Case 1] macOS 또는 Linux

macORlinux

① 터미널 창을 엽니다.

  • macOS X: Application > Utilities > Terminal
  • Linux: Application > Accessories > Terminal

② .pem 파일이 있는 경로로 이동합니다.

cd /path

③ chmod 명령을 사용하여 프라이빗 키 파일을 공개적으로 볼 수 없도록 변경합니다.

chmod 400 key.pem

④ 매니저 노드에 연결하기 위해 아래 명령어를 입력합니다. key file은 Elasticsearch Service 클러스터 생성 시 선택한 .pem 파일명입니다.

Public 도메인은 Elasticsearch Service 콘솔 > 상세보기 > Public IP 항목에서 확인할 수 있습니다.

ssh -i /path/(key file).pem sshuser@(public_ip)

⑤ 보안 경고가 나오면 yes를 입력하면 매니저 노드에 접속됩니다.

[Case 2] Windows

Windows

사전 작업

PuTTY에서는 Elasticsearch Service에서 생성된 프라이빗 키 형식(.pem)을 기본적으로 지원하지 않습니다.

PuTTY에서 제공하는 PuTTYgen이라는 도구를 사용하면 키를 PuTTY에서 사용하는 형식(.ppk)으로 변환할 수 있습니다.

PuTTY를 사용하여 매니저 노드에 연결하기 전에 프라이빗 키를 이 형식(.ppk)으로 변환해야 합니다.

PuTTYgen을 시작합니다(시작 메뉴에서 All Programs > PuTTY > PuTTYgen).

Type of key to generate에서 RSA를 선택합니다.

Load를 클릭하고 클러스터 생성할 때 지정한 인증키에 대한 .pem 파일을 선택한 다음 Open을 클릭합니다. OK를 클릭하여 확인 대화 상자를 닫습니다.

.pem 파일을 찾으려면 모든 유형의 파일을 표시하는 옵션을 선택합니다.

.pem 파일은 현재 클러스터에 적용되어 있는 인증키의 파일명이며 사용자 로컬 PC에 해당 .pem 파일이 저장되어 있어야 합니다.

.pem 파일을 분실했을 경우 콘솔 > 서버 접속 관리 > 클러스터 직접 접속 인증키 관리 메뉴에서 접속하는 인증키를 변경할 수 있습니다.

.ppk 파일 저장하기

① 정상적으로 인증키가 Load 되면 인증키 정보를 확인합니다.

Save private key를 선택하여 PuTTY에서 사용할 수 있는 형식으로 키를 저장합니다.

③ PuTTYgen에서 암호 없이 키 저장에 대한 경고가 표시되면 Yes를 선택합니다.

④ 기존 생성한 인증키와 동일한 이름을 지정합니다. PuTTY가 자동으로 .ppk 파일 확장자를 추가합니다.

서버 접속

Category 창에서 Connection, SSH를 확장한 다음 Auth를 선택합니다.

Browse를 클릭합니다. 1) .pem 파일을 변환하여 생성한 .ppk 파일을 선택한 다음 Open을 클릭합니다. 2) Open을 클릭하여 PuTTY 세션을 선택합니다.

③ PuTTY에서 Category 창에서 Session을 선택합니다.

④ 서버 접속을 위한 정보를 입력합니다.

sshuser@공인IP

Connection typeSSH를 선택하고, Port22를 입력합니다.

Open을 선택합니다.

⑥ 매니저 서버에 접속되었습니다.

""에 대한 건이 검색되었습니다.

    ""에 대한 검색 결과가 없습니다.

    처리중...