[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유Hyojun Jeon
NDC18에서 발표하였습니다. 현재 보고 계신 슬라이드는 1부 입니다.(총 2부)
- 1부 링크: https://goo.gl/3v4DAa
- 2부 링크: https://goo.gl/wpoZpY
(SlideShare에 슬라이드 300장 제한으로 2부로 나누어 올렸습니다. 불편하시더라도 양해 부탁드립니다.)
어느 해커쏜에 참여한 백엔드 개발자들을 위한 교육자료
쉽게 만든다고 했는데도, 많이 어려웠나봅니다.
제 욕심이 과했던 것 같아요. 담번엔 좀 더 쉽게 !
- 독자 : 백엔드 개발자를 희망하는 사람 (취준생, 이직 희망자), 5년차 이하
- 주요 내용 : 백엔드 개발을 할 때 일어나는 일들(개발팀의 일)
- 비상업적 목적으로 인용은 가능합니다. (출처 명기 필수)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)Hyojun Jeon
NDC18에서 발표하였습니다. 현재 보고 계신 슬라이드는 2부 입니다.(총 2부)
- 1부 링크: https://goo.gl/3v4DAa
- 2부 링크: https://goo.gl/wpoZpY
(SlideShare에 슬라이드 300장 제한으로 2부로 나누어 올렸습니다. 불편하시더라도 양해 부탁드립니다.)
This document discusses using BigQuery and Dataflow for ETL processes. It explains loading raw data from databases into BigQuery, transforming the data with Dataflow, and writing the results. It also mentions pricing of $5 per terabyte for BigQuery storage and notes that Dataflow provides virtual CPUs and RAM. Finally, it includes a link about performing ETL from relational databases to BigQuery.
한빛데브그라운드에서 발표했던 내용입니다.
발표 영상 : https://youtu.be/ohpfSLf0V3Y
--
스타트업 비즈니스에서 데이터를 활용한 전략 수립과 의사결정은 필수적인 요소입니다. 서비스 운영 데이터에서부터 다양한 고객의 행동 로그, 소셜 미디어 데이터까지 다양한 데이터를 모두 모아 분석 환경을 구축하기 위해서는 많은 준비와 고민이 필요합니다. 스타트업에서 빠른 속도와 최소한의 비용, 다양한 분석 Tool들과 연동되는 Data Pipeline, Data Lake, Data Warehouse 구축 경험기를 공유하고자 합니다. 이 과정을 통해 애널리틱스 파이프라인을 구축 과정과 S3, Glue, Athena,EMR, Quicksight와 같은 서버리스 애널리틱스 서비스에 대한 구축 사례를 확인하실 수 있습니다.
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...Amazon Web Services Korea
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study
이 세션에서는 데브시스터즈의 Case Study를 통하여 Data Lake를 만들고 사용하는데 있어 요구 되는 사항들에 대해 공유합니다. 여러 목적에 맞는 데이터를 전달하기 위해 AWS 를 활용하여 Data Lake 를 구축하게된 계기와 실제 구축 작업을 하면서 경험하게 된 것들에 대해 말씀드리고자 합니다. 기존 인프라 구조 대비 효율성 및 비용적 측면을 소개해드리고, 빅데이터를 이용한 부서별 데이터 세분화를 진행할 때 어떠한 Architecture가 사용되었는지 소개드리고자 합니다.
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...Amazon Web Services Korea
서비스 런칭을 위해 라이온하트와 카카오게임즈가 어떻게 최적 성능의 인스턴스를 선택하고, Windows 운영 체제를 최적화하며, 왜 Amazon Aurora를 기본 데이터베이스로 채택하였는지를 설명합니다. 또한, 출시부터 운영까지의 과정에서 MMORPG가 어떻게 AWS 상에서 설계되고, 게임 서버 성능을 극대할 수 있었는지에 대해 전달해드립니다.
배민찬(https://www.baeminchan.com) 서비스의 백엔드 시스템 중 일부가 지난 1년간 어떤 고민과 아이디어, 결과물을 만들어냈는지 공유하려고 합니다. 발표 중 언급되는 용어나 도구에 대해 일반적인 정의나 간단한 설명은 언급되나 자세히 다루지 않습니다. 사용된 도구들로 어떻게 이벤트 기반 분산 시스템을 만들었는지에 대한 이야기가 중심입니다.
Apache kafka performance(throughput) - without data loss and guaranteeing dat...SANG WON PARK
Apache Kafak의 성능이 특정환경(데이터 유실일 발생하지 않고, 데이터 전송순서를 반드시 보장)에서 어느정도 제공하는지 확인하기 위한 테스트 결과 공유
데이터 전송순서를 보장하기 위해서는 Apache Kafka cluster로 partition을 분산할 수 없게되므로, 성능향상을 위한 장점을 사용하지 못하게 된다.
이번 테스트에서는 Apache Kafka의 단위 성능, 즉 partition 1개에 대한 성능만을 측정하게 된다.
향후, partition을 증가할 경우 본 테스트의 1개 partition 단위 성능을 기준으로 예측이 가능할 것 같다.
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...Amazon Web Services Korea
<쿠키런:킹덤> 게임 유저 수가 급증하면서 지금까지 겪어보지 못했던 대규모 인프라 환경을 운영하게 되었고, 그 과정에서 다양한 문제점들에 부딪히게 되었습니다. 이 세션에서는 AWS에서 Stateful 한 게임 서버를 어떻게 운영해야 하는지 아키텍처 관점에서 먼저 설명한 후, 수 백만 명의 사용자를 감당하기 위해 해결해야 했던 어려움에 대해 Scalability 관점에서 설명해드립니다.
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편Seongyun Byeon
The document contains log data from user activities on a platform. There are three columns - user_id, event, and event_date. It logs the activities of 5 users over several days, including events like logins, posts, comments, views. It also includes some aggregated data on unique events and totals by user.
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)Hyojun Jeon
NDC18에서 발표하였습니다. 현재 보고 계신 슬라이드는 2부 입니다.(총 2부)
- 1부 링크: https://goo.gl/3v4DAa
- 2부 링크: https://goo.gl/wpoZpY
(SlideShare에 슬라이드 300장 제한으로 2부로 나누어 올렸습니다. 불편하시더라도 양해 부탁드립니다.)
This document discusses using BigQuery and Dataflow for ETL processes. It explains loading raw data from databases into BigQuery, transforming the data with Dataflow, and writing the results. It also mentions pricing of $5 per terabyte for BigQuery storage and notes that Dataflow provides virtual CPUs and RAM. Finally, it includes a link about performing ETL from relational databases to BigQuery.
한빛데브그라운드에서 발표했던 내용입니다.
발표 영상 : https://youtu.be/ohpfSLf0V3Y
--
스타트업 비즈니스에서 데이터를 활용한 전략 수립과 의사결정은 필수적인 요소입니다. 서비스 운영 데이터에서부터 다양한 고객의 행동 로그, 소셜 미디어 데이터까지 다양한 데이터를 모두 모아 분석 환경을 구축하기 위해서는 많은 준비와 고민이 필요합니다. 스타트업에서 빠른 속도와 최소한의 비용, 다양한 분석 Tool들과 연동되는 Data Pipeline, Data Lake, Data Warehouse 구축 경험기를 공유하고자 합니다. 이 과정을 통해 애널리틱스 파이프라인을 구축 과정과 S3, Glue, Athena,EMR, Quicksight와 같은 서버리스 애널리틱스 서비스에 대한 구축 사례를 확인하실 수 있습니다.
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...Amazon Web Services Korea
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study
이 세션에서는 데브시스터즈의 Case Study를 통하여 Data Lake를 만들고 사용하는데 있어 요구 되는 사항들에 대해 공유합니다. 여러 목적에 맞는 데이터를 전달하기 위해 AWS 를 활용하여 Data Lake 를 구축하게된 계기와 실제 구축 작업을 하면서 경험하게 된 것들에 대해 말씀드리고자 합니다. 기존 인프라 구조 대비 효율성 및 비용적 측면을 소개해드리고, 빅데이터를 이용한 부서별 데이터 세분화를 진행할 때 어떠한 Architecture가 사용되었는지 소개드리고자 합니다.
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...Amazon Web Services Korea
서비스 런칭을 위해 라이온하트와 카카오게임즈가 어떻게 최적 성능의 인스턴스를 선택하고, Windows 운영 체제를 최적화하며, 왜 Amazon Aurora를 기본 데이터베이스로 채택하였는지를 설명합니다. 또한, 출시부터 운영까지의 과정에서 MMORPG가 어떻게 AWS 상에서 설계되고, 게임 서버 성능을 극대할 수 있었는지에 대해 전달해드립니다.
배민찬(https://www.baeminchan.com) 서비스의 백엔드 시스템 중 일부가 지난 1년간 어떤 고민과 아이디어, 결과물을 만들어냈는지 공유하려고 합니다. 발표 중 언급되는 용어나 도구에 대해 일반적인 정의나 간단한 설명은 언급되나 자세히 다루지 않습니다. 사용된 도구들로 어떻게 이벤트 기반 분산 시스템을 만들었는지에 대한 이야기가 중심입니다.
Apache kafka performance(throughput) - without data loss and guaranteeing dat...SANG WON PARK
Apache Kafak의 성능이 특정환경(데이터 유실일 발생하지 않고, 데이터 전송순서를 반드시 보장)에서 어느정도 제공하는지 확인하기 위한 테스트 결과 공유
데이터 전송순서를 보장하기 위해서는 Apache Kafka cluster로 partition을 분산할 수 없게되므로, 성능향상을 위한 장점을 사용하지 못하게 된다.
이번 테스트에서는 Apache Kafka의 단위 성능, 즉 partition 1개에 대한 성능만을 측정하게 된다.
향후, partition을 증가할 경우 본 테스트의 1개 partition 단위 성능을 기준으로 예측이 가능할 것 같다.
쿠키런: 킹덤 대규모 인프라 및 서버 운영 사례 공유 [데브시스터즈 - 레벨 200] - 발표자: 용찬호, R&D 엔지니어, 데브시스터즈 ...Amazon Web Services Korea
<쿠키런:킹덤> 게임 유저 수가 급증하면서 지금까지 겪어보지 못했던 대규모 인프라 환경을 운영하게 되었고, 그 과정에서 다양한 문제점들에 부딪히게 되었습니다. 이 세션에서는 AWS에서 Stateful 한 게임 서버를 어떻게 운영해야 하는지 아키텍처 관점에서 먼저 설명한 후, 수 백만 명의 사용자를 감당하기 위해 해결해야 했던 어려움에 대해 Scalability 관점에서 설명해드립니다.
BigQuery의 모든 것(기획자, 마케터, 신입 데이터 분석가를 위한) 입문편Seongyun Byeon
The document contains log data from user activities on a platform. There are three columns - user_id, event, and event_date. It logs the activities of 5 users over several days, including events like logins, posts, comments, views. It also includes some aggregated data on unique events and totals by user.
[PYCON Korea 2018] Python Application Server for Recommender System Kwangseob Kim
한글 수정: https://www.slideshare.net/kimkwangseop/pycon-korea-2018-python-application-server-for-recommender-system-110602118
추천 시스템을 위한 어플리케이션 서버 개발 후기
@ PYCON Korea 2018
link: https://www.pycon.kr/2018/program/33
우리가 이름만 들어도 아는 유명 IT 서비스들의 화려한 웹페이지도, 예쁜 모바일 앱도 그 뒤에는 탄탄하고 강력한 분산 시스템을 기반으로 합니다. 이러한 백엔드 시스템이 부실할 경우 서비스나 앱은 그야말로 사상누각입니다. 본 세미나에서는 이러한 시스템들을 만들때 풀어야 할, 가장 기본이 되는 문제와 이슈들 12가지에 도전해봅니다.
Spark machine learning & deep learninghoondong kim
Spark Machine Learning and Deep Learning Deep Dive.
Scenarios that use Spark hybrid with other data analytics tools (MS R on Spark, Tensorflow(keras) with Spark, Scikit-learn with Spark, etc)
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버Heungsub Lee
NDC14에서 발표한 "[야생의 땅: 듀랑고] 서버 아키텍처" 세션의 슬라이드입니다.
슬라이드에 설명이 많지 않은데, 디스이즈게임에서 발표 내용을 잘 정리해주었습니다. 기사도 함께 보시면 좋을 것 같습니다.
http://www.thisisgame.com/webzine/news/nboard/4/?n=54955
The document discusses consistent hashing, which is a technique for distributing data across multiple servers. It works by assigning each server and data item a unique hash value and storing each data item on the first server whose hash value comes after the data's hash value. This allows redistributing only a fraction of data when servers are added or removed. The key aspects are using a hash function to assign all items unique values and treating the hash ring as a circular space to determine data placement.
Integration between Filebeat and logstash DaeMyung Kang
Filebeat sends log files to Logstash. There are several cases described for integrating Filebeat and Logstash:
1) A simple configuration where one log file is sent from Filebeat to Logstash and output to one file.
2) Another simple configuration where multiple log files are sent from Filebeat to Logstash using a wildcard, and output to one file.
3) An advanced configuration where multiple log files are sent from Filebeat to Logstash, and Logstash outputs each file to a separate file based on the original file name using filtering.
4) A more advanced configuration where log files are sent from Filebeat to Logstash, Logstash parses the timestamp and uses it as the output
This document discusses Kafka timestamps and offsets. It explains that Kafka assigns timestamps to messages by default as the sending time from the client. The timestamps are stored in the timeindex file, which uses binary search to fetch logs by timestamp. When a log segment rolls, it is typically due to the segment size exceeding the max, the time since the oldest message exceeding the max, or the indexes becoming full. If a message is appended with an older timestamp than what is in the timeindex, it will overwrite the existing entries.
This document discusses how Kafka handles timestamps and offsets. It explains that Kafka maintains offset and time-based indexes to allow fetching log data by offset or timestamp. When new log records are appended, the indexes are updated with the largest offset and timestamp. If a record has a timestamp older than the existing minimum in the time index, Kafka will still append it but the time index entry will not be updated.
This document discusses Redis access control and the Redis ACL protocol version 1 (RCP1). It provides background on security issues with exposing Redis and Memcached servers publicly without authentication. RCP1 aims to address limitations of the existing requirepass authentication by defining user permissions through command groups and implementing access control using bit arrays. The presenter then demonstrates RCP1.
1) This document provides examples of how to use Spark DataFrames and SQL to load and analyze Iris flower data. It shows how to load data from files and Kafka, define schemas, select, filter, sort, group, and join dataframes.
2) Methods like spark.read, dataframe.select(), dataframe.filter(), and dataframe.groupBy() are used to load and query the data. StructType and case classes define the schema. SQL statements can also be used via the sqlContext.
3) User defined functions (UDFs) are demonstrated to handle custom data types like maps. The examples provide an overview of basic Spark DataFrame and SQL functionality.
2. 발표자 소개
● 오픈 프론티어 5기 파트타임(현)
● Data Engineer at Udemy(현)
● Software Engineer at Kakao(카카오 스토리)
● Software Engineer at Naver(네이버 메일)
● Software Engineer at Finaldata
26. 자체 관리하면 서버가 여러대일때...
Image 2는 어디서 찾아야 할까?
Web Browser
Mobile Apps
API Server 1
API Server 2 File Server
Image 2
Image 9
Image 3
File Server
Image 1
Image 10
Image 4
27. 자체 관리 방식의 문제점
● 디스크 등의 증설 시기를 맞추기가 어렵다.
● 데이터 유실 확률이 높다.
● Object Store 형태로 갈려면, 구현하기가 어려움.
○ 큰 회사들은 대부분 자체 구현해서 씀.
58. 코디네이터
API Server
API Server
API Server
Cordinator
Auth Server
Auth Server
Auth Server
2. Auth Server 추가
3. Auth Server 가 추가
되었음, 다시 목록을 가
져가시오.
1. Auth Server 의 변동
을 알려줘!!!
61. Circuit Breaker 의 필요성
● 현재의 서비스는 다 수의 많은 외부 서비스의 API(자기 팀 이외에, 또는
자기 팀에서 관리하더라도 다른 서버의)를 사용하게 됨.
● 보통은 장애를 대비해서 Timeout을 설정하게 되는데…
○ Timeout 이 길면... 전체적인 서비스가 계속 느려지게 됨.
○ 해당 스레드/프로세스가 Timeout 동안 다른 작업을 못함.
● API 중에 중요하지 않은 서비스들도 있음(광고를 보여준다거나…)
79. Blue/Green 야매 버전 배포의 문제점
● 결국 둘 다 리소스를 많이 사용하는 경우, 시스템에 장애가 발생할 수
있다.
● 피크 타임은 피해서 배포해야 한다.
● Graceful Shutdown 잘 되어 있어야 한다. (Router 의 역할도 중요함.)
80. Blue/Green 배포와 데이터베이스 스키마 변경
● DB 스키마 변경은 지옥으로 가는 지름길…
○ 최대한 추가만 하고, 삭제와 변경은 하지 않는다.
○ 몇번의 배포이후 확실히 사용하지 않는다는 것이 확인될 때
삭제가능.
● 롤백보다는 빨리 고치는 걸 추천
● Feature Flag를 활용해보자.
88. Feature Flag(Switch) 의 장점
● 특정 기능에 문제가 생겼을 때, 해당 기능을 꺼버리면 된다.
○ 롤백 배포도 필요 없음.
● 다만 특정 기능이 동작하지 않는다면, UI에서는 어떻게 보여질지, 협의
가 필요.
○ 클라이언트 작업이 필요할 수 있음.
■ 클라이언트는 특정값이 오는 걸로 가정해버리면... 다 함께
Crash!!!
89. 요약
● 대용량 서비스 설계는
○ SPOF를 줄이고 가능한 장비추가로 인한 선형적인 성능 증대가 필
요하다.
● 여러가지 상황에 맞추기 위해 자동화가 필수(배포/테스트)
○ 몇 백대 이상의 서버를 관리해야 한다.
● 항상. 이러면 수백만명이 동시에 써도 괜찮을까를 물어보자.