반응형

분류 전체보기 199

c++ 와 js간 소켓 통신 예제 + α

Legacy 프로젝트를 모바일 혹은 웹으로 확장 할 일이 있어 겸사 겸사 정리해 보았습니다. 샘플 프로젝트는 아래와 같은 흐름을 가진다고 가정합니다. 모든 연결은 stateful로 연결되어 필요한 경우 수시로 데이터를 주고 받을 수 있게 합니다. 최종 사용자는 제공된 웹 앱 혹은 모바일 앱에서 wss로 javascript server에 연결하여 인증과 기타 필요한 작업을 요청합니다. 그리고 javascript server는 VPC 내부의 서버에 socket으로 연결합니다. c++ server 입장에서는 javascript server를 위해 준비할 사항은 추가적인 패킷 정의 뿐입니다. 이제 실제 샘플을 실행해 보겠습니다. 아래 예제에 사용된 코드는 이 곳에서 다운로드 가능합니다. C++ 서버 준비 우선 ..

OpenSSL을 이용해 사설 인증서 생성과 사용 방법(간략 정리)

인증서와 관련된 이야기는 이 전에 기록한 글이 있어 생략합니다. [[ 인증기관( CA, Certificate Authoroty) 의 개인키와 인증서 생성 ]] CA private key 생성 > genrsa -des3 -out root_private.key 2048 CA의 CSR(Certificate Signing Request) 생성. (csr에는 공개키와 알고리즘 정보를 포함됩니다.) > req -new -key root_private.key -out root.csr CA의 인증서를 생성합니다. > x509 -req -days 3650 -in root.csr -signkey root_private.key -out root.crt [[ 사용처(웹 서버 등)를 위한 개인키와 인증서 생성 ]] 사용처를 위..

Elasticsearch daily snapshot 예제 코드

https://github.com/blackwitch/elasticsearch-shapshot-daily blackwitch/elasticsearch-shapshot-daily Contribute to blackwitch/elasticsearch-shapshot-daily development by creating an account on GitHub. github.com 매일 어제 생성된 인덱스를 백업하는 샘플 코드입니다. 100 line 이내의 코드가 설명할 내용은 길지 않습니다. elasticsearchjs의 문제인지 아닌지 아직 알 수 없으나 생성 후 인덱스 중복 에러가 발생하나 스냅샷은 정상적으로 생성됩니다. 에러 내용은 아래와 같습니다. { "error":{ "root_cause":[{ "ty..

Elasticsearch snapshot - AWS S3 에러

