SlideShare a Scribd company logo

AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)

1 of 19
Download to read offline
AWS와 함께한
쿠키런 서버 Re-architecting 사례
홍성진 Senior Technical Lead
데브시스터즈

1
강연자 소개
홍성진 (sungjinhong@devsisters.com)

• 시니어 테크니컬 리드, 데브시스터즈
• LINE COOKIE RUN, 쿠키런 for Kakao, 오븐브레이크 2 서버 개발
• 시니어 소프트웨어 엔지니어, 위클레이
- 영상통화 앱 클라이언트 및 서버 개발
- 프로토타입 서버 개발 (C, Erlang, MySQL, Hadoop, HBase, Riak, Redis)
- Lucene, Solr와 한글 형태소분석기 관련 작업, 웹 크롤러 및 머신러닝 기법 구현
• 통계기계번역팀, 소프트웨어 엔지니어링 인턴, 구글 코리아
- 형태소분석, 품사태깅, 웹 크롤러 구현, 훈련용 데이터 크롤링
• Django Project Contributor
- i18n 관련 기능 구현, 버그픽스, 한글 번역
2
Agenda

• 오븐브레이크2 서버의 구조
• 기존 서버 관리방식의 문제점
• Maven/CircleCI를 사용한 소스코드 형상관리
• Chef를 사용한 서버 형상관리
• CloudFormation을 사용한 인프라 형상관리
• AutoScale을 사용한 동적 처리용량 확장
• 최근 쿠키런 서버 동향

3
오븐브레이크2
전형적인 서버 구조의 예

4
오븐브레이크2 서버 구조

• 하드웨어 기반 서버를 본따 만든 서버 구성
• 가용성을 위해 로드밸런서 아래 두 대의 API
서버가 분산되어 있음

ELB

• 사용량 증가를 우려해 과도한 스팩을 사용
-

데이터베이스 - m2.2xlarge

-

API 서버 - m1.large

Tomcat

Tomcat

• 마스터-슬래이브 구조의 데이터베이스
• Backup과 파일 공유를 위한 NFS 서버

MySQL Master

• US-East에서 서비스 중
5

Slave Replica

Slave Replica
기존 서버 관리 방식의 한계

• 새로운 서버를 만들어야 할 경우 문제
- 매뉴얼 부족, 있는 자료는 오래된 내용
- 관리자가 교체되면서 회사에 남아있는 서버지식이 점점 사라짐
- Tomcat JVM에 설정되어있던 locale 환경설정, 누가 기억하지?
• 사용자 증가에 따른 관리 피로도 증가
- 급격한 확장에 대응이 불가능하기 때문에 오버스팩 서버 도입
- 오버스팩 서버 도입에 따른 비용 문제 발생

6

Recommended

소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안
소셜게임 서버 개발 관점에서 본 Node.js의 장단점과 대안Jeongsang Baek
 
쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기쿠키런 1년, 서버개발 분투기
쿠키런 1년, 서버개발 분투기Brian Hong
 
실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우 실전 서버 부하테스트 노하우
실전 서버 부하테스트 노하우 YoungSu Son
 
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3Heungsub Lee
 
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)
아마존 클라우드와 함께한 1개월, 쿠키런 사례중심 (KGC 2013)Brian Hong
 
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈
[Gaming on AWS] AWS와 함께 한 쿠키런 서버 Re-architecting 사례 - 데브시스터즈Amazon Web Services Korea
 
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) 마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) Amazon Web Services Korea
 
Ndc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCNdc14 분산 서버 구축의 ABC
Ndc14 분산 서버 구축의 ABCHo Gyu Lee
 

More Related Content

What's hot

AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015 AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015 Amazon Web Services Korea
 
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...Amazon Web Services Korea
 
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017Amazon Web Services Korea
 
Container, Container, Container -유재석 (AWS 솔루션즈 아키텍트)
Container, Container, Container -유재석 (AWS 솔루션즈 아키텍트)Container, Container, Container -유재석 (AWS 솔루션즈 아키텍트)
Container, Container, Container -유재석 (AWS 솔루션즈 아키텍트)Amazon Web Services Korea
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019devCAT Studio, NEXON
 
웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우IMQA
 
AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016
AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016
AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016Amazon Web Services Korea
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceXionglong Jin
 
Massive service basic
Massive service basicMassive service basic
Massive service basicDaeMyung Kang
 
Windows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance ComparisonWindows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance ComparisonSeungmo Koo
 
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지Changje Jeong
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버Heungsub Lee
 
How to build massive service for advance
How to build massive service for advanceHow to build massive service for advance
How to build massive service for advanceDaeMyung Kang
 
