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
복사