NDC/Server

[NDC 2015] <쿠키런> 바쁘고 가난한 개발자를 위한 S3 기반 로그 시스템

MAKGA 2023. 1. 5. 22:03
320x100

쿠키런 로그

__ 매일 200 ~ 400 GB의 JSON 텍스트 형식

__ 비정형 스키마

 

 

로그 수집

__ Apache Kafka 사용

__ 분산 메세징 시스템: Publish / Subscribe

__ 일별 토픽, 4일치 저장

 

Kafka의 장점

__ 메시지를 복제해 저장

____ 노드 장애에 강함

____ 서버 업데이트 및 재부팅이 상시 가능

__ 단순한 저장소 구조로 오류가 잘 안남

__ 높은 읽기 / 쓰기 대역폭

 

Kafka 사용시 주의점

__ 메시지 중복은 피할 수 없다 (기록 성공 응답을 못받으면 중복 발생)

 

Logstash -> Kafka

__ 컴포넌트를 멈추면 로그가 유실 발생

__ Logstash는 Push 방식, Kafka는 Pull 방식

 

 

로그 백업 - Amazon S3

__ 무햔 용량

__ 고가용성

__ 저렴한 유지비

 

블럭 압축

__ Snappy Framed Format 사용

__ 4MB 원본 블럭 단위로 압축 -> 1MB

__ 압축 블럭을 이어붙이면 하나의 거대한 압축 파일

 

 

실시간 로그 조회

LevelDB

__ Key-Value 스토리지

__ 구글 제품

__ 범위 쿼리 지원

__ 초당 10만건 쓰기 가능

 

실시간 로그 서버

__ LevelDB엔 네트워크 API가 없음

__ REST API 서버를 Go로 작성

__ 일별 LevelDB

 

로그 브로커

__ 과거 로그는 S3, 최근 로그는 실시간 로그 서버에서 가져옴


출처: http://ndcreplay.nexon.com/NDC2015/sessions/NDC2015_0067.html

320x100