본문 바로가기

2019/08

kafka 운영 - kafka의 Exception들 - (1) Kafka를 운영하면서 이런 저런 에러메시지를 보게 됩니다. 그러고 문서를 찾아보거나 검색을 합니다. 그러면서 쌓아가는 지식도 있지만, 얻어 맞기 전에 대비를 하는 것도 괜찮겠다는 생각이 들었습니다. 개발자에게 있어 가장 좋은 교보재는 소스코드와 그 주석이라는 생각을 가지고 있기 때문에, Kafka 가 발생시키는 Exception 의 종류를 살펴보고, 이 Exception 은 어떤 상황에 발생하는지, Exception을 회피하기 위한 조건은 무엇이 있는지를 미리 알아두면, 좀 더 운영에 도움이 될 것 같아 Kafka의 소스코드를 참고하여 정리 해 보았습니다. Kafka의 Exception 구조 /** * The base class of all other Kafka exceptions */ public c.. 더보기
kafka 운영 - 기본적인 환경 설정 경험담 kafka 를 접한지 1년여의 시간이 흘렀고, 2018년 말부터 로컬 테스트부터 시작해, 테스트망, 검증망을 거쳐 운영망에서 kafka를 운영한지 3개월 정도가 되었습니다. kafka를 개인 컴퓨터에서 테스트용으로 쓸 때는 환경에 크게 고민을 하지 않고 기능적으로 제대로 돌아가는지를 신경 쓰지만 운영 시스템에 올리기 시작하면서부터는, 이 시스템의 환경을 어떻게 구성해야 최대한 안정적으로 돌아가게 될지, 성능을 더 끌어낼 방법은 무엇일지 이런 저런 고민을 하였습니다. 카프카, 데이터 플랫폼의 최강자, 카프카 핵심 가이드와 같은 좋은 책들의 도움을 받아 기본적인 것들을 공부하고, 운영 환경을 구성하면서, kafka를 구축하기 이전 ElasticSearch 를 구축했던 경험을 떠올리며, ElasticSearc.. 더보기
Kafka 보안 (2) - SASL/PLAIN 이전의 포스트에서 JAVA가 사용하는 JAAS 및 프로토콜-보안메커니즘을 분리하는 SASL 에 대해서 살펴보았다. kafka는 SASL의 몇 가지 메커니즘을 활용하여 주키퍼-브로커, 브로커-클라이언트 간의 인증을 적용할 수 있는데, 이번 포스트에서는 그 방법 중 가장 간단한 방법이라고 생각되는 SASL/PLAIN 에 대해서 소개하려 한다. SASL/PLAIN은 username/password 기반으로 인증을 수행하는 방식이며 안전한 인증을 위해서는 TLS 와 병행할 것을 권장한다. 이번 포스트에서 소개할 예제는 브로커-클라이언트 간의 SASL/PLAIN이며 TLS 없이 SASL/PLAIN 을 구현한다. 일단 이번 포스트에서 설명할 것의 순서는 아래와 같다 1. broker (kafka 서버) 설정 2. .. 더보기
Kafka 보안 (1) - JAAS 및 SASL 연초부터 Kafka를 활용해야겠다고 마음 먹고 겪은 프로세스를 살펴보면, 처음엔 제대로 설정해서 올리는 것에 중점을 두고, 설치 및 설정에 어느 정도 익숙해지니 설치 자체는 쉘스크립트를 만들어 어느 정도 한 번에 설치 및 서비스 구성이 되도록 할 수 있게 되었다. 그 다음으로는 안정적으로 굴러가는 것에 신경을 쓰자고 마음 먹고 JMX 메트릭을 모니터링 한다거나, 로그 파일에서 나타나는 각종 메시지들에 관심을 가지게 되었다. 그러고 나니, 다음으로 관심이 가는 것은 얼마나 Kafka 클러스터를 안전하게 굴릴 수 있느냐. 라는 것이다, 물론 현재 운영하고 있는 환경에서는 네트워크 방화벽 장비라든가 OS의 방화벽 설정 등을 통해 IP를 기반으로 허가 받지 않은 접근을 통제하고 있지만, 꼭 이런 환경에서만 한다.. 더보기
Java Authentication and Authorization Service (JAAS) - 요약 5월부터 알고리즘을 공부하겠다는 맹세가 무색하게, 연초부터 하던 일이 매우 바빠져서 5,6,7월을 일로만 보냈다. 연초부터 약간씩 구성해오던 Kafka를 바탕으로 하여 그것과 연계된 서비스들을 이리저리 만들어내고 붙이고 했는데, 방화벽 레벨에서 제어를 하는 것과 별개로 Kafka의 보안 기능을 활용하고 싶다는 생각이 들어서 조금씩 보고 있는 중이다. Kafka의 보안 기능들은 JAAS 와 관련이 있으므로, Kafka의 보안 기능을 활용하기에 앞서서 해당 내용을 좀 정리하고 넘어가려고 정리 해 봄. 보통은 인증/인가에 관해서는 네트워크상에서 인증/인가 위주로 신경 썼고... 애플리케이션 자체의 권한에 대해서는 예전에 설치형으로 판매하던 솔루션에 대해서 구현한 적이 있긴 한데, 이걸 정리하면서 느낀 점은 그.. 더보기