[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들NHN FORWARD
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴Terry Cho
 
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들Brian Hong
 
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015devCAT Studio, NEXON
 
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)Heungsub Lee
 
webservice scaling for newbie
webservice scaling for newbiewebservice scaling for newbie
webservice scaling for newbieDaeMyung Kang
 
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...문기 박
 

What's hot (20)

AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015 AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
 
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
 
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
마이크로서비스를 위한 AWS 아키텍처 패턴 및 모범 사례 - AWS Summit Seoul 2017
 
Container, Container, Container -유재석 (AWS 솔루션즈 아키텍트)
Container, Container, Container -유재석 (AWS 솔루션즈 아키텍트)Container, Container, Container -유재석 (AWS 솔루션즈 아키텍트)
Container, Container, Container -유재석 (AWS 솔루션즈 아키텍트)
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우웹서버 부하테스트 실전 노하우
웹서버 부하테스트 실전 노하우
 
AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016
AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016
AWS와 부하테스트의 절묘한 만남 :: 김무현 솔루션즈 아키텍트 :: Gaming on AWS 2016
 
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games ConferenceKGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
 
Massive service basic
Massive service basicMassive service basic
Massive service basic
 
Windows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance ComparisonWindows IOCP vs Linux EPOLL Performance Comparison
Windows IOCP vs Linux EPOLL Performance Comparison
 
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
AWS를 활용하여 Daily Report 만들기 : 로그 수집부터 자동화된 분석까지
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
 
How to build massive service for advance
How to build massive service for advanceHow to build massive service for advance
How to build massive service for advance
 
[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들[2018] Java를 위한, Java에 의한 도구들
[2018] Java를 위한, Java에 의한 도구들
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴
 
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
[DEVIEW 2021] 1000만 글로벌 유저를 지탱하는 기술과 사람들
 
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
 
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
 
webservice scaling for newbie
webservice scaling for newbiewebservice scaling for newbie
webservice scaling for newbie
 
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
MSA(Service Mesh), MDA(Data Mesh), MIA(Inference Mesh) 기술동향 소개-박문기@메ᄀ...
 

Similar to AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)

넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...Amazon Web Services Korea
 
1711 azure-live
1711 azure-live1711 azure-live
1711 azure-live세준 김
 
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdfOpen Source Consulting
 
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트::  AWS Summit Online Korea 2020천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트::  AWS Summit Online Korea 2020
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020Amazon Web Services Korea
 
마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관
마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관
마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관제관 이
 
로그 수집, 집약
로그 수집, 집약로그 수집, 집약
로그 수집, 집약kidoki
 
Photon게임서버 네트워크엔진과 GBaaS를 통한 AWS DB 서비스 구성 방법 소개 - AWS Summit Seoul 2017
Photon게임서버 네트워크엔진과 GBaaS를 통한 AWS DB 서비스 구성 방법 소개 - AWS Summit Seoul 2017Photon게임서버 네트워크엔진과 GBaaS를 통한 AWS DB 서비스 구성 방법 소개 - AWS Summit Seoul 2017
Photon게임서버 네트워크엔진과 GBaaS를 통한 AWS DB 서비스 구성 방법 소개 - AWS Summit Seoul 2017Amazon Web Services Korea
 
AWS 클라우드로 천만명 웹 서비스 확장하기 - 윤석찬 백승현 - AWS Summit 2016
AWS 클라우드로 천만명 웹 서비스 확장하기 - 윤석찬 백승현 - AWS Summit 2016AWS 클라우드로 천만명 웹 서비스 확장하기 - 윤석찬 백승현 - AWS Summit 2016
AWS 클라우드로 천만명 웹 서비스 확장하기 - 윤석찬 백승현 - AWS Summit 2016Amazon Web Services Korea
 
[AWS Media Symposium 2019] 고객사례 | SBS Web Service Cloud Migration Process - 김...
[AWS Media Symposium 2019] 고객사례 | SBS Web Service Cloud Migration Process - 김...[AWS Media Symposium 2019] 고객사례 | SBS Web Service Cloud Migration Process - 김...
[AWS Media Symposium 2019] 고객사례 | SBS Web Service Cloud Migration Process - 김...Amazon Web Services Korea
 
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018Amazon Web Services Korea
 
한국사이버테크 Ha dr 구축전략 160527
한국사이버테크 Ha dr 구축전략 160527한국사이버테크 Ha dr 구축전략 160527
한국사이버테크 Ha dr 구축전략 160527성호 윤
 
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017Amazon Web Services Korea
 
