만쥬의 개발일기
article thumbnail
[Elasticsearch] - Elasticsearch의 각 노드 별 적정 메모리 할당
🛠️TOOL/🔭Elasticsearch 2024. 3. 27. 17:51

Elasticsearch의 램 부족 현상 엘라스틱 서치를 멀티 노드 클러스터 환경에서 연습하던 중, 노드가 error code 137과 함께 죽는 현상이 종종 발생했습니다. 이는 메모리 부족과 관련된 이슈였는데, 사용 중인 랩탑의 총 메모리가 8GB에 불과해 노드 3개짜리 클러스터를 도커 컨테이너로 구성할 때 각 노드에 단 1GB씩을 할당해줘서 발생한 것이었습니다. (기존 아키텍쳐 그림입니다) 엘라스틱 서치를 사용할 때는 연습환경일지라도 한 노드 당 최소 4GB 이상씩을 할당해줘야하고, 물론 빠른 작업을 제공하기 위해서는 메모리는 많으면 많을 수록 좋습니다. 만약 메모리가 남는다면, 특히 인덱싱과 CRUD, 검색 및 집계 등을 처리하는 데이터 노드에 더 많은 메모리를 할당해주는 것이 일반적으로 좋습니다...

article thumbnail
[Elasticsearch] - 실제 배포 환경과 동일하게 멀티 노드 클러스터 구축하기
🛠️TOOL/🔭Elasticsearch 2024. 3. 27. 17:48

엘라스틱서치 노드 & 키바나 & 로그스태시 서버를 각각 구축했다면, 이제 각각의 yml 파일들을 수정해주어야 합니다. 최종 목표 아키텍쳐는 다음 그림처럼 각 서버당 도커 컨테이너를 띄우고, 세 개의 서버에서는 엘라스틱 서치를 , 한 개의 서버에서는 키바나를 띄우는 멀티 노드 클러스터를 구축하는 것입니다. 엘라스틱 서치와 키바나 설치 과정은 이전 포스팅을 참고해주세요. [ELK] - Elasticsearch & Kibana 8.12.2 설치 (with docker,WSL2) 이번 포스팅에서는 엘라스틱 서치와 키바나 8.12.2 버전을 설치하고, 단일 노드와 멀티 노드 클러스터 환경을 각각 구축하는 방법에 대해 알아보겠습니다. 만약 서버(컴퓨팅 자원)이 여러 대라면 kangmanjoo.tistory.com ..

[Docker] - 빈 도커 이미지 기본 세팅 (Ubuntu용)
🛠️TOOL/🐳Docker 2024. 3. 26. 17:45

도커 이미지를 받으면 보통 안에 아무런 툴도 깔려있지 않아 굉장히 불편하다. 할 때마다 찾기가 귀찮아서 한 번에 정리해놓겠다. 우선 관리자 모드로 들어가기 위해 다음 옵션으로 bash에 접속해준다. docker exec -u 0 -it {컨테이너명} /bin/bash 그리고 다음 입력으로 sudo, vim, net-tools(ifconfig 등) , iputils-ping(ping 용) 을 설치해준다. 이 명령어는 도커가 아닌 데비안 계열 리눅스 VM을 처음 설치할 때도 유용하게 쓰일 수 있다. apt-get update && apt-get install -y sudo && sudo apt-get install vim && sudo apt install net-tools && sudo apt-get in..

article thumbnail
[ELK] - Elasticsearch & Kibana 8.12.2 설치 (with docker,WSL2)
🛠️TOOL/🔭Elasticsearch 2024. 3. 25. 15:58

