본문 바로가기

TIL

[TIL] 2023-10-21

오늘은 어노테이션이나 Product를 JPA에 연동시키지 않고 따로 썼을 경우 효율이 달라지는지 체크하기 위해서 별도의 Repository를 만들어서 여러 가지 변화를 주면서 Elasticsearch 효율의 증가를 고려했다.

 

모든 테스트는 1000명의 부하를 줄 때로 가정하고 진행했다.

기존) 평균 약 240ms

Case 1) 일단 새 Repository를 파서 JPA와 연결을 끊은 경우

평균 약 240ms  - 변화 없음

Case 2) 생성을 위해 달아둔

@GeneratedValue(strategy = GenerationType.IDENTITY)

주석처리

평균 약 240ms - 변화 없음

Case 3) Page<Product>로 변환

Stream<Product> -> Page<Product>

평균 7ms 매우 빠른 검색 속도를 확인할 수 있었다 뿐만 아니라 기존에 Stream으로 반환 시 PageImpl을 통해 Page로 변환하고 리턴해야 해서 리소스를 많이 잡아먹는 문제가 발생했는데, 해당 문제도 발생하지 않았다. 

 

Ec2 환경에서 ElasticSearch도 구현해보았다.

프리티어로 제공되는 Ec2의 경우에 Ram 가용량 1GB라 서비스를 돌리지 못하고 종료되어서 16GB짜리 EC2 t2.xlarge에 구현했다.

 

인바운드 규칙에 TCP 9200번 포트를 추가해주고, elasticsearch.yml에서 server.host: 0.0.0.0으로 변경하고, elasticsearch 8.x 버전에 추가된 여러 보안 옵션들을 false로 처리한 상태에서 서버를 돌리고, 로컬 피씨와 팀원들의 피씨에서 접속할 수 있는 것을 확인했다.

 

추후에 현재 로컬에 있는 ElasticSearchData를 EC2로 업로드 하고 로컬 ES에 연결된 spring 서버의 내용을 EC2로 변경 후 응답속도를 확인할 예정이다.

 

EC2 에 ES 설치를 위해 사용한 명령어들

# 업데이트
sudo apt-get update 
sudo apt-get upgrade -y

## 업데이트 완료 ##

## 편의를 위해 네트워크 명령줄 도구 설치 ##
sudo apt-get install net-tools

sudo service elasticsearch start
## elasticsearch가 java 기반이므로 java 설치 ##
# java 설치
sudo apt-get install openjdk-11-jdk -y

# 환경 변수 설정
vim ~/.bashrc

# 맨 아래 삽입
export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))
export PATH=$PATH:$JAVA_HOME/bin

# 변경사항 적용
source ~/.bashrc

# 적용 확인 -> /usr/lib/jvm/java-11-openjdk-amd64 출력시 정상
echo $JAVA_HOME

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.10.4-amd64.deb

wget https://artifacts.elastic.co/downloads/kibana/kibana-8.10.4-amd64.deb

wget https://artifacts.elastic.co/downloads/logstash/logstash-8.10.4-amd64.deb


## ELK 설치 ##
# elastic search
sudo dpkg -i elasticsearch-8.10.4-amd64.deb

# 키바나
sudo dpkg -i kibana-8.10.4-amd64.deb

# logstash
sudo dpkg -i logstash-8.10.4-amd64.deb

 

service elasticsearch start

service elasticsearch status

service elasticsearch restart

 

해당 명령어들 중 키바나와 로그스태쉬 부분은 아직 필요가 없다고 판단하고 설치하지 않았다. 만약 추후에 필요시 설치후 서비스 작동 예정이다.

'TIL' 카테고리의 다른 글

[TIL] 2023-10-23  (0) 2023.10.24
[TIL] 2023-10-20  (0) 2023.10.21
[TIL] 2023-10-19  (0) 2023.10.19
[TIL]2023-10-18  (0) 2023.10.18
[TIL]2023-09-27  (0) 2023.09.27