본문 바로가기

서버49

https://google.com 통신 흐름 완전 분석 브라우저에서 https://google.com URL을 호출 했을 때 패킷이 어떻게 만들어지고 전송되는지를 알아보겠습니다.1. 도메인 이름을 IP 주소로 변환 (DNS 조회)브라우저는 google.com 도메인에 대한 IP 주소를 알아내기 위해 DNS 서버에 요청합니다. UDP 패킷을 만들고, DNS에 질의하면 DNS 서버가 응답을 해줍니다. DNS 서버가 응답해준 UDP 패킷에는 google.com 도메인에 대한 IP 정보가 담겨져 있습니다. 그리고 IP 정보를 로컬 PC의 DNS 캐시에 저장합니다. 테스트를 한번 해보겠습니다. 브라우저에서는 자체적으로 관리하는 DNS 캐시가 있기 때문에 윈도우에서 테스트 하는 방법으로 해보겠습니다. 윈도우 PowerShell 프로그램을 실행하고, ping google.. 2024. 11. 19.
윈도우에서 Docker 테스트 해보자 대게 많은 개발자들은 윈도우 OS를 사용한다.물론 나 또한 윈도우 7 64bit를 사용하고 있다. 간혹 로컬에서 Docker 테스트를 해보고 싶을때가 있는데 이를 위해서 어떻게 해야하는지 정리해 본다. 기본적으로 Docker 소프트웨어는 윈도우 버전을 제공한다.설치할 때 내가 windows 10 64bit Pro, Enterprise를 사용하고 있다면 "Docker for Windows Installer.exe" 를 설치하고 다음의 링크 절차대로 따르면 된다.https://hub.docker.com/editions/community/docker-ce-desktop-windows 어렵지 않다. 가상화 기술인 Hyper-V 기능을 활성화하고 설치만 하면 된다. 활성화 방법은 Google 에서 "Windows.. 2019. 3. 25.
[Elasticsearch] 클러스터 rolling restarts 클러스터의 무중단 서비스를 위해 노드의 순차적인 재시작이 필요한 경우가 있다.- OS 업그레이드- 플러그인 설치- 엘라스틱 업그레이드 결론부터 정리하면 샤드가 배치되어 있는 데이터 노드에서 아래 1번부터 5번까지의 과정을 반복하면 된다. 1. shard allocation 옵션을 disabled 처리12345$ curl -XPUT 'localhost:9200/_cluster/settings?pretty=true' -d '{ "transient" : { "cluster.routing.allocation.enable" : "none" }}'Colored by Color Scriptercs 2. 노드 shutdown1$ kill -9 {PID}cs 3. Elasticsearch 플러그인 설치 4. Elasti.. 2018. 2. 2.
[Elasticsearch] 은전한잎 설치 elasticsearch version2.4.6lucene version5.5.4 root 계정으로 설치를 진행해야 한다.참고로 root 계정의 환경 변수에 java 실행 패스가 등록되어 있어야 한다. 1. 은전한잎(mecab-ko) 설치 (형태소 분석기 엔진)# 다운로드$ cd /opt$ sudo wget https://bitbucket.org/eunjeon/mecab-ko/downloads/mecab-0.996-ko-0.9.2.tar.gz$ sudo tar xvf mecab-0.996-ko-0.9.2.tar.gz # 빌드 및 설치$ cd /opt/mecab-0.996-ko-0.9.2$ sudo ./configure$ sudo make$ sudo make check$ sudo make install$ .. 2018. 1. 24.
[Elasticsearch] 샤드 (Shard) 샤드는 Lucene 인덱스이다. 샤드는 primary 또는 replica가 될 수 있다.replica는 검색에 사용되어지며 original primary shard가 사라졌을 때 새로운 primary shard가 될 수 있다.ES index는 1개 또는 그 이상의 primary shards 그리고 0개 또는 그 이상의 replica shards를 만든다. replicas는 검색 성능과 fail over 제공primary shard의 개수는 index를 생성할 때 결정되며 바꿀 수 없음 클러스터에 node가 추가되면 새로운 노드로 샤드가 재할당된다.node에 primary shard 1, 2가 있다고 가정하고 해당 장비가 죽으면 replica node를 새로운 primary shard로 지정한다. [Ela.. 2017. 12. 20.
[Elasticsearch] 최적화 데이터 검색Query대신 Filter 사용filter는 _score를 사용하지 않기 때문에 query에 비해 속도가 빠르다.필터는 오직 결과가 검색과 일치하는지만 관심을 가진다는 것이다. 결과적으로 다른 쿼리보다 빠르고 쉽게 캐시에 저장할 수 있다.필터 결과는 점수에 의해 정렬되지 않는다. (모든 결과에 대한 점수가 1.0이기 때문)_score : 문서가 지정한 조건과 얼마나 유사한지 평가 실시간 VS 준 실시간ID로 문서를 조회하는 것은 쿼리 검색보다 훨씬 빠르다. 실시간에 준하는 검색 속도를 보장한다.그에 반해 쿼리 검색은 준 실시간이다. 기본값으로 매초 발생하는 리프레시를 기다려야 하기 때문이다. [리프레시 설정 값]"index.refresh_interval": "5s" ulimit데이터가 많아지면.. 2017. 12. 20.
[Elasticsearch] filter 조회가 query 조회보다 빠르다. 쿼리 조회 시 두 가지 방법이 있다.queryfilter filter 조회가 query 조회보다 빠르다.이유는 score 계산을 하지 않고, 검색 결과를 캐쉬하기 때문이다. score 란?elasticsearchelasticsearch aaaelasticsearch abbb위와 같은 데이터가 있을 때 elasticsearch 문자를 검색하면 첫 번째 document 의 score가 높게 나온다. 이유는 문자가 정확하게 매칭되기 때문이다. 즉, score의 값은 문자열의 유사성에 따라 다르게 출력된다. 출처 : Elasticsearch in Action 도서 다음은 filter 검색에 대한 요청 결과이다.결과의 json 데이터를 보면 _score 값이 1로 찍힌 것을 확인할 수 있다.이처럼 filter 검.. 2017. 12. 11.
[Elasticsearch] Query 검색 결과 구조 { "took" : 3, // 검색 수행 시간 (milliseconds) "timed_out" : false, // 검색 쿼리 수행 중 timeout 발생 여부를 나타낸다. "_shards" : { // 요청에 대한 검색 결과를 위해 참여한 샤드 "total" : 2, "successful" : 2, // 요청에 대한 성공 샤드 수 "failed" : 0 // 요청에 대한 실패 샤드 수 }, "hits" : { "total" : 1, // 요청에 대한 결과 문서 수 "max_score" : 1.0, // 검색 쿼리에 얼마만큼 부합되는지를 나타내는 척도 (결과 문서 중 가장 높은 score를 표시) "hits" : [ { "_index" : "get-together", // 인덱스 "_type" : "gr.. 2017. 12. 6.
[Elasticsearch] 한번 정해진 mapping 속성은 변경 불가 다음과 같이 mapping을 생성하였다.index : get-togethertype : new-events123456789101112131415161718curl -XPUT 'localhost:9200/get-together/_mapping/new-events?pretty' -d '{ "new-events": { "properties": { "name": { "type": "string", "index": "analyzed" }, "name2": { "type": "string", "index": "not_analyzed" }, "name3": { "type": "string", "index": "no" } } }}'Colored by Color Scriptercs 매핑이 생성되면 성공 메세지가 출력된다.. 2017. 12. 5.
[Elasticsearch] index 매핑 (analyzed, not_analyzed, no) 다음은 type에 대한 mapping 샘플이다.123456789101112131415161718curl -XPUT 'localhost:9200/get-together/_mapping/new-events' -d '{ "new-events": { "properties": { "name": { "type": "string", "index": "analyzed" }, "name2": { "type": "string", "index": "not_analyzed" }, "name3": { "type": "string", "index": "no" } } }}'Colored by Color Scriptercs index 매핑에는 3가지의 옵션이 올 수 있다. analyzed검색 가능하도록 색인analyzer를 이용한 .. 2017. 12. 1.
[Elasticsearch] 모니터링 툴 elasticsearch-head 플러그인 기능1234클러스터 상태생성된 index, type 정보Document 데이터데이터 조회 (Query DSL)cs 플러그인 설치1./plugin install mobz/elasticsearch-headcs 설치가 완료되면 elasticsearch 재기동 후 다음의 URL에 접속해 보자.http://127.0.0.1:9200/_plugin/head/ 다음과 같이 클러스터에 포함되어 있는 노드들이 보일 것이다.노드 이름 앞에 별이 있는 녀석이 마스터이다. 샤드가 어떤 노드에서 관리되고 있는지를 확인하고 싶다면 다음의 URL을 호출해 보자.http://localhost:9200/_cat/shards?v 2017. 11. 30.
[Elasticsearch] 클러스터 구성 클러스터 구성은 Elasticsearch 2.4.6 기준으로 작성한다. https://www.elastic.co/downloads/past-releases 페이지에서 Elasticsearch 2.4.6 버전을 다운로드 받는다. (tar 파일)검색 필터를 이용해서 원하는 제품과 버전을 빠르게 찾을 수 있다. 다운로드 받은 tar파일을 압축해제 하면 설치 끝이다.Elasticsearch 서비스를 구동하려면 /bin/elasticsearch 를 실행하면 된다.백그라운드 실행할 때에는 /bin/elasticsearch & 와 같이 하도록 하자. 구성은 한 장비에 3개의 Elasticsearch node를 실행할 것이다.master node : nklee-data-node1data node : nklee-data.. 2017. 11. 30.
[Elasticsearch] 용어 정리 Elasticsearch는 Lucene 기반의 오픈 소스 검색엔진실시간 검색, 분석 지원분산 환경 지원트랜잭션을 제공하지 않음업데이트가 빈번하게 발생한다면 다른 NoSQL을 사용RESTFul 기반 JSON 메시지 사용 (어느 시스템이나 연동하기 쉽게) Cluster여러 개의 노드를 하나의 그룹으로 묶어서 서비스 Master node노드 관리고사양 컴퓨터 아니어도 된다. Data node검색, 색인 처리 (색인은 인덱스를 만드는 과정)고사양 컴퓨터 권장 Client nodeREST 지원검색에 대한 로드 분산 처리 Shard인덱스의 조각데이터 분산 ReplicaShard의 복제본검색할 때 이용하기도 하며 Replica Shard라고도 불린다. IndexRDB의 데이타베이스와 유사하다. TypeRDB의 테이블.. 2017. 11. 29.
Apache2 설치 (Ubuntu 16.04) 설치ubuntu 기본 소프트웨어 저장소에 사용할 수 있는 apache가 있다.1. root 로그인2. 패키지 관리 툴인 apt-get을 이용하여 apache2를 설치한다. (apache2 설치와 함께 의존하는 프로그램도 함께 설치된다.) > apt-get update > apt-get install apache23. 설치 후 Apache 상태 확인 > systemctl status apache24. Apache 접속 > hostname -I 명령어를 통해 IP를 알아낸 후 웹 브라우저를 이용하여 http://{IP} 로 접속해보자. Apache Configuration/etc/apache2/아파치 설정 디렉토리 /etc/apache2/apache2.conf아파치 기본 설정 파일 /etc/apache2/p.. 2017. 9. 15.
[ElasticSearch] 윈도우 설치 및 기본 동작 이해 ElasticSearch는 오픈 소스이고 REST 기반의 실시간 검색 및 분석 엔진이다.Java로 작성되어졌으며 아파치 Lucene 기반으로 검색 기능 및 REST-Based API (JSON Over HTTP Protocol)를 지원한다.1234GET : 조회POST : 저장PUT : 수정DELETE : 삭제cs https://www.elastic.co/downloads/elasticsearch 페이지에서 윈도우 버전의 zip 파일을 다운로드 받는다.다운로드가 완료되면 압출 풀고 bin 폴더로 이동하여 elasticsearch.bat 파일을 실행한다.설치 과정은 굉장이 쉽다. 윈도우 버전 뿐만 아니라 다른 OS 버전도 설치가 간단하다. ElasticSearch가 실행되면 9200, 9300 포트가 오픈.. 2017. 8. 31.