[AWS Migration Workshop] SQL Server Performance on AWS
[AWS Migration Workshop]  SQL Server Performance on AWS[AWS Migration Workshop]  SQL Server Performance on AWS
[AWS Migration Workshop] SQL Server Performance on AWSAmazon Web Services Korea
 
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetesNAVER D2
 
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례SONG INSEOB
 
Open infradays 2019_msa_k8s
Open infradays 2019_msa_k8sOpen infradays 2019_msa_k8s
Open infradays 2019_msa_k8sHyoungjun Kim
 
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기SeungYong Oh
 
AWS Partner ConneXions Online – New Year Edition - AWS re:Invent 2020 Tech Re...
AWS Partner ConneXions Online – New Year Edition - AWS re:Invent 2020 Tech Re...AWS Partner ConneXions Online – New Year Edition - AWS re:Invent 2020 Tech Re...
AWS Partner ConneXions Online – New Year Edition - AWS re:Invent 2020 Tech Re...Amazon Web Services Korea
 

Similar to AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS) (20)

넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...
넥슨 글로벌 플랫폼 구축 이야기 : DB Migration case study (임현수 플랫폼인프라실 Technical Manager, 넥...
 
KGC 2013 DevSisters
KGC 2013 DevSistersKGC 2013 DevSisters
KGC 2013 DevSisters
 
2015 oce garuda
2015 oce garuda2015 oce garuda
2015 oce garuda
 
1711 azure-live
1711 azure-live1711 azure-live
1711 azure-live
 
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
[오픈테크넷서밋2022] 국내 PaaS(Kubernetes) Best Practice 및 DevOps 환경 구축 사례.pdf
 
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트::  AWS Summit Online Korea 2020천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트::  AWS Summit Online Korea 2020
천만사용자를 위한 AWS 클라우드 아키텍처 진화하기 – 문종민, AWS솔루션즈 아키텍트:: AWS Summit Online Korea 2020
 
마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관
마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관
마이크로서비스 아키텍처 기반의 의료정보시스템 고도화 전환사례.건국대학교병원.이제관
 
로그 수집, 집약
로그 수집, 집약로그 수집, 집약
로그 수집, 집약
 
Photon게임서버 네트워크엔진과 GBaaS를 통한 AWS DB 서비스 구성 방법 소개 - AWS Summit Seoul 2017
Photon게임서버 네트워크엔진과 GBaaS를 통한 AWS DB 서비스 구성 방법 소개 - AWS Summit Seoul 2017Photon게임서버 네트워크엔진과 GBaaS를 통한 AWS DB 서비스 구성 방법 소개 - AWS Summit Seoul 2017
Photon게임서버 네트워크엔진과 GBaaS를 통한 AWS DB 서비스 구성 방법 소개 - AWS Summit Seoul 2017
 
AWS 클라우드로 천만명 웹 서비스 확장하기 - 윤석찬 백승현 - AWS Summit 2016
AWS 클라우드로 천만명 웹 서비스 확장하기 - 윤석찬 백승현 - AWS Summit 2016AWS 클라우드로 천만명 웹 서비스 확장하기 - 윤석찬 백승현 - AWS Summit 2016
AWS 클라우드로 천만명 웹 서비스 확장하기 - 윤석찬 백승현 - AWS Summit 2016
 
[AWS Media Symposium 2019] 고객사례 | SBS Web Service Cloud Migration Process - 김...
[AWS Media Symposium 2019] 고객사례 | SBS Web Service Cloud Migration Process - 김...[AWS Media Symposium 2019] 고객사례 | SBS Web Service Cloud Migration Process - 김...
[AWS Media Symposium 2019] 고객사례 | SBS Web Service Cloud Migration Process - 김...
 
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
게임 서비스를 위한 AWS상의 고성능 SQL 데이터베이스 구성 (이정훈 솔루션즈 아키텍트, AWS) :: Gaming on AWS 2018
 
한국사이버테크 Ha dr 구축전략 160527
한국사이버테크 Ha dr 구축전략 160527한국사이버테크 Ha dr 구축전략 160527
한국사이버테크 Ha dr 구축전략 160527
 
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
AWS DMS를 통한 오라클 DB 마이그레이션 방법 - AWS Summit Seoul 2017
 
[AWS Migration Workshop] SQL Server Performance on AWS
[AWS Migration Workshop]  SQL Server Performance on AWS[AWS Migration Workshop]  SQL Server Performance on AWS
[AWS Migration Workshop] SQL Server Performance on AWS
 
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
 
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
 
Open infradays 2019_msa_k8s
Open infradays 2019_msa_k8sOpen infradays 2019_msa_k8s
Open infradays 2019_msa_k8s
 
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
 
AWS Partner ConneXions Online – New Year Edition - AWS re:Invent 2020 Tech Re...
AWS Partner ConneXions Online – New Year Edition - AWS re:Invent 2020 Tech Re...AWS Partner ConneXions Online – New Year Edition - AWS re:Invent 2020 Tech Re...
AWS Partner ConneXions Online – New Year Edition - AWS re:Invent 2020 Tech Re...
 

AWS와 함께 한 쿠키런 서버 Re-architecting 사례 (Gaming on AWS)

  • 1. AWS와 함께한 쿠키런 서버 Re-architecting 사례 홍성진 Senior Technical Lead 데브시스터즈 1
  • 2. 강연자 소개 홍성진 (sungjinhong@devsisters.com) • 시니어 테크니컬 리드, 데브시스터즈 • LINE COOKIE RUN, 쿠키런 for Kakao, 오븐브레이크 2 서버 개발 • 시니어 소프트웨어 엔지니어, 위클레이 - 영상통화 앱 클라이언트 및 서버 개발 - 프로토타입 서버 개발 (C, Erlang, MySQL, Hadoop, HBase, Riak, Redis) - Lucene, Solr와 한글 형태소분석기 관련 작업, 웹 크롤러 및 머신러닝 기법 구현 • 통계기계번역팀, 소프트웨어 엔지니어링 인턴, 구글 코리아 - 형태소분석, 품사태깅, 웹 크롤러 구현, 훈련용 데이터 크롤링 • Django Project Contributor - i18n 관련 기능 구현, 버그픽스, 한글 번역 2
  • 3. Agenda • 오븐브레이크2 서버의 구조 • 기존 서버 관리방식의 문제점 • Maven/CircleCI를 사용한 소스코드 형상관리 • Chef를 사용한 서버 형상관리 • CloudFormation을 사용한 인프라 형상관리 • AutoScale을 사용한 동적 처리용량 확장 • 최근 쿠키런 서버 동향 3
  • 5. 오븐브레이크2 서버 구조 • 하드웨어 기반 서버를 본따 만든 서버 구성 • 가용성을 위해 로드밸런서 아래 두 대의 API 서버가 분산되어 있음 ELB • 사용량 증가를 우려해 과도한 스팩을 사용 - 데이터베이스 - m2.2xlarge - API 서버 - m1.large Tomcat Tomcat • 마스터-슬래이브 구조의 데이터베이스 • Backup과 파일 공유를 위한 NFS 서버 MySQL Master • US-East에서 서비스 중 5 Slave Replica Slave Replica
  • 6. 기존 서버 관리 방식의 한계 • 새로운 서버를 만들어야 할 경우 문제 - 매뉴얼 부족, 있는 자료는 오래된 내용 - 관리자가 교체되면서 회사에 남아있는 서버지식이 점점 사라짐 - Tomcat JVM에 설정되어있던 locale 환경설정, 누가 기억하지? • 사용자 증가에 따른 관리 피로도 증가 - 급격한 확장에 대응이 불가능하기 때문에 오버스팩 서버 도입 - 오버스팩 서버 도입에 따른 비용 문제 발생 6
  • 7. 쿠키런 서버 Re-architecting AWS 클라우드에 맞는 서버 재설계를 해보자 7
  • 8. Maven/CircleCI 소스코드 형상관리 • Maven을 사용하여 Dependency 및 버전 관리 • Github, CircleCI를 사용하여 branch별 continuous integration 및 artifact 관리 • 모든 변경사항은 코드리뷰/테스트 후 master 브렌치로 통합되어 최종 war파일 생성 8
  • 9. Chef를 사용한 서버 형상관리 • 서버 설정을 JSON과 Ruby를 사용하여 소 스코드처럼 Git으로 관리 - 설정이 소스코드로 문서화 및 형상관리 • 예1: Tomcat을 설치하고 max heap, G1 GC, file.encoding JVM 환경설정 • 예2: 모든 서버에 공통적으로 devsisters 계정을 만들고 htop, dstat, sysstat 설치 • 예3: 서버 운영시 빼먹기 쉬운 여러 설정들 을 공통적으로 적용 (ulimit 제한 등) • 언제 어디서든 5분 이내 쿠키런 서버를 원하 는만큼 구축할 수 있다 9
  • 10. CloudFormation을 사용한 인프라 형상관리 • EC2, ELB, AutoScale 등을 모두 JSON 파일 형태로 템플릿화 하여 관리하는 기능 • 인프라를 소스코드처럼 관리할 수 있음 - 자동적인 인프라의 문서화 및 형상관리 • 템플릿을 수정하여 AWS에 업로드 하면 기 존에 떠있던 클러스터가 수정된다 • 언제 어디서든 30분 이내 쿠키런 서버 인프 라를 구축할 수 있다 10
  • 11. AutoScale을 사용한 동적 처리용량 확장 • Maven으로 만든 war artifact를 S3 Bucket에 업로드 • Chef와 CloudFormation기반으로 만들어진 AutoScaling Group이 Rolling Update 진행 • 5% 정도 진행하고 개발자가 주의깊게 모니터링한 후 100% 패치 작업 진행 (문제 있으면 롤백) Developer Terminated CircleCI Github Old Version New Version Auto scaling Group Remove Add ELB 11 Cookierun S3 Bucket Created
  • 12. AutoScale 회고 • 장애가 일어난 불량 노드를 알아서 대체 • Scale out 임계치를 잘 설정하는것이 중요 - 규모가 배가 되었다면 AutoScale 전 략도 규모에 맞게 수정하자 - 인스턴스 크기를 키우는것도 방법 - m1.medium m1.large c1.xlarge • 크리스마스 연휴 때 c1.xlarge 120대 - Quota limit에 걸려 문제가 될 뻔 - Business Support로 빠르게 대처 # instances vs. CPU utilization 12
  • 13. AutoScale 전략 • 인스턴스 c1.xlarge - 8 vCPU, 20 ECU, 7GB Memory - c3.2xlarge로 이전 검토 중 - 비슷한 가격에 더 높은 성능과 메모리 • 1분동안 avg CPU 60% 라면 인스턴스 4대 증가 • 2분동안 max CPU 80% 라면 인스턴스 4대 증가 - 급격한 사용자 증가가 있을 경우 빠른 대응을 위한 설정 • 2분동안 avg CPU 25% 라면 인스턴스 2대 감소 • 최소 4대 및 최대 400대로 설정 - 의도하지 않은 과도한 과금 방지를 위해서는 최대 수치를 적절하게 조절해야함 • Reserved Instance로 비용감소 검토 중 - 예) 4대 Heavy Utilization, 10대 Light Utilization 13
  • 14. 클라우드에 맞는 서버 설계 수정 • 클라우드의 서버는 수명이 짧다. 속칭 하루살이 (ephemeral) - Cron Job을 수행하기 위해 한 서버가 마스터로 설정되어야하는 필요성 제거 Shared-nothing 구조로 변경 - Game Log를 손쉽게 Log Server로 Shipping할 수 있도록 Logging 구조 개선 slf4j/Logback기반으로 변경, Logstash agent등의 도입 • 완벽한 Consistency를 보장하는 RDB에서 적당한 Consistency를 추구하는 NoSQL로 - 약간의 Consistency 희생으로 수평적확장성, 재해복구, 관리의 용이성 확보 - 적당한 Consistency 에서도 서버 로직이 작동하도록 구현 개선 14
  • 15. Re-architecting 결과 CloudFront Edge Internet Log archives Patches Game Data CloudFront Download Distribution S3 Buckets Mobile Game user Availability Zone-2 Availability Zone-1 Apple / Google Push Service Log Search (realtime) ELB Front-end game service Auto-scaling group EC2 Chef Git Conf. Management EC2 EC2 Game Server Monitoring EC2 Database group RDS EC2 Couchbase Cluster CloudFormation EC2 CloudWatch EC2 redis instance M S 15
  • 16. 최근 쿠키런 서버 동향 (1/2) • 새로운 인스턴스 유형 검토 중 - c1.xlarge 대신 c3.2xlarge 인스턴스 사용 - hi1.4xlarge 대신 cr1.8xlarge 인스턴스 사용 - 모두 성능과 가격면에서 합격점, 인기가 많아 사용할 수 있는지가 관건 • NoSQL Couchbase 시범적 도입 성공 - 메인 사용자 데이터를 Couchbase 기반으로 마이그레이션 진행함 - 성능과 수평 확장성, 그리고 관리 편의성에서 모두 높은 점수 - cr1.8xlarge 4대, 총 976GB Memory, 960GB SSD Storage 클러스터 운영 중 - Reserved Instance를 사용하여 비용절감 중 16
  • 17. 최근 쿠키런 서버 동향 (2/2) • 최근 눈에 띄는 Seoul - Tokyo Region Latency 감소 • 밤, 낮, 주말과 관계 없이 40ms의 고정된 Latency를 지속적으로 유지 • 한국 커뮤니티 내에서도 이러한 현상을 확인 • AWS측에서 국내 ISP와 협력을 진행한게 아닌지 추측 17
  • 18. QA 18