AWS EC2에 Elasticsearch 설치하기

망7H·2021년 4월 4일
1
post-custom-banner

1. AWS EC2에 인스턴스 생성하고 접근하기

1) AWS EC2 인스턴스 생성하기

AWS EC2 인스턴스 생성하고 접근하기
이전에 작성한 글이 있으니 인스턴스 생성은 위 링크를 참고해주세요.

2) 보안그룹 인바운드 규칙 수정

전혀 다른 서버에서 지금 설치하려는 Elasticsearch 서버에 명령을 날릴 수 있도록 9200 포트를 추가해주도록 합니다.

2. EC2에 Elasticsearch 설치하기

1) Java 7 버전 이상 설치

sudo yum install -y java-1.8.0-openjdk-devel.x86_64 명령으로 java 8을 설치합니다.
설치가 완료되었다면 java -version 명령으로 현재 설치된 java 버전을 확인합니다.

2) Elasticsearch 설치를 위한 repo 파일 생성

vi /etc/yum.repos.d/elasticsearch.repo 명령으로 repo 파일을 생성하고, 아래와 같은 내용을 입력하고 저장합니다.
(※ Elasticsearch 7.x 버전 기준)

[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

3) Elasticsearch 설치

yum install -y elasticsearch 명령으로 최신버전을 설치할 수 있습니다.
만약, 설치를 원하는 버전이 있다면 아래와 같이 명령을 입력하시면 됩니다.
ex) 7.6.0 버전을 설치하고 싶은 경우 : yum install -y elasticsearch-7.6.0

4) Elasticsearch 실행 및 설치 확인

sudo service elasticsearch start 명령으로 실행하고 잠시 기다린 뒤,
curl -X GET 'localhost:9200' 명령으로 Elasticsearch가 정상적으로 설치되었는지 CURL을 사용하여 확인해본다. 이때, 아래의 그림과 같은 응답이 오면 정상적으로 설치되고 실행된 것이다.

설치된 elasticsearch 관련 경로들

추천! 관련 경로는 한번씩 들어가보는게 좋습니다.

  • home dir: /usr/share/elasticsearch
  • config dir : /etc/elasticsearch
  • data dir : /var/lib/elasticsearch
  • log dir : /var/log/elasticsearch

3. Elasticsearch 외부에서 접근해보기

여기까지 설치한 Elasticsearch는 현재 설치된 서버에서만 접근이 가능합니다.
이제, 외부에서 Elasticsearch에 접근할 수 있도록 설정 파일(/etc/elasticsearch/elasticsearch.yml)을 수정해보겠습니다.

1) 아무 설정도 안하고 접근하면?

브라우저에 http://3.35.136.206:9200와 같이 입력하였지만, 아래와 같이 연결되지 않았다.
(여기서 3.35.136.206은 Elasticsearch가 설치된 필자의 AWS EC2 인스턴스 public ip이다고, 9200은 elasticsearch가 사용하는 포트번호입니다.)

2) 9200 포트 상태 확인

netstat -an | grep 9200 명령을 사용해보니 현재 로컬 서버에서만 통신이 가능하도록 되어 있습니다.

3) 설정파일 수정

vi /etc/elasticsearch/elasticsearch.yml 명령으로 아래와 같이 일부를 수정합니다.

network.host: 0.0.0.0
cluster.initial_master_nodes: ["node-1", "node-2"]

4) Elasticsearch 재시작

설정파일을 변경한 경우에 서비스를 재시작하는 것을 기억합시다.
sudo service elasticsearch restart

5) 외부에서 Elasticsearch 접근해보기

아래와 같이 브라우저에서 이제 접근이 가능하다.





다음에는 이어서 LogstashKibana를 설치하는 글을 작성할까 합니다.
Logstash 같은 경우에는 데이터를 수집하고 Elasticsearch에 적재하는 역할을 하다보니 이런 상황을 가정해서 진행해볼까 합니다.

Logstash가 데이터 수집을 위해 빠르게 Postgresql에 접근하려고 합니다.
현재, EC2에는 Postgresql이 설치되어 있는 서버(Master, Slave)가 2대 있습니다.
이때, MasterSlave는 이중화되어 있어서 실제 DB에 반영된 안전한 데이터로만 데이터 수집을 할 생각이니 Slave로 설치되어 있는 PostgresqlLogstash를 설치하겠습니다.
Logstash를 설치한 후, Elasticsearch이 설치되어 있는 서버에 데이터를 넣어주는 상황을 가정하고 설치해보기 위해, AWS EC2에서 Postgresql 가지고 놀기Postgresql 이중화하기까지 따라 해보시는 것도 좋을 것 같습니다.

해당 글 작성에 참고한 링크

https://hello-bryan.tistory.com/142
https://msyu1207.tistory.com/entry/Elasticsearch-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%99%B8%EB%B6%80-%ED%97%88%EC%9A%A9

profile
망한 개발자의 개발 기록입니다. 저를 타산지석으로 삼으시고 공부하세요.
post-custom-banner

0개의 댓글