PaaS 221

ElasticSearch 클러스터 튜닝 가이드

아래는 ES 클러스터를 구축하면서 커스터마이징을 권장하는 내용을 정리하였다. elasticsearch.yml에서 세그먼트 저장 경로 설정 path.data: /var/lib/elasticsearch/data1 스왑 메모리 사용 여부 설정 bootstrap.memory_lock: true - 시스템의 스왑 메모리 영역을 사용하지 않도록 하는 설정이다. ES는 스왑 메모리 영역을 최대한 사용하지 않도록 권고하고 있다. 이 설정을 통해 스왑 영역을 사용하지 않으면 성능은 보장할수 있지만 시스템의 메모리가 부족한 경우에는 OOM 발생. 이 설정을 사용하기 위해서는 elasticsearch.yml 뿐만아니라 OS의 /etc/security/limit.conf도 수정해야 한다. # vi /etc/security/l..

PaaS/Data 2022.07.22

ElasticSearch 기본 개념

클러스터와 노드 여러개의 ES 프로세스들을 논리적으로 결합하여 하나의 ES 프로세스 처럼 사용할수 있게 해준다. 이때 클러스터를 구성하는 하나하나의 ES프로세스를 노드라고 부른다. 노드역할 노드역할 설명 마스터(Master Eligible) 클러스터 구성에서 중심이 되는 노드. 클러스터의 상태등 메타데이터를 관리한다. 데이터(Data) 사용자의 문서를 실제로 저장하는 노드 인제스트(Ingest) 사용자의 문서가 저장되기 전 문서의 변환이 필요한 내용을 사전 처리하는 노드 코디네이트(Coordinate) 사용자의 요청을 데이터 노드로 전달하고, 다시 데이터 노드로부터 결과를 취합하는 노드 위 표와 같이 노드가 할 수 있는 역할은 총 4가지 이며, 각각 하나의 역할만 할 수 있는게 아니라 한번에 여러개의 역..

PaaS/Data 2022.07.21

Kibana 7.10 올리기 및 Elastic Search 연동

7.10 이상 버전에서 라이선스 이슈 왈가왈부가 많아 apache2 라이선스 예하의 7.10 으로 올림 서버 OS : CentOS 7버전 Hardware Requirement : https://www.elastic.co/guide/en/cloud-enterprise/current/ece-hardware-prereq.html 1. 인스톨 ※ root 유저가 아닌 일반계정으로 install 해야 합니다. # wget https://artifacts.elastic.co/downloads/kibana/kibana-7.10.0-linux-x86_64.tar.gz # tar -zxvf kibana-7.10.0-linux-x86_64.tar.gz # mv kibana-7.10.0-linux-x86_64 kibana ..

PaaS/Data 2022.07.15

ElasticSearch 7.10 Cluster 올리기

7.10 이상 버전에서 라이선스 이슈 왈가왈부가 많아 apache2 라이선스 예하의 7.10 으로 올림 MasterNode 3대에 DataNode를 2대만 설정했습니다. MasterNode는 무조건 3대 이상해야 되더라구요.. 2대로는 고가용성 불가.. 서버 OS : CentOS 7버전 Hardware Requirement : https://www.elastic.co/guide/en/cloud-enterprise/current/ece-hardware-prereq.html 1. ElasticSearch 서버 인스톨 ※ root 유저가 아닌 일반계정으로 install 해야 합니다. $ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsear..

PaaS/Data 2022.07.15

kafka 서버에 SSL 혹은 SASL 을 적용하면 성능 저하가 있을까?

SSL SSL의 경우 이미 리포트가 있어서 결과만 공유한다. https://blog.mimacom.com/apache-kafka-with-ssltls-performance/ Performance considerations when using Apache Kafka with SSL/TLS Running a cluster of a distributed software such as Apache Kafka in a production environment will lead to operational concerns. One of these concerns is certainly security. Companies have varying… blog.mimacom.com 테스트 환경 SPEC Number of c..

PaaS/MQ 2022.07.14

kafka SASL 인증 구축하기

※오타주의! 오타하나에 매우 민감한 작업임.. 우선 시작전에 인스턴스 구성을 설명하겠다. peter-zk01.foo.bar : kerberos Server (원래 이용도가 아닌데, 자원이 없어서..) peter-kafka01.foo.bar : broker Server 아무 Server : Client용 Server 최소 3대가 필요하고, broker가 replication으로 다중으로 운영된다면 broker는 여러개 여도 된다. kerberos Server는 별도로 빼도 되고 그냥 broker서버에다가 같이 올려도 잘돌아간다. 당연히 운영을 생각한다면 분리하는것이 맞지만, 테스트용이라면 같이해도 무방 Kerberos 서버 세팅은 내가 공부한 책의 github에 있는 ansible-playbook를 실행하..

PaaS/MQ 2022.07.14

kafka 클러스터 만들기

kafka broker 클러스터는 master / slave 개념이 없다. 그냥 다 동등한 broker. 다만 partition에는 Leader와 Follower가 있으며 이 Leader 파티션을 각 broker에 균등하게 분배 해주는것이 kafka 부하분산의 핵심 그리고 quorum 개념으로 꼭 홀수의 노드구성이 필요하다는 것은 잘 알것이다. kafka 서버 설치는 이전 포스팅을 참고해서 진행바란다. https://armyost.tistory.com/254?category=1028239 kafka 서버 설치하기 CentOS7을 기준으로 작성한 가이드 입니다. JDK 설치 # sudo yum install java-1.8.0-openjdk-devel # java -version kafka 서버 Insta..

PaaS/MQ 2022.07.13

Cloud에서 k8s istio 상세설명+네트워크 흐름+Service Discovery

아래 내용관련하여 제대로된 포스팅이 없어서, 총망라해서 정리하였다. k8s에서 MSA기반 어플리케이션 구축시 MSA 모듈간 상호 참조하는 샘플링과 Service Discovery, Network Flow에 대한 정리가 잘없더라... 그래서 정리하였다. CASE 1. 외부호출-MSA모듈 통신 AWS 의 경우 istio gateway영역은 아래와 같이 하기를 권장한다. ① AWS의 경우 k8s Gateway 리소스에서 AWS ALB Controller Class를 사용함으로써 Cloud 영역에서 관리가 가능한 로드벨런서가 생성된다. ② 해당 Ingress Gateway는 Ingress Controller로 트래픽을 전송한다. ③ Ingress Controller는 라우터로써 역할하며, 패킷의 Header와 ..

PaaS/Kubernetes 2022.07.11

엔터프라이즈용 kafka의 환경구성

엔터프라이즈 환경에서는 장애 복구등을 위해 하나 이상의 데이터 센터를 운영, 관리하는 경우가 많습니다. 따라서 kafka클러스터 역시 다수의 데이터 센터에 배치되어 있으므로, kafka와 kafka간의 데이터 리플리케이션은 필수 입니다. 이때 kafka간의 데이터 리플리케이션에는 주로 미러 메이커를 사용합니다. 커넥터 기반의 미러메이커 2.0 장애복구 차원에서 다중 데이터센터를 운영하는 경우 각 데이터 센터에 kafka 클러스터를 배치하고 kafka와 kafka간에는 리플리케이션을 구성해야 합니다. 두번째 최근 가장 흔한 사례로써 온프레미스에서의 데이터를 클라우드로 마이그레이션하려는 경우에는 온프레임스에 kafka를 하나 두고 클라우드에 또 다른 kafka를 두어서 온프레미스에서 클라우드로 리플리케이션 ..

PaaS/MQ 2022.07.08