AWS

EC2에 ElasticSearch 구축하기!

pushpush 2024. 1. 6. 04:28

인터넷에 나와있는 대로 구축을 해보니까 오류가 뜨고 페이지가 안 열려서.. 제가 성공한 방식을 정리해보겠습니다.

0. EC2

현재 테스트용으로 개발을 하기 때문에 큰 스펙이 필요 없어 swap memory를 통해 메모리 확보를 했습니다.

volume은 8GB로 사용했기 때문에 /dev/root에 7.6GB로 설정되어있는 모습을 볼 수 있습니다.

$ sudo dd if=/dev/zero of=/swapfile bs=128M count=16

제가 처음엔 총 4GB의 램이 필요해서 count=32로 했는데 아래의 설치 과정중에 "No space left on device" 오류가 떠서 왜그런가 GPT에게 물어봤는데 제가 추가로 4GB를 할당해줬더라구요..? 그래서 램 6GB Volume 4GB가 된 상황...

그래서 다시 count를 16으로 바꿔서 램 4GB, Volume 6GB로 진행했습니다!

이후에도

sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

이후 이 코드를 통해 권한 업데이트, swapfile 설정을 해준 후,

sudo vi /etc/fstab

부팅 후 swapfile을 실행할 수 있게 아래와 같이 아래의 코드를 추가해줍니다.

/swapfile swap swap defaults 0 0

이후, 이따가 설치할 Kibana를 외부에서 접근하기 위해서는 인바운드 설정이 필요합니다.

 

VPC > 보안그룹 에 들어가 EC2에 설정되어 있는 보안그룹을 선택해준 뒤, 인바운드 규칙을 추가해줍니다.

 

1. Docker 설치

$ sudo apt-get update

$ sudo apt-get install ca-certificates curl gnupg

$ sudo install -m 0755 -d /etc/apt/keyrings

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

$ sudo chmod a+r /etc/apt/keyrings/docker.gpg

$ echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

$ sudo apt-get update

$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

$ sudo docker run hello-world

위의 코드가 정상적으로 실행된다면 Docker 설치는 끝!

 

2. ElasticSearch 설치

$ sudo docker pull docker.elastic.co/elasticsearch/elasticsearch:7.10.0

$ sudo docker volume create elasticsearch-volume

$ sudo docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --name elasticsearch docker.elastic.co/elasticsearch/elasticsearch:7.10.0

// 컨테이너 실행 확인
$ sudo docker ps

3. Kibana 설치

$ sudo docker pull docker.elastic.co/kibana/kibana:7.10.0

$ sudo docker run -d --link elasticsearch:elasticsearch -p 5601:5601 --name kibana docker.elastic.co/kibana/kibana:7.10.0

$ sudo docker ps

 

이후 [EC2 퍼블릭 주소]:5601로 접속을 하면 Kibana 화면이 뜨는 모습을 볼 수 있습니다 :D

설치 후 사용량은 이정도로 바뀌었네요!

 

참고 자료

https://docs.docker.com/engine/install/ubuntu/

 

Install Docker Engine on Ubuntu

Jumpstart your client-side server applications with Docker Engine on Ubuntu. This guide details prerequisites and multiple methods to install Docker Engine on Ubuntu.

docs.docker.com

https://velog.io/@cbkyeong/ElasticsearchAWS-EC2%EC%97%90-Elasticsearch-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0

 

[Elasticsearch]AWS EC2에 Elasticsearch/Kibana 설치하기

EC2에 ES, Kibana 설치하긔

velog.io

https://velog.io/@seyoung755/AWS-EC2%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%B4-%EB%B0%B0%ED%8F%AC%ED%95%B4%EB%B3%B4%EC%9E%90-6-Swap-area-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0

 

AWS EC2를 이용해 배포해보자 (6) - Swap area 설정하기

우리의 프로젝트를 성공적으로 배포했지만, 프리티어의 메모리 1기가로는 벅찬 느낌이 있습니다. 부족한 메모리를 커버해보기 위해 가상 메모리 기법을 떠올려봅니다. 우리의 하드 디스크 일부

velog.io