신규 노드를 추가하면서 elasticsearch에 repository-s3 plug-in 설치 하는걸 잊어 버렸더니 아래와 같은 에러가 발생하기 시작했습니다. { "snapshot" : { "snapshot" : "snapshot_name", "uuid" : "vQeYKiYaTaq0rOiGXbjQEQ", "version_id" : 7110099, "version" : "7.11.0", "indices" : [ "my_index" ], "data_streams" : [ ], "include_global_state" : true, "state" : "PARTIAL", "start_time" : "2021-06-09T05:57:10.373Z", "start_time_in_millis" : 16232182303..

Metricbeat 설치 및 Kibana 연동

8 버전부터는 Kibana의 Stack Monitoring이 기존 방식으로 지원하지 않는다고 메세지가 떠서 Metricbeat를 설치해 Monitoring 설정을 진행했습니다. Self-managed(On premise)로 운영중인 세 대(172.31.1.10 ~ 12)의 Elasticsearch의 모니터링을 위해 별도 시스템 혹은 기존 시스템에 metricbeat를 설치하여 모니터링 한다고 가정합니다. 그리고 시스템 로그는 추가하지 않게 설정해 보겠습니다. Metricbeat는 실행을 위해 root 권한이 필요합니다. 1. 설치 > curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.11.0-linux-x86_6..

elasticsearch-js로 인데스가 존재하는지 확인하는 방법

nodejs에서 elasticsearch-js를 이용해 데이터 분석, 취합을 할 때, 잘못된 인덱스 이름, 혹은 존재하지 않는 인덱스 이름으로 인해 문제가 발생하는 경우가 있습니다. 이 경우 검색이 중단되고 404 에러가 발생하며 중단됩니다. 에러를 막기위해 검색 시 아래 예제와 같이 ignore키워드를 지정할 수 있습니다. const result = await client.search({ index: 'my-index', from: 20, size: 10, body: { foo: 'bar' } }, { ignore: [404], maxRetries: 3 }) 이 방법은 에러를 막을 수 있지만, 검색이 중단되는 것은 동일합니다. 예를들어 ['seoul', 'busan', 'jeju']라는 인덱스들에서 어..

linux 환경 변수 세팅하는 방법

주로 윈도우나 맥을 사용하다보니 환경 변수 세팅하는데 별로 신경을 안썼는데 리눅스에서는 거의 사용해 본 적이 없어 이번에 정리를 해봤습니다. elasticsearch node를 재가동 할 일이 있었는데 시스템 재기동 후 jdk 폴더를 못 찾는 경우가 발생했습니다. openjdk를 포함했고 설치하면서 초기 설치 시 세팅이 되는 것으로 아는데... 의아했지만 모두들 ES 정상화를 기다리고 있어 일단 바로 세팅하기로 했습니다. elasticsearch(7.x 이상)에 포함된 jdk는 elasticsearch폴더안에 jdk 폴더에 포함되어 있습니다. /etc/profile 에 환경 변수를 세팅할 수 있으며 jdk 폴더 경로를 아래와 같이 추가했습니다. > vi /etc/profile . . . export JA..

위도 경도 값 찾기

AWS Region 들의 위치를 지도상에 표기하려 위도 경도 값이 필요해 찾던 중 기록을 위해 글을 남겨둡니다. 일단 각 리전의 위치는 아래 링크에 나와 있습니다. docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-available-regions 리전 및 영역 - Amazon Elastic Compute Cloud 리전 및 영역 Amazon EC2는 세계 각지의 여러 곳에서 호스팅되고 있습니다. 이 위치는 리전, 가용 영역, 로컬 영역, AWS Outposts 및 Wavelength Zones로 구성됩니다. 각 리전은 개별 지리 영역입니다. 가용 docs.aws.amazon.com ..

Unity/Android 개발 시 손쉬운 로그 확인 방법

예전에 터미널에서 adb로 직접 연결해 결과를 확인했지만 unity package manager에서 logcat 지원하고 나서는 더 편리해 졌네요. 이 글에서는 logcat 설치 및 사용법을 간단히 정리해 보았습니다. 1. 우선 bluestack의 설정에서 ADB 사용을 활성화 합니다. "기기" 옵션에서 어떤 모델을 에뮬레이션 할지 선택할 수 있습니다. 2. 프로젝트를 빌드 합니다. package name을 설정해야 합니다. 빌드 세팅 -> 플레이어 세팅 -> package name을 원하는 이름으로 수정합니다. JDK가 설치되어 있지 않다면 아래를 참고해서 설치하세요. 사용하는 프로젝트에서 사용중인 버전에 모듈 추가를 선택 후 SDK/NDK/JDK를 선택/설치하시면 됩니다. 이제 APK 파일을 빌드해서..

mariadb(mysql) 이중화 구성

이전에 클러스터 구축에 대한 내용을 정리했는데, 오늘은 이중화 구성을 정리해 보겠습니다. 클러스터로 구성하는게 이중화 구성 보다는 많은 장점이 있다고 생각하지만 쓰임새에 따라 필요한 경우도 있어서 정리를 해봤습니다. 이중화를 구성하는 여러 방법들이 있지만 여기서는 가장 심플한 구성의 이중화를 정리해 보겠습니다. 지금부터 master db를 M, slave db를 S라고 지칭하겠습니다. Replication 절차 mariadb(mysql)은 이중화 과정을 살펴보면 M에 event가 발생하면 M은 S와 복제를 위해 생성해둔 binary log file에 DB업데이트와 동시에 기록을 해둡니다. 그리고 S는 자신이 M의 binary log 몇 번째 위치의 데이터를 마지막으로 가져왔는지 기록했다가 M의 binar..

반응형