2. 어떤 일을 하나요?
• 『AxE』, 『포인트블랭크:스트라이크』 게임 서버들이 쏟아내는 테라바이트 단위의 로그를
수집 및 저장하고 검색 및 분석할 수 있도록 Kafka, Spark, Airflow, SaltStack, Superset
등 여러 오픈소스 솔루션을 기반으로 한 시스템을 개발합니다.
• 이러한 시스템을 바탕으로 사용자의 데이터와 행동을 집계, 분석합니다.
3. 로그 시스템 & 활용 현황
• 넥슨레드에서 실전 활용 중
• AxE: 일간 1.2TB 로그 처리
• PBS: 일간 150GB 로그 처리
• 활용 영역
• 데일리 유저 분석 및 현황 전달
• 서비스 운영용 로그 조회
• 서버 성능 시각화
• 그 외 비정기 분석, 조회 등
5. Stream
로그 시스템 구성 - 수집
• 서버에서는 파일로 로그를 남김
• 유저 로그, 단순 서버 로그, 에러 로그, …
• JSON, Text, …
• 서버에 있는 수집기가 로그를 묶어서 넘김
• Kafka
• Failure에 강하고 Throughput 성능이 높음
• 로그를 수집한 후 입맛에 맞게 가공하여 다른 서비스
에 제공
6. 로그 시스템 구성 - 적재
• 편하게 SQL로 보고 싶다.
• PostgreSQL - JSON
• JSON 타입으로 schema-less 데이터 저장
• 대용량일 때 성능이 좋았으면 좋겠다.
• S3 – Apache Parquet
• JSON 대비 용량 1/10로 감소
• 두 가지 방식을 선택적으로 사용 중
Connect
Amazon S3
7. 로그 시스템 구성 – 적재 및 조회
• S3에 있는 Parquet도 편하게 SQL로 보고 싶다.
• Spark ThriftServer (HiveServer2 interface)
• HiveQL로 S3의 Parquet 로그 조회
• JDBC, SQLAlchemy 등의 연결 지원 with
Amazon S3
8. 로그 시스템 구성 – 조회
with
Amazon S3
Log Pipeline
Interface
• Log Pipeline Interface
• In-House tool
• PostgreSQL / S3 구분 없이 조회
9. 로그 시스템 구성 – 시각화
with
Amazon S3 Superset
• Superset
• 로그를 대시보드로 시각화
• 개발자들을 위한 단순 SQL 조회도 가능
11. 로그 시스템 구성 – 분석
with
Amazon S3
• Airflow
• 로그를 가지고 해야할 온갖 작업들..
• 정리, 분석, 백업 등등
• 할 일을 잘 정의 해놓으면, 때 되면 알아
서 돌려준다.
12. 로그 시스템 구성 – 분석 예시
• 에러 현황 자동 메일 발송
• Spark 기반 게임 분석작업 수행 및 메일 발송
• S3 Parquet 로그 머징
• PostgreSQL, S3 로그를 백업
• 기타 잡다한 작업들
13. 로그 시스템 배포 및 운영
• 로그 용량이 커서 장비 수가 늘어난다면?
• 시스템을 각 장비에 직접 설치하기 귀찮음
• 장비가 늘어나면 설정/배포 실수하기 쉬움
• 비슷한 시스템인데 다른 게임이라고 처음
부터 다시 설치하기 귀찮다
14. 로그 시스템 배포 및 운영
• 솔루션 설치 정보, 환경설정 파일,
서비스 구성 등은 미리 정의되어
버전 저장소에 관리
• 클러스터 장비의 역할군만 설정
• 역할에 맞춰 모든 장비에 바로
디플로이
• 게임 별 설정 저장소만 마련
• 동일한 시스템을 커스텀 설정
으로 바로 배포하여 실전 투입with
Strea
m
Conne
ct
Amazon S3
Log
Pipeline
Interfac
e
Superset
with
Strea
m
Conne
ct
Amazon S3
Log
Pipeline
Interfac
e
Superset
with
Stream
Connect
Amazon S3
Log
Pipeline
Interfac
e
Superset
Log
Common
Game 3
Game 2
Game 1
15. 이런 분을 찾습니다
• 신입, 경력 무관
• 기본적인 Linux 활용 가능
• 오픈소스를 적극적으로 분석하고 활용, 개발 가능
• Python, Scala 사용 경험
• AWS 서비스를 다뤄본 경험
16. 이런 일을 같이 합니다.
• 로그 검색 성능 향상
• 간편한 디플로이와 모니터링
• 신규 프로젝트 요구사항을 쉽게 적용할 수 있는 기반
• 머신러닝 적용