이번 포스팅에서는 엘라스틱 서치와 키바나 8.12.2 버전을 설치하고, 단일 노드와 멀티 노드 클러스터 환경을 각각 구축하는 방법에 대해 알아보겠습니다. 만약 서버(컴퓨팅 자원)이 여러 대라면 멀티 노드 클러스터 구축 시 단일 노드를 각 서버마다 구축해주면 되고, 서버가 한 대로 한정적이라면 멀티 노드 클러스터를 구축해주면 됩니다. 개발환경 ubuntu 20.04 java 17 docker 26.0.0 elastic search 8.12.2 🚨주의사항🚨 엘라스틱 서치는 일정량 이상의 메모리가 필요합니다. 노드당 최소 4GB를 할당해주는 것이 바람직하며, 만약 1GB등 매우 낮은 메모리를 할당해준다면 작동 도중 137번 error code와 함께 프로그램이 중단될 수 있습니다. 따라서 충분한 컴퓨팅 자원을..

article thumbnail
[intellij] - API 요청 IP 로그 남길 시 IPv4 설정
🛠️TOOL 2024. 2. 14. 17:11

서버로 API 요청을 보내는 IP들의 로그를 저장하고 싶은데, IP들이 IPv6로 찍혀 보기 불편한 경험이 있었다. 이를 intellij에서 다음 설정들을 통해 IPv4로 옵션을 바꿔줄 수 있었다. Run ➡️ Edit Configurations... Modify options ➡️ Add VM options 그리고 VM option에 다음 설정을 복붙한다. -Djava.net.preferIPv4Stack=true -Djava.net.preferIPv4Addresses=true 이후 실행하면 원하는대로 로그가 찍히는 것을 확인할 수 있다. reference https://gaemi606.tistory.com/entry/IntelliJ-IPv4-%EC%84%A4%EC%A0%95

article thumbnail
[WSL] - vscode version `GLIBC_2.28' not found , WSL2 ubuntu 버전 업그레이드
🛠️TOOL/🆚VSCODE 2024. 2. 14. 17:05

문제 원인 평소와 같이 wsl 터미널에서 code로 vscode를 사용하려고 하자, 다음과 같은 에러가 발생했다. ... /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found ... 무슨 상황인가하니, vs code가 의존 중인 glibc 버전에 따른 문제인데, 최신 vscode가 의존하는 glibc 버전이 우분투 18.04의 glibc 버전보다 최신 버전을 의존하기 때문에 발생하는 문제였다. From the bashonubuntuonwindows community on Reddit Explore this post and more from the bashonubuntuonwindows community www.reddit.com vscode 2..

article thumbnail
[AWS] - EC2 인스턴스 SSH 접속 시 error : Permission denied (publickey)
🛠️TOOL/🔶AWS 2024. 2. 14. 16:11

늘 하듯이 EC2 인스턴스의 authorized key에 내 ssh public 키를 등록하고 잘 사용하고 있었다.. 그런데 갑자기 잘 접속되던 인스턴스에 접속을 시도하자 다음 에러를 직면했다. Permission denied (publickey). 아니 분명히 public 키도 잘 등록했는데 왜지?? 싶어서 authorized_keys 폴더에 권한을 줘보기도 하고, public 키에도 권한을 줘보고, 로그도 보며 SSH known_host도 수정해보는 등 다양한 방법을 써봤지만, 결국 다음 방법으로 해결했다. 먼저 브라우저로 EC2 커널에 접속해, /etc/ssh/sshd_config 파일을 수정한다. sudo vi /etc/ssh/sshd_config 해당 파일에 PasswordAuthenticati..

[Docker / Trouble Shooting] - 도커 설치 또는 apt-get update 중 gpg error : NO_PUBKEY XXXXXXXXXXX 해결법 총 정리
🛠️TOOL/🐳Docker 2024. 2. 14. 16:09

본 포스팅에서는 원격 서버에 도커 설치 중 발생한 에러에 대해 다룬다. 도커를 설치하려고 하면, 우선 apt-get update를 실행하게 되는데 이 때 gpg error가 발생할 때가 있다. 에러상황: $ sudo apt-get update Hit:1 bionic InRelease Get:2 bionic InRelease [4,595 B] Get:3 stable InRelease [1,825 B] Err:3 stable InRelease The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 4EB27DB2A3B88B8B 그 에러를 해결하던 중 내가 겪은 모든 에러에 대해 다뤄보겠다. ..