Backend&Devops
[Kafka] Docker compose 설치
백엔드 로직에 최적화가 필요해서 메시지 큐를 써야할 것 같은 상황에, Kafka를 쓰면 어떨까해서 고민해보다가 시간이 생겨 구현을 해보았습니다!쉽게 구현이 될줄 알았는데, 생각보다 카프카 쪽 설정이 신경쓸 것들이 많더라구요. 1. 구성환경 배포를 같은 환경에서 자유롭게 진행하고자 카프카 컨테이너를 도커 안에 배치하도록 구성환경을 짰습니다. 모든 환경이 저랑 같을 수는 없겠지만, 저는 이런 시퀀스 구조로 카프카를 사용하도록 했어요.1) 웹 사용자가 요청하면 Next.js 서버 사이드 단에서 Kafkajs를 호출2) kafkajs는 도커 컨테이너에 있는 kafka broker에 publish3) 같은 도커 컨테이너에 있는 Express.js에서 kafka를 subcribe하고 있는 상황에서 퍼블리싱이 일어..
[리눅스] docker, docker-compose 설치
리눅스(우분투) 설치 버전입니다. 1. 도커 설치 리눅스에 도커를 설치하려면 아래 명령어를 따라가야합니다. 1. 리눅스 SSH 접속 2. 패키지 최신 업데이트 sudo apt update 3. 도커 다운로드를 위한 https 관련 패키지 설치 sudo apt install apt-transport-https ca-certificates curl software-properties-common 4. 도커 레포지토리 접근을 위한 GPG Key 설정 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 5. 도커 레포지토리 등록 sudo add-apt-repository "deb [arch=amd64] https://downl..
[Jenkins] Linux EC2에서 Jenkins 설치하기(Java 11버전 설치)
1. 개요 새로 ec2 인스턴스에 jenkins를 설치하려고 하니 java version 이슈가 있어서 설치가 곤란했었던 터라, EC2 인스턴스의 Linux 환경에서 Jenkins를 설치하는 과정을 정리해보려고 합니다. 2. Jenkins 구동 실패 jenkins.service - Jenkins Continuous Integration Server Loaded: loaded (/usr/lib/systemd/system/jenkins.service; disabled; vendor preset: disabled) Active: failed (Result: start-limit) since 목 2022-06-30 08:32:00 KST; 7s ago Process: 7079 ExecStart=/usr/bin/..
[ElasticSearch] Logstash No configuration found in the configured sources. [에러해결]
1. 개요ElasticSearch에 Logstash의 배치 스케쥴러를 사용하려고 했는데 configuration을 못찾는다는 오류가 발생했습니다.config폴더에 pipelines.yml과 logstash.conf 파일은 바꾼적이 없는데 말이죠. 2. 에러해결구글링을 해본 결과...<p data-k..
[Git] 변경된 내용 삭제(git reset)
1. 개요 서버에서 서비스 중인 프로그램에 대해 업데이트를 진행할 때, 우연찮게 서버 내부에서 수정사항이 발생하고, 이 수정사항에 대해 git에 반영하지 않고 변경된 내용을 삭제하고 단순하게 pull만 받고 싶을 때가 있습니다. 2. 코드 git reset git checkout . git clean -fdx 1번째 줄 : 모든 staged된 파일이 unstage됩니다(실수로 커밋했을 경우, 로컬에서 unstage) 2번째 줄 : 모든 변경 사항을 취소합니다. 3번째 줄 : 추적할 수 없는 모든 파일 제거(추적된 파일만 남습니다) 이후에 git pull로 변경된 내용을 받고 서비스를 진행하면 됩니다. 참고 https://extbrain.tistory.com/83 [git] 커밋되지 않았거나 저장되지 않은..
[ElasticSearch] logstash + mysql window 환경 연동
1. 개요 ElasticSearch에 RDB로 이용하고 있는 mysql 데이터를 적재하고 싶어서 찾아보다가, elk의 스택인 logstash를 이용해서 batch job 형태로 주기적으로 적재할 수 있는 방법을 찾게 되었습니다. 일단은 테스트 용도이기 때문에, 윈도우 환경에서 작업을 했고, 리눅스 환경에서의 예제는 많지만 윈도우 환경에서의 예제는 없는 것 같아 정리해보려고 합니다.(elk가 생각보다 상당히 리소스를 많이 차지합니다) 2. 준비물 1) ElasticSearch https://www.elastic.co/kr/downloads/elasticsearch Download Elasticsearch Download Elasticsearch or the complete Elastic Stack (for..
[ElasticSearch] Insert(생성), Search(조회) 기본적인 CRUD
1. 개요 RDB를 하다가 ElasticSearch를 찾아보는데, 개념 자체가 RDB랑은 많이 달라서 최대한 알기 쉽게끔 필요한 기능만 정리를 해보려고 이 글을 작성해봅니다. 클러스터, 샤드랑 노드, 인덱스, 다큐먼트 등 개념적인 부분은 이 글에서는 다루지 않겠고, 아래 가이드북 링크를 참고해주시길 바랍니다. https://esbook.kimjmin.net/03-cluster/3.2-index-and-shards ElasticSearch 버전은 7.0버전 이상의 버전으로 진행합니다. 7.0버전부터 type이 사라졌기 때문입니다. 2. 클러스터 관련 Rest API 1) 클러스터 상태 조회 # curl -XGET http://localhost:9200/_cluster/health?pretty=true * ..
[Elasticsearch] The bulk request must be terminated by a newline [\\n] 에러
1. 개요 elastic search의 자동완성 기능을 구현해보려고 샘플 데이터를 insert하는 도중, The bulk request must be terminated by a newline [\\n] 와 같은 에러가 발생했습니다. 2. 해결 방법 {"index":{"_index":"autocomplete_test_1","_id":"1"}} {"word":"스팀게임"} {"index":{"_index":"autocomplete_test_1","_id":"2"}} {"word":"스팀게임 추천"} {"index":{"_index":"autocomplete_test_1","_id":"3"}} {"word":"스팀게임 추천 2019"} {"index":{"_index":"autocomplete_test_1"..
[ElasticSearch] received plaintext http traffic on an https channel, closing connection 에러
1. 개요 윈도우 환경에서 ElasticSearch를 설치하고 localhost:9200으로 열어보았을때, received plaintext http traffic on an https channel, closing connection 라는 오류가 발생하고 연결이 되지 않는 이슈가 있었습니다. 2. 해결 방법 [elasticsearch설치폴더]/config/elasticsearch.yml ... # Enable security features xpack.security.enabled: false xpack.security.enrollment.enabled: false # Enable encryption for HTTP API client connections, such as Kibana, Logstash..
[Node.js] Selenium 크롤링 사용
1. 개요 프로젝트를 진행하다보니 실제 프로젝트에 사용할 데이터가 필요할 때가 있는데, 이 데이터를 얻기 위해 자연스럽게 인터넷의 정보를 쉽게 얻어 올 수 있기 위해 크롤링을 사용해야 했습니다. 2. 패키지 먼저 폴더를 하나 생성하고 npm init -y 로 node.js 기반 패키지를 생성해줍니다. 사용할 라이브러리는 selenium으로 npm install selenium-webdriver 위의 패키지를 설치해줍니다. selenium 크롤링을 사용하기 위해서는 브라우저의 드라이버를 사용해야 합니다. http://chromedriver.storage.googleapis.com/index.html 저는 크롬 드라이버를 사용했기 때문에, 위의 링크에서 최신 크롬 드라이버를 받아주면 됩니다. 다운 받은 드라..