목록서버 (13)
이열매의 메모장
HA Proxy with Nginx HA Proxy 란 TCP(L4) / HTTP(L7) 로드 밸런서 및 프록시 서버용 오픈소스 소프트웨어 Nginx 앞 단에서 서버로 들어오는 요청을 받고 처리 결과를 전달하는 reverse proxy 형태로 동작 HA Proxy 설치 yum install -y haproxy {NGINX_HOME}/conf/nginx.config 파일 변경 #listen 80; listen 127.0.0.1:80; #listen 443 ssl; listen 127.0.0.1:443; /etc/haproxy/haproxy.cfg 파일 변경 frontend main #HTTP bind :80 #Redirect http request to https http-request redirect..
Zookeeper란 분산 처리 환경에서 사용되는 트리 구조 형태의 데이터 저장소 데이터 변경보단 읽기가 빈번한 곳에 사용 특정 노드에 변경 여부를 감시하는 Watcher 사용 가능 Znode 데이터 저장 단위 Persistent Node 명시적으로 삭제하지 않는 한 삭제 및 변경되지 않는 노드 Ephemeral Node 세션이 유효할 때까지 유효한 노드 세션 종료 시 삭제 될 경우 Zookeeper가 감지 가능 Sequence Node 노드 생성시 자동으로 seq num이 붙는 노드 Zookeeper Server Leader와 Follower로 나뉨 Leader는 쓰기 명령 데이터 저장 과정 Server(Follower) -> Server(Leader) -> 나머지 Server(Follower) 서버에 ..
Storm 이란 실시간 데이터 분석 및 이벤트 배치 처리 Nimbus Job Tracker 역할 Supervisor 노드에 작업 할당 장애 조치 Supervisor Task Tracker 역할 할당된 토폴로지를 worker process 에 구동 Topology 처리 흐름 정의 그래프 각 객체마다 하나의 처리 로직(토폴로지) 포함 구성 요소 스파우트 외부 소스로부터 튜플을 가져와 스트림 생성 생성된 스트림을 볼트로 전송 볼트 토폴리지의 처리 작업 담당 데이터 전송 및 연산 처리, 데이터 쓰기
filebeat 여러 로컬 로그/파일을 수집 및 전달하는 경량 producer agent 작동 방식 지정된 로그 경로(input)를 모니터링 이벤트(로그 데이터 생성) 발생 시 데이터 수확(harvester) Harvester는 수집한 데이터를 libbeat으로 전송 해당 libbeat 는 이벤트 집계 후 집계된 데이터를 filebeat 설정에 구성된 출력에 맞게 전송
Elasticsearch 개념 분산형 오픈소스 검색/분석 엔진 동작 원리 기능 데이터 수집 / 집계 구문 분석, 정규화 데이터 검색 역색인(reverted index)을 사용하여 빠른 검색 속도 키워드가 어떤 docs에 있는지 저장 특징 확장성 샤드를 이용한 수평적 규모 확장 고가용성 replica가 데이터의 안정성을 보장 Schema free 스키마 대신 json 문서 구조로 된 데이터 사용 RESTful HTTP의 RESTful API를 통해 데이터 CRUD 작업 Multi-tenancy 서로 다른 인덱스에서 필드명이 같을 경우 한 번에 조회 가능 불변성 수정이 불가하여 Update시, 데이터를 삭제했다가 다시 생성 다중 스레드 환경에서 동시성 문제 회피 (수정이 불가하므로 lock 필요 x) 높은 ..
Ansible 환경 배포 자동화 툴 Inventory 'where' to Ansible execute 배포할 서버에 대한 목록 Playbook 'How' to Ansible execute 인벤토리 파일에서 정의된 서버들의 행동(module 호출) 정의 role과 task 매핑 role Pre-defined way for organizing playbooks 구조 defaults 해당 서비스에서 사용하는 공통 변수(경로, 포트 등) 기본값을 설정 tasks 'what' to Ansible execute 앤서블 명령어 태그에 따라 실행될 파일 존재 명령이 실행되기까지 필요한 단계별 설정 (name 참조) templates 서비스의 task에서 특정 경우의 변수에 대해 설정 resources 인증서 morpl..
MySQL 소스 컴파일 설치에는 어마무시한 시간이 걸리기 때문에 일반적으로 패키지 설치로 진행한다. 그러나 간혹 설치 경로를 지정하거나 권한 문제로 소스 설치가 필요한 경우가 있다. MySQL 소스 설치에 대해서 예전 버전으로 다룬 글이 많은데, 그때는 맞고 지금은 틀리므로 19년 11월 기준 MySQL 5.7 최신 버전을 설치해보자. 환경 간략 개요 OS : CentOS 7.4 MySQL : 5.7.27 MySQL 컴파일 설치 1. 의존성 라이브러리 설치 $ sudo yum install cmake ncurses ncurses-devel 2. 압축 파일 다운로드 및 해제 $ wget https://downloads.mysql.com/archives/get/file/mysql-5.7.27.tar.gz $..
환경 간략 개요 OS: CentOS 7 JAVA: jdk-1.8.0 Apache: 2.4.41 SSL 설정 1. OpenSSL 설치 RSA 키 생성을 위하여 OpenSSL이 필요하다. 리눅스엔 기본적으로 OpenSSL이 설치되어 있지만, 만약 없다면 yum으로 OpenSSL을 다운받자. 또한 이 모듈은 최신 버전을 유지하는 것을 추천한다. CentOS에서 버전 확인 $ rpm -qa | grep openssl * openssl과 openssl-devel 모두 보여져야 한다. OpenSSL 설치 $ yum -y install openssl openssl-devel 2. 아파치 설치 mod_ssl을 다운받을 수 있도록 컴파일 옵션을 주어 설치할 것이다. 아파치는 동적 모듈 시스템을 지원하므로 기존 아파치에서..