Blog

[Spring][258] AWS EC2 ubuntu 환경의 Elasticsearch 구축

Author
Summary
Category
Project
Tags
Project
Favorite
Memory Date
2023/11/08
Cross Reference Study
Related Media
Related Thought
Related Lessons
tag
기능 구현
날짜
작성자
진행상황
진행 전
태그구분
6 more properties
📌
AWS EC2에 Elasticsearch 설치하기
Elasticsearch 전용 EC2 인스턴스 생성합니다. 구글링을 통해 기본적으로 프리티어에서 사용되는 t1.micro로는 문제가 발생하는 것을 확인했고, t2.medium(2core CPU / 4GB RAM)을 최초 구성하는 것이 안정적인 테스트가 될 것으로 판단되었습니다.
📌
인스턴스에 접속
기본적으로 AWS 서비스의 키페어를 생성하고 로컬에 다운 받는 과정은 생략했습니다. 결과적으로 {keyname}.pem 이라는 확장자의 사용자 키를 로컬에 받을 수 있고 이것을 통해서 EC2를 접속할 수 있는 권한을 얻게 됩니다. FTP 접속에서도 필요한 인증 방법입니다.
AWS 콘솔에서 간단히 브라우저에서도 콘솔로 EC2 내부에 접근 할 수도 있습니다. SSH 클라이언트에서 제공해주는 CLI 명령어를 통해서 로컬 터미널을 통해 EC2로 접근했습니다.
📌
Elasticsearch 설치를 위한 JDK 설치
EC2 인스턴스를 초기 생성했으니 패키지매니저를 업데이트 합니다.
sudo apt update
Shell
복사
Elasticsearch에는 JDK가 필요합니다. 우선 Java부터 설치합니다. 프로젝트에서는 JDK17버전을 사용하고 있으므로 openjdk-17 버전을 설치해줍니다.
sudo apt install openjdk-17-jdk
Shell
복사
정상적으로 JDK가 설치 완료되면 버전을 확인해서 설치 상태를 확인합니다.
java --version javac --version
Shell
복사
📌
Elasticsearch 설치
우선 로컬에서 테스트되었고 AWS EC2에 설치할 버전은 Elasticsearch 7.x버전입니다.
Elasticsearch 설치에 앞서 wget을 통해서 GPG키를 받아와야 합니다.
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Shell
복사
apt-get update 할 때마다 자동으로 업데이트가 되도록 elastic 서버를 저장소에 저장해놓습니다.
sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'
Shell
복사
Elasticsearch를 설치합니다.
sudo apt-get update sudo apt-get install elasticsearch
Shell
복사
Elasticsearch와 함께 사용되는 Logstash, Kibana를 설치해줍니다.
sudo apt-get install logstash && sudo apt-get install kibana
Shell
복사
추가적으로 터미널 자체에서 서버와 통신하는지 확인할 수 있는 net-tools 패키지, url 서버와 통신할 수 있는 curl 패키지 설치를 진행합니다.
sudo apt install net-tools
Shell
복사
sudo apt install curl
Shell
복사
이제 ELK 설치가 완료되었으며 버전 확인을 통해서 설치 상태를 확인합니다.
dpkg -l elasticsearch
Shell
복사
dpkg -l logstash
Shell
복사
dpkg -l kibana
Shell
복사
📌
Elasticsearch 서버 실행
ELK 스택 모두를 동시에 실행시켜봅니다. 여기서 인스턴스 서버 스펙이 t1.micro 처럼 프리티어 기본 사양일 경우에 메모리 관련 오류가 발생 할 수 있습니다. 이를 방지하기 위하여 기본적으로 t3.medium(2core/4gb)를 선택했던 이유가 여기있습니다.
sudo service elasticsearch start && sudo service logstash start && sudo service kibana start
Shell
복사
위 명령어로 서버를 실행하면 아무 로그가 나타나지 않지만 실행 상태를 확인하기 위해서 서비스 상태를 체크합니다.
우선 curl을 이용해서 URL로 응답을 확인하는 방법입니다.
curl -X GET 'localhost:9200'
Shell
복사
아래는 서비스 실행 상태를 직접 확인 할 수 있는 CLI 커맨드들입니다.
sudo -i service elasticsearch status
Shell
복사
sudo -i service logstash status
Shell
복사
sudo -i service kibana status
Shell
복사
서버 종료는 다음과 같습니다.
sudo service elasticsearch stop && sudo service logstash stop && sudo service kibana stop
Shell
복사