SlideShare a Scribd company logo
게임을 위한 최적의 AWS DB 서비스 소개 - DynamoDB, Aurora
2019.11.27
이종립 / Principle Enterprise Evangelist @베스핀글로벌
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
2
DB 전쟁
지난 분기에만도 Oracle에 5천
만불을 썼고, AWS는 Oracle만큼
의 성능을 갖는 DB 기술이 없어
By Larry Ellison / Oracle CEO
2020년 초까지
Oracle 다 뺄거야 !
By Jeff Bezos / Amazon CEO
굿바이 Oracle,
이제 다 빼냈어
By Werner Vogels / Amazon CTO
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
3
아마존 소비자 비즈니스에서 모든 레
거시 데이터베이스 이전이 완료되었으
며, 마지막 Oracle 데이터베이스를 종
료했습니다
약 7,500 개의 Oracle 데이터베이스에
저장된 75 페타 바이트의 내부 데이터
를 Amazon DynamoDB, Amazon
Aurora, Amazon Relational
Database Service (RDS), Amazon
Redshift를 포함한 여러 AWS 데이터
베이스 서비스로 마이그레이션 했습니
다.
2019. 10
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
4
데이터에 대한 고민 및 이번 세션의 주제
DB는 어떻게
선택하지?
AI/ML은 어떻게
적용하지?
DR은 어떻게
구축하지?
데이터 분석은
어떻게 해야하지?
고성능, 고가용성의
AWS DBMS 선택
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
TODAY’S QUEST
• 게임 아키텍처의 현실과 고민
• 관계형 DB Amazon Aurora 소개 및 데모
• No-SQL DB Amazon DynamoDB 소개 및 데모
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
6
이상적인 게임 아키텍처
전 세계 모든 게이머들이
함께 플레이할 수 있는 게임
게이머가 하고 싶을 때
언제든지 할 수 있는 게임
• 모든 지역의 사용자 게임
응답 지연 최소화
• 초대형 (원)월드 지원 /
사용자통합
• 장애가 없는 게임 또는
게이머가 장애를 인지할
수 없는 게임
• 장애가 신속하게 자동
복구되는 게임
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
7
하지만 현실을 들여 보면 … (1)
지역 분산에 의한 지연 증가
✓ 지역별 분산 게임 서비스 배포로 해결
→ 그러나, 분산된 데이터 동기화 통합 관리의 어려움
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
8
하지만 현실을 들여 보면 … (2)
7
Game Clients
Data
Server
Realm N
Database
World
Server
Data
Server
Realm 2
Database
World
Server
Data
Server
Realm 1
Database
World
Server
Game Clients
Data
Server
Realm 1
World
Server
Data
Server
Realm 2
World
Server
Data
Server
Realm N
World
Server
주서버
보조서버
관계형 DB의 Scale-up 성능 한계로 초대규모 월드 구현 한계
✓ 작은 규모의 월드로 분산 방법 선택
→ 대규모 월드에 비해 게이머들의 흥미 및 몰입도 저하
✓ 데이터 샤딩을 통한 데이터 부하 분산 선택 → 게임 백엔드 로직의 복잡성 증대
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
9
형님 통성명 좀 …
관계형
• Relational DBMS
관리형
• Managed Service
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
10
하지만 현실을 들여 보면 … (3)
7
관계형 DB의 가용성 유지 및 빠른 장애 처리의 어려움
✓ 작은 규모의 월드/서버 팜을 지원하기 위한 다수의 DB 사용
✓ 데이터 샤딩으로 DB 인스턴스 개수 증대
→ 관계형 DB의 장애 시, 복구 시간 지연으로 게이머 이탈 가능성 증가
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
11
이상적인 게임 아키텍처를 위한 AWS DB 서비스 소개
Amazon Aurora
Amazon DynamoDB
Amazon DynamoDB
Accelerator (DAX)
• Amazon DynamoDB
➢ 무제한의 용량 및 성능
➢ 최고 수준의 가용성을 제공하는 NoSQL DB
➢ Global Table 기능으로 여러 리전 데이터의 자동 동기화
➢ DAX를 활용하면 좀 더 빠른 응답 속도 제공
• Amazon Aurora
➢ 멀티마스터 기능으로 스케일 아웃 성능 확장
➢ 클라우드에 최적화된 고가용성 관리형 DBMS
➢ 멀티마스터 기능으로 장애인지를 최소화
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
12
게임에서의 DB : NoSQL vs SQL ?
10ms 이하의 지연 속도로 초당 수만 건
이상의 데이터 쓰기가 필요한 경우
잦은 스키마 변경으로 데이터 스키마
관리가 어려운 경우
사용 예
▪ 게임 사용자 프로파일 데이터
▪ 게임 사용자 게임 상태 데이터
▪ 게임 세션 정보 데이터
▪ 테이블 구조화하기 어려운 사용자
게임이의 이력 데이터(JSON 등의 구조)
NoSQL
강력한 트랜잭션 처리가 요구되
는 경우
다양한 조건의 SQL Query 문
이 필요한 경우
사용 예
▪ 게임사용자재화(currency)정보
SQL
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
13
게임에서의 DB : NoSQL + SQL !
• 어떤 솔루션도 만능 해결책은 되지 않습니다.
• NoSQL과 SQL의 장단점을 세밀하게 파악하고, 게임 데이터의 사용
특성을 파악하여 선택하여야 합니다.
• 과거 수행했던(또는 미래에 수행할) 데이터 쿼리를 NoSQL에서도
수행할 수 있습니까?
• 데이터 쿼리를 NoSQL에 적합하게 수정할 수 있습니까?
• 데이터의 성격에 따른 혼합형 DBMS 전략
• 비 트랜잭션 성격의 데이터 및 간단한 쿼리 데이터는 NoSQL로
• NoSQL로 데이터 업데이트나 쿼리가 효율적이지 않은 데이터는 SQL로
기존DB 사용에 대한 심층
조사에서 약70%의 쿼리는
하나의 열(row)을 가져오고
약20%의 쿼리는 하나의 테
이블에서 다수의 열을 가져
오는 단순 Key-value 수준임
을 확인 하였다.
Werner Vogels
CTO, Amazon
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
TODAY’S QUEST
• 게임 아키텍처의 현실과 고민
• 관계형 DB Amazon Aurora 소개 및 데모
• No-SQL DB Amazon DynamoDB 소개 및 데모
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
15
이상적인 게임 아키텍처를 위한 AWS DB 서비스 소개
Amazon Aurora
Amazon DynamoDB
Amazon DynamoDB
Accelerator (DAX)
• Amazon DynamoDB
➢ 무제한의 용량 및 성능
➢ 최고 수준의 가용성을 제공하는 NoSQL DB
➢ Global Table 기능으로 여러 리전 데이터의 자동 동기화
➢ DAX를 활용하면 좀 더 빠른 응답 속도 제공
• Amazon Aurora
➢ 멀티마스터 기능으로 스케일 아웃 성능 확장
➢ 클라우드에 최적화된 고가용성 관리형 DBMS
➢ 멀티마스터 기능으로 장애인지를 최소화
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
16
오픈 소스 기반의 DB와 상용 DB의 사용 트랜드
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
17
클라우드에 최적화된 관계형 데이터베이스
R하이엔드 상용데이터 베이스의 성능과 가용성
R오픈소스 데이터베이스의 비용 효율성과 간단함
RMySQL, PostgreSQL와의 호환성
RPay as you go 가격정책
관리형 서비스로 제공
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
18
Aurora 사용 고객
Aurora is used by:
2/3 of top 100 AWS customers
8 of top 10 gaming customers
AWS 역사상 가장 빠르게 성장하는 서비스
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
19
잠깐 정리
Amazon RDS 데이터베이스 엔진
MySQL 호환 버전
PostgreSQL 호환 버전
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
20
게임 개발자가 Amazon Aurora를 선호하는 이유
① MySQL과의 호환성
② 스토리지 용량 산정 필요 없음
③ 쓰기 영향을 줄여주는 지연 적은 읽기 복제본
④ 관리형 서비스
⑤ 기존 오픈 소스 데이터베이스 대비 몇 배의 성능 향상
⑥ AWS가 적극적으로 투자하리라는 기대감
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
21
Aurora MySQL 호환
• 고사양 상업용 데이터베이스의 속도 및 안정성
→ MySQL 대비 최대 5배 뛰어난 처리량
• 오픈 소스 데이터베이스의 간편성 및 비용 효율성
→ 상용 DB 대비 1/10 수준의 비용
• 새로 배포하는 MySQL이든, 혹은 기존에 배포한 MySQL이든 상관없이
Aurora MySQL은 MySQL을 즉시 대체 가능
→ 9.6.x, 9.7.x
• 설치, 조작 및 조정이 간편하고 비용 효율적이기 때문에 비즈니스와
애플리케이션에 더욱 많은 시간을 투자할 수 있습니다.
→ 관리형 서비스로 Aurora Serverless 구성도 가능
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
22
DB 스토리지 용량은 얼마가 적당할까 ?
• 솔리드 스테이트 디스크(SSD) 드라이브를
사용하는 단일 가상 볼륨인 클러스터
볼륨에 저장
• 클러스터 볼륨은 동일한 리전에 속한 다중
가용 영역의 총 6개 데이터 사본으로 구성
• 데이터베이스의 데이터 용량이 늘어날수록
Aurora 클러스터 볼륨도 자동 확장
• 요금은 Aurora 클러스터 볼륨에서 사용한
공간(GB)에 대해서만 청구됩니다.
미리 산정할 필요가 없음
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
23
읽기 성능이 떨어지면 ? 자동으로 읽기 복제본이 증가
• 최대 15개 읽기 복제본을 여러 가용영역에 구성 가능
• 일반적으로 10ms 이내의 지연 시간으로 리두로그 기반 복제
• 로드 밸런싱과 auto-scaling 을 지원하는 읽기 엔드 포인트
• 프로덕션 게임서버 DB에 영향을 주지 않고 대규모 게임 DB 조회 및 분석 가능
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
24
관리형 서비스(Managed Service)의 편리성
DB 관리가 아닌 게임 서비스 관리에 더 집중할 수 있도록 아마존이 구성 및 관리를
대신 해주는 서비스
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
25
오픈 소스 기반 MySQL 대비 성능 향상
동일 사양의 Aurora MySQL은 RDS MySQL 대비 최대 5배의 트랜잭션 처리
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
26
Multi-Master(다수의 Writer 가능)
여러 데이터 센터에 걸쳐, 읽기 및 쓰기 확장 가능한 첫 번째 관계형 DB서비스
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
27
기존의 일반적인 대규모 게임 DB 구현 아키텍처
• 데이터베이스 성능의 한계로 월드 단위로
구분하고 동시 접근 사용자 수를 제한
• 분산된 정보를 통합 관리하기 위한 Linked server
기능 사용
• 아키텍처 단점
✓ 많은 수의 DB 인스턴스 및 그에 따른 관리 및
장애 증가
✓ Linked Server의 성능 제약 및 DB 장애로
인한 서비스 장애 범위 광대
✓ Sharding 추가 구현 시,게임 애플리케이션의
구현 난이도 증가
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
28
Aurora Multi Master를 이용한 대규모 게임 아키텍처
• Aurora 클러스터는 인스턴스 간에 데이터
스토리지 공유
• 멀티마스터는 기본적으로 스케일-아웃 시
나리오 제공
• Linked Server 기능 사용이 필요 없거나
최소화
• 마스터 중의 하나의 인스턴스 장애 발생
하는 경우, 인스턴스 자동 복구 전까지 다
른 마스터 또는 예비 노드에 재 연결하여
바로 게임 서비스 재개
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
29
Demo - Aurora
1. Aurora MySQL Cluster 만들기(Singapore Region)
- https://amzn.to/373CYjo
2. Aurora MYSQL의 다양한 기능(N Virginia Region)
- Multi Master, Regional/Global, Serverless
3. Backup / Restore 등 Aurora Cluster 관리 (Optional)
- https://amzn.to/2CJYR9u
© 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved.
TODAY’S QUEST
• 게임 아키텍처의 현실과 고민
• 관계형 DB Amazon Aurora 소개 및 데모
• No-SQL DB Amazon DynamoDB 소개 및 데모
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
31
이상적인 게임 아키텍처를 위한 AWS DB 서비스 소개
Amazon Aurora
Amazon DynamoDB
Amazon DynamoDB
Accelerator (DAX)
• Amazon DynamoDB
➢ 무제한의 용량 및 성능
➢ 최고 수준의 가용성을 제공하는 NoSQL DB
➢ Global Table 기능으로 여러 리전 데이터의 자동 동기화
➢ DAX를 활용하면 좀 더 빠른 응답 속도 제공
• Amazon Aurora
➢ 멀티마스터 기능으로 스케일 아웃 성능 확장
➢ 클라우드에 최적화된 고가용성 관리형 DBMS
➢ 멀티마스터 기능으로 장애인지를 최소화
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
32
Amazon DynamoDB 소개
어떤 규모에서든 빠르고 유연한 NoSQL 데이터베이스 서비스
빠르고 일정한 성능높은 확장성 완전 관리형 서비스 높은 신뢰성
초당 수 백만 개 요청 처리
수 백 TB 용량 자동 확장
10ms 미만의 지연시간 보장
DAX로 micro초로 감소
자동 프로비저닝 및
인프라 관리
리전 내 여러 AZ로
데이터 동기화,
세분화된 접근제어
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
33
게임 분야 사용 사례
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
34
어떤 규모의 요청에도 일관된 응답 성능
Amazon DynamoDB는 알렉사, Amazon.com 사이트, 아마존 주문 처리 센터(fulfillment center)
로부터의 초당 최대 1,290만 요청을 처리하고 있습니다.
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
35
Auto Scaling을 통한 비용 최적화
처리 용량은 게임의 실제 요청 수에 따라 자동 조정되어 성능과 비용 효율성을 제공
실제 소비된 용량과 Provisioning된 용량
쿼리 실행 시 Latency
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
36
더 빠른 성능을 더 낮은 비용으로 보완
DynamoDB 전용 가속 서비스 (DAX – DynamoDB Accelerator)
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
37
DAX 적용을 통한 지연시간 단축
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
38
DAX ? ElastiCache ?
비교항목 DAX ElastiCache
캐시 적용 대상 DynamoDB에 특화 모든 종류의 DBMS에 적용 가능
캐시 메모리 최대크기 488 GiB 6+ TiB
지원 명령어 Get, Put, Update, Delete, Query,
Scan
200+ 이상의 커맨드
지원 데이터 타입 DynamoDB 지원 데이터 타입 DynamoDB 지원 데이터 타입+ (Sets,
Sorted Sets, Hashes, Bit Arrays,
HyperLogLogs)
지원되는 Eviction
정책
Time-to-Live Cache (TTL), Least
Recently Used (LRU), Write-Through
Eviction
No Eviction, allkeys-lru, volatile-lru,
allkeys-random, volatile-random,
volatile-ttl
결론 • 빠르게 DynamoDB의 성능을
극대화하려는 고객
• 읽기가 특정 파티션에 편중되어
있는 고객
• 캐시 메모리가 488GiB 이상 필요한 고객
• Redis나 Memcached에 익숙하며 캐시
최적화를 극대화하려는 고객
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
39
적응형(Adaptive) 자동 버스팅 옵션
현실 속에서는 파티션 분산이 항상 균등하지는 않음 → 성능 문제 야기될 수 있음
✓과거 5분 동안 사용되지 않은 용량을 이용한 버스팅 지원
✓다른 파티션에서 사용되지 않는 용량을 필요한 파티션에서 사용
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
40
고가용성 및 고신뢰성
• SPOF(Single Point of Failure)가
존재하지 않는 구조
• 데이터는 3개의 AZ에 저장되기 때문에
신뢰성이 높음
• 스토리지는 필요에 따라 자동으로
파티션 됨
A Decade of Dynamo: Powering the next
wave of high-performance, internet-scale
applications
By Werner Vogels on 02 October 2017
Amazon.com 사이트에서 사용하던 내부서비스를
기반으로 2012년 1월 DynamoDB 서비스를 시작하
면서 미션 크리티컬 업무에 필요한 보안, 가용성,
관리성을 제공하고자 했고, 그동안의 실사용 고객
을 통해서 입증되었다.
•고신뢰성 및 고가용성– DynamoDB는 고신뢰성을
제공하고 서버장애, 랙장애, 심지어 AZ장애에서도
99.99%의 가용성을 유지하였다. DynamoDB 자동
으로 데이터를 정상적인 서버로 재배포하여 항상
다수의 복제본을 유지한다.
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
41
온디맨드 & 지속적 백업 제공 최초의 NoSQL DB
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
42
Stream 기능을 통한 타 서비스와 손쉬운 연계
• DynamoDB 테이블에 저장된 항목이
변경되는 경우, 대다수의 애플리케이
션에서는 해당 변경 사항을 캡처하는
기능을 사용 가능
• DynamoDB 스트림은 어떤 DynamoDB
테이블이든 시간 순서에 따라 항목 변
경 사항이 있으면 이 정보를 수집하여
최대 24시간 동안 로그에 저장합니다.
• 테이블에서 스트림을 활성화하면
DynamoDB가 테이블의 데이터 항목에
발생한 모든 변경 정보를 캡처합니다.
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
43
DynamoDB 글로벌 테이블
전세계 사용자들이 동일한 빠른 지연 속도로 동일한 데이터를 접근
멀티마스터 복제방식으로 로컬에서 읽고 쓰는 데
이터는 글로벌테이블 멤버인 전세계 테이블에 복
제됩니다.
전세계에 분산된 어플리케이션은 글로벌테이블 멤
버인 로컬테이블에 기존과 동일한 수ms의 읽기/
쓰기를 수행할 수 있습니다.
데이터 복제가 필요한 리전을 선택하기만 하면 됩
니다. 애플리케이션은 로컬테이블로 전역 테이블
에 액세스합니다.
리전의 장애 발생할 경우, 애플리케이션은 다른 리
전의 테이블을 사용하여 전과 동일한 읽기/쓰기
작업을 수행할 수 있습니다.
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
44
손쉬운 글로벌 테이블 생성
• DynamoDB 스트리밍 기술에 기반한 다수의
리전간 테이블 동기화 기능
• 모든 아이템에 updatetime, updateregion
속성을 추가하여 언제 어느 지역에서
추가/변경 내역인지 확인 가능
• 글로벌 테이블의 동기화는 최종 쓰기 성공에
의한 결과적 동기화 지원
• Auto Scaling 활성화 및 동일 구성을
권고(콘솔 사용시, 기본으로 자동 활성화)
• 복제 지연 시간/복제 대기 건수 모니터링
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
45
글로벌 테이블을 이용한 글로벌 실시간 리더보드 예시
구성 및 동작 순서
1. 글로벌 테이블 생성
2. 지역별 GSI(Global Secondary Index)
생성
3. 개별 지역 게임 서버는 로컬 테이블에
사용자 기록 빠르게 저장
4. 개별 지역 사용자 기록은 전세계에
자동 복제
5. 글로벌 테이블의 변경 내역은 로컬
GSI에 업데이트
6. 개별 지역 게임 서버는 사용자에게
빠르게 실시간 게임 순위를 게시
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
46
게임 분야에서의 활용
게임 분야의 기업은 게임 상태, 플레이어 데이터, 세션
기록, 순위표를 비롯하여 게임 플랫폼의 모든 기능에
DynamoDB를 사용합니다. 이들 기업이 DynamoDB에
서 얻는 주요 이점은 10밀리초 미만의 짧은 지연 시간
을 일관되게 유지하면서 수백만의 동시 사용자 및 요
청으로 안정적으로 확장할 수 있는 역량입니다. 또한,
완전관리형 서비스인 DynamoDB에는 운영 오버헤드
가 없으므로 게임 개발자는 데이터베이스 관리가 아
니라 게임 개발에 집중할 수 있습니다. 게임 개발자가
단일 AWS 리전에서 다중 AWS 리전으로 확장하려는
경향이 강해짐에 따라 DynamoDB 글로벌 테이블을
사용하여 다중 리전의 액티브-액티브 데이터 복제를
수행할 수 있습니다.
일반 사용 사례:
• 게임 상태
• 플레이어 데이터 스토어
• 플레이어 세션 기록 데이터
스토어
• 순위표
https://youtu.be/7II4Q0jXeIs
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
47
Amazon DynamoDB - Demo
1. [사전 준비] AWS CLI 설치 및 Configuration
2. DynamoDB Table 생성( Web Console / CLI ) 및 쿼리
- https://amzn.to/35GBzy1, Music2 table(P:Artist, S:SongTitle)
3. Global Table을 이용해 리전간 실시간 데이터 복제
4. 코드 수정 필요 없이 DAX를 사용해 더욱 빠르게
5. 참고: 게임 어플리케이션을 위한 DynamoDB 데이터 모델링 실습
- https://amzn.to/2rITt4q (120분)
Appendix.
Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved
http://www.bespinglobal.com
49
EC2와 함께 데이터베이스를 운영(IaaS) → 관리형 데이터베이스 활용(PaaS)
Power, HVAC, net
Rack & stack
Server 관리
OS patches
DB s/w patches
Database backups
Scaling
High availability
DB s/w installs
OS installation
you
App optimization
Power, HVAC, net
Rack & stack
Server 관리
OS patches
DB s/w patches
Database backups
App optimization
High availability
DB s/w installs
OS installation
Scaling
Reduce
✓ Effort
✓ Risk
✓ Cost
you
THANK YOU

More Related Content

PDF
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
Noritaka Sekiyama
 
PDF
Delta from a Data Engineer's Perspective
Databricks
 
PDF
Introduction SQL Analytics on Lakehouse Architecture
Databricks
 
PDF
Lambda Architecture in the Cloud with Azure Databricks with Andrei Varanovich
Databricks
 
PDF
Databricks Delta Lake and Its Benefits
Databricks
 
PDF
Apache Iceberg - A Table Format for Hige Analytic Datasets
Alluxio, Inc.
 
PDF
The delta architecture
Prakash Chockalingam
 
PDF
Data Lineage with Apache Airflow using Marquez
Willy Lulciuc
 
Amazon S3 Best Practice and Tuning for Hadoop/Spark in the Cloud
Noritaka Sekiyama
 
Delta from a Data Engineer's Perspective
Databricks
 
Introduction SQL Analytics on Lakehouse Architecture
Databricks
 
Lambda Architecture in the Cloud with Azure Databricks with Andrei Varanovich
Databricks
 
Databricks Delta Lake and Its Benefits
Databricks
 
Apache Iceberg - A Table Format for Hige Analytic Datasets
Alluxio, Inc.
 
The delta architecture
Prakash Chockalingam
 
Data Lineage with Apache Airflow using Marquez
Willy Lulciuc
 

What's hot (20)

PPTX
Using Apache Arrow, Calcite, and Parquet to Build a Relational Cache
Dremio Corporation
 
PDF
Iceberg: a fast table format for S3
DataWorks Summit
 
PDF
Apache Arrow: Open Source Standard Becomes an Enterprise Necessity
Wes McKinney
 
PDF
InnoDB Internal
mysqlops
 
PDF
Apache Calcite (a tutorial given at BOSS '21)
Julian Hyde
 
PDF
Cassandra Introduction & Features
DataStax Academy
 
PDF
Build Low-Latency Applications in Rust on ScyllaDB
ScyllaDB
 
PPTX
Stephan Ewen - Experiences running Flink at Very Large Scale
Ververica
 
PDF
Elasticsearch in Netflix
Danny Yuan
 
PDF
Looking ahead at PostgreSQL 15
Jonathan Katz
 
PDF
Tame the small files problem and optimize data layout for streaming ingestion...
Flink Forward
 
PDF
patroni-based citrus high availability environment deployment
hyeongchae lee
 
PPTX
Hive + Tez: A Performance Deep Dive
DataWorks Summit
 
PPTX
The columnar roadmap: Apache Parquet and Apache Arrow
Julien Le Dem
 
PDF
Intro to Cypher
Neo4j
 
PPTX
Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...
Flink Forward
 
PDF
How Uber scaled its Real Time Infrastructure to Trillion events per day
DataWorks Summit
 
PDF
Spark streaming , Spark SQL
Yousun Jeong
 
PDF
3D: DBT using Databricks and Delta
Databricks
 
PDF
10 Good Reasons to Use ClickHouse
rpolat
 
Using Apache Arrow, Calcite, and Parquet to Build a Relational Cache
Dremio Corporation
 
Iceberg: a fast table format for S3
DataWorks Summit
 
Apache Arrow: Open Source Standard Becomes an Enterprise Necessity
Wes McKinney
 
InnoDB Internal
mysqlops
 
Apache Calcite (a tutorial given at BOSS '21)
Julian Hyde
 
Cassandra Introduction & Features
DataStax Academy
 
Build Low-Latency Applications in Rust on ScyllaDB
ScyllaDB
 
Stephan Ewen - Experiences running Flink at Very Large Scale
Ververica
 
Elasticsearch in Netflix
Danny Yuan
 
Looking ahead at PostgreSQL 15
Jonathan Katz
 
Tame the small files problem and optimize data layout for streaming ingestion...
Flink Forward
 
patroni-based citrus high availability environment deployment
hyeongchae lee
 
Hive + Tez: A Performance Deep Dive
DataWorks Summit
 
The columnar roadmap: Apache Parquet and Apache Arrow
Julien Le Dem
 
Intro to Cypher
Neo4j
 
Squirreling Away $640 Billion: How Stripe Leverages Flink for Change Data Cap...
Flink Forward
 
How Uber scaled its Real Time Infrastructure to Trillion events per day
DataWorks Summit
 
Spark streaming , Spark SQL
Yousun Jeong
 
3D: DBT using Databricks and Delta
Databricks
 
10 Good Reasons to Use ClickHouse
rpolat
 
Ad

Similar to 게임을 위한 최적의 AWS DB 서비스 소개 Dynamo DB, Aurora - 이종립 / Principle Enterprise Evangelist @베스핀글로벌 (20)

PDF
데이터베이스 운영, 서버리스로 걱정 끝! - 윤석찬, AWS 테크에반젤리스트 - AWS Builders Online Series
Amazon Web Services Korea
 
PDF
게임을 위한 최적의 AWS DB 서비스 선정 퀘스트 깨기::최유정::AWS Summit Seoul 2018
Amazon Web Services Korea
 
PPTX
AWS RDS, DYNAMO
Han Sung Kim
 
PDF
내 서비스에는 어떤 데이터베이스가 맞는걸까? - 이혁 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
Amazon Web Services Korea
 
PDF
[AWS Builders] 우리 워크로드에 맞는 데이터베이스 찾기
Amazon Web Services Korea
 
PDF
워크로드에 맞는 데이터베이스 찾기 - 박주연 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
Amazon Web Services Korea
 
PDF
[Games on AWS 2019] AWS 입문자를 위한 초단기 레벨업 트랙 | AWS 레벨업 하기! : 데이터베이스 - 박주연 AWS 솔...
Amazon Web Services Korea
 
PDF
2017 Ad-Tech on AWS 세미나ㅣAWS에서의 빅데이터와 분석
Amazon Web Services Korea
 
PDF
성공적인 디지털 혁신을 위한 AWS 데이터베이스 서비스 선택:: 구태훈::AWS Summit Seoul 2018
Amazon Web Services Korea
 
PDF
[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | Aurora로 게임 데이터베이스 레벨 업! - 김병수 AWS ...
Amazon Web Services Korea
 
PDF
Amazon Aurora Deep Dive (김기완) - AWS DB Day
Amazon Web Services Korea
 
PDF
클라우드 기반 AWS 데이터베이스 선택 옵션 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
PPTX
강의 4. 데이터베이스:: AWSome Day Online Conference
Amazon Web Services Korea
 
PDF
AWS 9월 웨비나 | Amazon Aurora Deep Dive
Amazon Web Services Korea
 
PDF
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
Amazon Web Services Korea
 
PDF
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
Amazon Web Services Korea
 
PDF
빠르고 안전하게 간편한 AWS로 데이터 마이그레이션 하기::최유정 (AWS 솔루션즈아키텍트)
Amazon Web Services Korea
 
PDF
Cloud Native Aurora Serverless를 통한 Data Lake 구축 - 최유정 솔루션즈 아키텍트, AWS
Amazon Web Services Korea
 
PDF
Amazon Aurora 100% 활용하기
Amazon Web Services Korea
 
PDF
관계형 데이터베이스의 새로운 패러다임 Amazon Aurora :: 김상필 :: AWS Summit Seoul 2016
Amazon Web Services Korea
 
데이터베이스 운영, 서버리스로 걱정 끝! - 윤석찬, AWS 테크에반젤리스트 - AWS Builders Online Series
Amazon Web Services Korea
 
게임을 위한 최적의 AWS DB 서비스 선정 퀘스트 깨기::최유정::AWS Summit Seoul 2018
Amazon Web Services Korea
 
AWS RDS, DYNAMO
Han Sung Kim
 
내 서비스에는 어떤 데이터베이스가 맞는걸까? - 이혁 AWS 솔루션즈 아키텍트 :: AWS Summit Seoul 2021
Amazon Web Services Korea
 
[AWS Builders] 우리 워크로드에 맞는 데이터베이스 찾기
Amazon Web Services Korea
 
워크로드에 맞는 데이터베이스 찾기 - 박주연 솔루션즈 아키텍트, AWS :: AWS Summit Seoul 2019
Amazon Web Services Korea
 
[Games on AWS 2019] AWS 입문자를 위한 초단기 레벨업 트랙 | AWS 레벨업 하기! : 데이터베이스 - 박주연 AWS 솔...
Amazon Web Services Korea
 
2017 Ad-Tech on AWS 세미나ㅣAWS에서의 빅데이터와 분석
Amazon Web Services Korea
 
성공적인 디지털 혁신을 위한 AWS 데이터베이스 서비스 선택:: 구태훈::AWS Summit Seoul 2018
Amazon Web Services Korea
 
[Games on AWS 2019] AWS 사용자를 위한 만랩 달성 트랙 | Aurora로 게임 데이터베이스 레벨 업! - 김병수 AWS ...
Amazon Web Services Korea
 
Amazon Aurora Deep Dive (김기완) - AWS DB Day
Amazon Web Services Korea
 
클라우드 기반 AWS 데이터베이스 선택 옵션 - AWS Summit Seoul 2017
Amazon Web Services Korea
 
강의 4. 데이터베이스:: AWSome Day Online Conference
Amazon Web Services Korea
 
AWS 9월 웨비나 | Amazon Aurora Deep Dive
Amazon Web Services Korea
 
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...
Amazon Web Services Korea
 
나에게 맞는 AWS 데이터베이스 서비스 선택하기 :: 양승도 :: AWS Summit Seoul 2016
Amazon Web Services Korea
 
빠르고 안전하게 간편한 AWS로 데이터 마이그레이션 하기::최유정 (AWS 솔루션즈아키텍트)
Amazon Web Services Korea
 
Cloud Native Aurora Serverless를 통한 Data Lake 구축 - 최유정 솔루션즈 아키텍트, AWS
Amazon Web Services Korea
 
Amazon Aurora 100% 활용하기
Amazon Web Services Korea
 
관계형 데이터베이스의 새로운 패러다임 Amazon Aurora :: 김상필 :: AWS Summit Seoul 2016
Amazon Web Services Korea
 
Ad

More from BESPIN GLOBAL (20)

PDF
국내 건설 기계사 도입 사례를 통해 보는 AI가 적용된 수요 예측 관리 - 베스핀글로벌 조창윤 AI/ML팀 팀장
BESPIN GLOBAL
 
PDF
[AWSxBespin Startup Webinar] AWS, 스타트업의 비즈니스에 날개를 달다.
BESPIN GLOBAL
 
PDF
머신러닝 도우미, Amazon SageMaker 따라하기: SageMaker 국내 적용 사례
BESPIN GLOBAL
 
PDF
[웨비나] 다중 AWS 계정에서의 CI/CD 구축
BESPIN GLOBAL
 
PDF
[웨비나] 교육, 클라우드로 혁신하다
BESPIN GLOBAL
 
PDF
AWS와 함께하는 슬기로운 재택생활
BESPIN GLOBAL
 
PDF
베스핀글로벌 DevOps 서비스 소개
BESPIN GLOBAL
 
PDF
Azure ML과 PowerBI로 분석 예측하는 COVID-19
BESPIN GLOBAL
 
PDF
AWS에서 클라우드 시작하기 - 클라우드 마이그레이션 AtoZ
BESPIN GLOBAL
 
PDF
[VDI on Azure] DaaS 구축과 운영, 신화와 현실
BESPIN GLOBAL
 
PDF
Aws guard duty security monitoring service
BESPIN GLOBAL
 
PPTX
빅데이터 분석 플랫폼 구축 사례 - 전처리 속도 해결을 위한 PoC
BESPIN GLOBAL
 
PDF
AWS 상의 컨테이너 서비스 소개 ECS, EKS - 이종립 / Principle Enterprise Evangelist @베스핀글로벌
BESPIN GLOBAL
 
PDF
Session 4. 쉽게 보는 딥러닝 트랜드와 AWS 활용 시나리오 - 베스핀글로벌 이승규 매니저
BESPIN GLOBAL
 
PDF
Session 2. 스마트한 클라우드 관리 방법 - 베스핀글로벌 박대식 매니저
BESPIN GLOBAL
 
PDF
Session 1. 디지털 트렌스포메이션의 핵심, 클라우드 마이그레이션 A to Z - 베스핀글로벌 이근우 위원
BESPIN GLOBAL
 
PPTX
OpsNow를 활용한 AWS Cloud 비용 최적화 전략
BESPIN GLOBAL
 
PDF
Session 3. 제조업의 미래를 바꾸는 Microsoft Azure AI/ML/IoT 플랫폼 - 베스핀글로벌 박플로 차장
BESPIN GLOBAL
 
PDF
Session 2. 클라우드 운영 효율화 방안 및 글로벌 진출 사례 - 베스핀글로벌 이주원 상무
BESPIN GLOBAL
 
PDF
“전략적 접근이 필요하다” 멀티 클라우드 환경의 자원 및 비용 관리 방안
BESPIN GLOBAL
 
국내 건설 기계사 도입 사례를 통해 보는 AI가 적용된 수요 예측 관리 - 베스핀글로벌 조창윤 AI/ML팀 팀장
BESPIN GLOBAL
 
[AWSxBespin Startup Webinar] AWS, 스타트업의 비즈니스에 날개를 달다.
BESPIN GLOBAL
 
머신러닝 도우미, Amazon SageMaker 따라하기: SageMaker 국내 적용 사례
BESPIN GLOBAL
 
[웨비나] 다중 AWS 계정에서의 CI/CD 구축
BESPIN GLOBAL
 
[웨비나] 교육, 클라우드로 혁신하다
BESPIN GLOBAL
 
AWS와 함께하는 슬기로운 재택생활
BESPIN GLOBAL
 
베스핀글로벌 DevOps 서비스 소개
BESPIN GLOBAL
 
Azure ML과 PowerBI로 분석 예측하는 COVID-19
BESPIN GLOBAL
 
AWS에서 클라우드 시작하기 - 클라우드 마이그레이션 AtoZ
BESPIN GLOBAL
 
[VDI on Azure] DaaS 구축과 운영, 신화와 현실
BESPIN GLOBAL
 
Aws guard duty security monitoring service
BESPIN GLOBAL
 
빅데이터 분석 플랫폼 구축 사례 - 전처리 속도 해결을 위한 PoC
BESPIN GLOBAL
 
AWS 상의 컨테이너 서비스 소개 ECS, EKS - 이종립 / Principle Enterprise Evangelist @베스핀글로벌
BESPIN GLOBAL
 
Session 4. 쉽게 보는 딥러닝 트랜드와 AWS 활용 시나리오 - 베스핀글로벌 이승규 매니저
BESPIN GLOBAL
 
Session 2. 스마트한 클라우드 관리 방법 - 베스핀글로벌 박대식 매니저
BESPIN GLOBAL
 
Session 1. 디지털 트렌스포메이션의 핵심, 클라우드 마이그레이션 A to Z - 베스핀글로벌 이근우 위원
BESPIN GLOBAL
 
OpsNow를 활용한 AWS Cloud 비용 최적화 전략
BESPIN GLOBAL
 
Session 3. 제조업의 미래를 바꾸는 Microsoft Azure AI/ML/IoT 플랫폼 - 베스핀글로벌 박플로 차장
BESPIN GLOBAL
 
Session 2. 클라우드 운영 효율화 방안 및 글로벌 진출 사례 - 베스핀글로벌 이주원 상무
BESPIN GLOBAL
 
“전략적 접근이 필요하다” 멀티 클라우드 환경의 자원 및 비용 관리 방안
BESPIN GLOBAL
 

게임을 위한 최적의 AWS DB 서비스 소개 Dynamo DB, Aurora - 이종립 / Principle Enterprise Evangelist @베스핀글로벌

  • 1. 게임을 위한 최적의 AWS DB 서비스 소개 - DynamoDB, Aurora 2019.11.27 이종립 / Principle Enterprise Evangelist @베스핀글로벌
  • 2. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 2 DB 전쟁 지난 분기에만도 Oracle에 5천 만불을 썼고, AWS는 Oracle만큼 의 성능을 갖는 DB 기술이 없어 By Larry Ellison / Oracle CEO 2020년 초까지 Oracle 다 뺄거야 ! By Jeff Bezos / Amazon CEO 굿바이 Oracle, 이제 다 빼냈어 By Werner Vogels / Amazon CTO
  • 3. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 3 아마존 소비자 비즈니스에서 모든 레 거시 데이터베이스 이전이 완료되었으 며, 마지막 Oracle 데이터베이스를 종 료했습니다 약 7,500 개의 Oracle 데이터베이스에 저장된 75 페타 바이트의 내부 데이터 를 Amazon DynamoDB, Amazon Aurora, Amazon Relational Database Service (RDS), Amazon Redshift를 포함한 여러 AWS 데이터 베이스 서비스로 마이그레이션 했습니 다. 2019. 10
  • 4. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 4 데이터에 대한 고민 및 이번 세션의 주제 DB는 어떻게 선택하지? AI/ML은 어떻게 적용하지? DR은 어떻게 구축하지? 데이터 분석은 어떻게 해야하지? 고성능, 고가용성의 AWS DBMS 선택
  • 5. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. TODAY’S QUEST • 게임 아키텍처의 현실과 고민 • 관계형 DB Amazon Aurora 소개 및 데모 • No-SQL DB Amazon DynamoDB 소개 및 데모
  • 6. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 6 이상적인 게임 아키텍처 전 세계 모든 게이머들이 함께 플레이할 수 있는 게임 게이머가 하고 싶을 때 언제든지 할 수 있는 게임 • 모든 지역의 사용자 게임 응답 지연 최소화 • 초대형 (원)월드 지원 / 사용자통합 • 장애가 없는 게임 또는 게이머가 장애를 인지할 수 없는 게임 • 장애가 신속하게 자동 복구되는 게임
  • 7. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 7 하지만 현실을 들여 보면 … (1) 지역 분산에 의한 지연 증가 ✓ 지역별 분산 게임 서비스 배포로 해결 → 그러나, 분산된 데이터 동기화 통합 관리의 어려움
  • 8. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 8 하지만 현실을 들여 보면 … (2) 7 Game Clients Data Server Realm N Database World Server Data Server Realm 2 Database World Server Data Server Realm 1 Database World Server Game Clients Data Server Realm 1 World Server Data Server Realm 2 World Server Data Server Realm N World Server 주서버 보조서버 관계형 DB의 Scale-up 성능 한계로 초대규모 월드 구현 한계 ✓ 작은 규모의 월드로 분산 방법 선택 → 대규모 월드에 비해 게이머들의 흥미 및 몰입도 저하 ✓ 데이터 샤딩을 통한 데이터 부하 분산 선택 → 게임 백엔드 로직의 복잡성 증대
  • 9. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 9 형님 통성명 좀 … 관계형 • Relational DBMS 관리형 • Managed Service
  • 10. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 10 하지만 현실을 들여 보면 … (3) 7 관계형 DB의 가용성 유지 및 빠른 장애 처리의 어려움 ✓ 작은 규모의 월드/서버 팜을 지원하기 위한 다수의 DB 사용 ✓ 데이터 샤딩으로 DB 인스턴스 개수 증대 → 관계형 DB의 장애 시, 복구 시간 지연으로 게이머 이탈 가능성 증가
  • 11. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 11 이상적인 게임 아키텍처를 위한 AWS DB 서비스 소개 Amazon Aurora Amazon DynamoDB Amazon DynamoDB Accelerator (DAX) • Amazon DynamoDB ➢ 무제한의 용량 및 성능 ➢ 최고 수준의 가용성을 제공하는 NoSQL DB ➢ Global Table 기능으로 여러 리전 데이터의 자동 동기화 ➢ DAX를 활용하면 좀 더 빠른 응답 속도 제공 • Amazon Aurora ➢ 멀티마스터 기능으로 스케일 아웃 성능 확장 ➢ 클라우드에 최적화된 고가용성 관리형 DBMS ➢ 멀티마스터 기능으로 장애인지를 최소화
  • 12. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 12 게임에서의 DB : NoSQL vs SQL ? 10ms 이하의 지연 속도로 초당 수만 건 이상의 데이터 쓰기가 필요한 경우 잦은 스키마 변경으로 데이터 스키마 관리가 어려운 경우 사용 예 ▪ 게임 사용자 프로파일 데이터 ▪ 게임 사용자 게임 상태 데이터 ▪ 게임 세션 정보 데이터 ▪ 테이블 구조화하기 어려운 사용자 게임이의 이력 데이터(JSON 등의 구조) NoSQL 강력한 트랜잭션 처리가 요구되 는 경우 다양한 조건의 SQL Query 문 이 필요한 경우 사용 예 ▪ 게임사용자재화(currency)정보 SQL
  • 13. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 13 게임에서의 DB : NoSQL + SQL ! • 어떤 솔루션도 만능 해결책은 되지 않습니다. • NoSQL과 SQL의 장단점을 세밀하게 파악하고, 게임 데이터의 사용 특성을 파악하여 선택하여야 합니다. • 과거 수행했던(또는 미래에 수행할) 데이터 쿼리를 NoSQL에서도 수행할 수 있습니까? • 데이터 쿼리를 NoSQL에 적합하게 수정할 수 있습니까? • 데이터의 성격에 따른 혼합형 DBMS 전략 • 비 트랜잭션 성격의 데이터 및 간단한 쿼리 데이터는 NoSQL로 • NoSQL로 데이터 업데이트나 쿼리가 효율적이지 않은 데이터는 SQL로 기존DB 사용에 대한 심층 조사에서 약70%의 쿼리는 하나의 열(row)을 가져오고 약20%의 쿼리는 하나의 테 이블에서 다수의 열을 가져 오는 단순 Key-value 수준임 을 확인 하였다. Werner Vogels CTO, Amazon
  • 14. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. TODAY’S QUEST • 게임 아키텍처의 현실과 고민 • 관계형 DB Amazon Aurora 소개 및 데모 • No-SQL DB Amazon DynamoDB 소개 및 데모
  • 15. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 15 이상적인 게임 아키텍처를 위한 AWS DB 서비스 소개 Amazon Aurora Amazon DynamoDB Amazon DynamoDB Accelerator (DAX) • Amazon DynamoDB ➢ 무제한의 용량 및 성능 ➢ 최고 수준의 가용성을 제공하는 NoSQL DB ➢ Global Table 기능으로 여러 리전 데이터의 자동 동기화 ➢ DAX를 활용하면 좀 더 빠른 응답 속도 제공 • Amazon Aurora ➢ 멀티마스터 기능으로 스케일 아웃 성능 확장 ➢ 클라우드에 최적화된 고가용성 관리형 DBMS ➢ 멀티마스터 기능으로 장애인지를 최소화
  • 16. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 16 오픈 소스 기반의 DB와 상용 DB의 사용 트랜드
  • 17. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 17 클라우드에 최적화된 관계형 데이터베이스 R하이엔드 상용데이터 베이스의 성능과 가용성 R오픈소스 데이터베이스의 비용 효율성과 간단함 RMySQL, PostgreSQL와의 호환성 RPay as you go 가격정책 관리형 서비스로 제공
  • 18. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 18 Aurora 사용 고객 Aurora is used by: 2/3 of top 100 AWS customers 8 of top 10 gaming customers AWS 역사상 가장 빠르게 성장하는 서비스
  • 19. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 19 잠깐 정리 Amazon RDS 데이터베이스 엔진 MySQL 호환 버전 PostgreSQL 호환 버전
  • 20. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 20 게임 개발자가 Amazon Aurora를 선호하는 이유 ① MySQL과의 호환성 ② 스토리지 용량 산정 필요 없음 ③ 쓰기 영향을 줄여주는 지연 적은 읽기 복제본 ④ 관리형 서비스 ⑤ 기존 오픈 소스 데이터베이스 대비 몇 배의 성능 향상 ⑥ AWS가 적극적으로 투자하리라는 기대감
  • 21. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 21 Aurora MySQL 호환 • 고사양 상업용 데이터베이스의 속도 및 안정성 → MySQL 대비 최대 5배 뛰어난 처리량 • 오픈 소스 데이터베이스의 간편성 및 비용 효율성 → 상용 DB 대비 1/10 수준의 비용 • 새로 배포하는 MySQL이든, 혹은 기존에 배포한 MySQL이든 상관없이 Aurora MySQL은 MySQL을 즉시 대체 가능 → 9.6.x, 9.7.x • 설치, 조작 및 조정이 간편하고 비용 효율적이기 때문에 비즈니스와 애플리케이션에 더욱 많은 시간을 투자할 수 있습니다. → 관리형 서비스로 Aurora Serverless 구성도 가능
  • 22. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 22 DB 스토리지 용량은 얼마가 적당할까 ? • 솔리드 스테이트 디스크(SSD) 드라이브를 사용하는 단일 가상 볼륨인 클러스터 볼륨에 저장 • 클러스터 볼륨은 동일한 리전에 속한 다중 가용 영역의 총 6개 데이터 사본으로 구성 • 데이터베이스의 데이터 용량이 늘어날수록 Aurora 클러스터 볼륨도 자동 확장 • 요금은 Aurora 클러스터 볼륨에서 사용한 공간(GB)에 대해서만 청구됩니다. 미리 산정할 필요가 없음
  • 23. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 23 읽기 성능이 떨어지면 ? 자동으로 읽기 복제본이 증가 • 최대 15개 읽기 복제본을 여러 가용영역에 구성 가능 • 일반적으로 10ms 이내의 지연 시간으로 리두로그 기반 복제 • 로드 밸런싱과 auto-scaling 을 지원하는 읽기 엔드 포인트 • 프로덕션 게임서버 DB에 영향을 주지 않고 대규모 게임 DB 조회 및 분석 가능
  • 24. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 24 관리형 서비스(Managed Service)의 편리성 DB 관리가 아닌 게임 서비스 관리에 더 집중할 수 있도록 아마존이 구성 및 관리를 대신 해주는 서비스
  • 25. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 25 오픈 소스 기반 MySQL 대비 성능 향상 동일 사양의 Aurora MySQL은 RDS MySQL 대비 최대 5배의 트랜잭션 처리
  • 26. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 26 Multi-Master(다수의 Writer 가능) 여러 데이터 센터에 걸쳐, 읽기 및 쓰기 확장 가능한 첫 번째 관계형 DB서비스
  • 27. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 27 기존의 일반적인 대규모 게임 DB 구현 아키텍처 • 데이터베이스 성능의 한계로 월드 단위로 구분하고 동시 접근 사용자 수를 제한 • 분산된 정보를 통합 관리하기 위한 Linked server 기능 사용 • 아키텍처 단점 ✓ 많은 수의 DB 인스턴스 및 그에 따른 관리 및 장애 증가 ✓ Linked Server의 성능 제약 및 DB 장애로 인한 서비스 장애 범위 광대 ✓ Sharding 추가 구현 시,게임 애플리케이션의 구현 난이도 증가
  • 28. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 28 Aurora Multi Master를 이용한 대규모 게임 아키텍처 • Aurora 클러스터는 인스턴스 간에 데이터 스토리지 공유 • 멀티마스터는 기본적으로 스케일-아웃 시 나리오 제공 • Linked Server 기능 사용이 필요 없거나 최소화 • 마스터 중의 하나의 인스턴스 장애 발생 하는 경우, 인스턴스 자동 복구 전까지 다 른 마스터 또는 예비 노드에 재 연결하여 바로 게임 서비스 재개
  • 29. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 29 Demo - Aurora 1. Aurora MySQL Cluster 만들기(Singapore Region) - https://amzn.to/373CYjo 2. Aurora MYSQL의 다양한 기능(N Virginia Region) - Multi Master, Regional/Global, Serverless 3. Backup / Restore 등 Aurora Cluster 관리 (Optional) - https://amzn.to/2CJYR9u
  • 30. © 2018, Amazon Web Services, Inc. or Its Affiliates. All rights reserved. TODAY’S QUEST • 게임 아키텍처의 현실과 고민 • 관계형 DB Amazon Aurora 소개 및 데모 • No-SQL DB Amazon DynamoDB 소개 및 데모
  • 31. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 31 이상적인 게임 아키텍처를 위한 AWS DB 서비스 소개 Amazon Aurora Amazon DynamoDB Amazon DynamoDB Accelerator (DAX) • Amazon DynamoDB ➢ 무제한의 용량 및 성능 ➢ 최고 수준의 가용성을 제공하는 NoSQL DB ➢ Global Table 기능으로 여러 리전 데이터의 자동 동기화 ➢ DAX를 활용하면 좀 더 빠른 응답 속도 제공 • Amazon Aurora ➢ 멀티마스터 기능으로 스케일 아웃 성능 확장 ➢ 클라우드에 최적화된 고가용성 관리형 DBMS ➢ 멀티마스터 기능으로 장애인지를 최소화
  • 32. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 32 Amazon DynamoDB 소개 어떤 규모에서든 빠르고 유연한 NoSQL 데이터베이스 서비스 빠르고 일정한 성능높은 확장성 완전 관리형 서비스 높은 신뢰성 초당 수 백만 개 요청 처리 수 백 TB 용량 자동 확장 10ms 미만의 지연시간 보장 DAX로 micro초로 감소 자동 프로비저닝 및 인프라 관리 리전 내 여러 AZ로 데이터 동기화, 세분화된 접근제어
  • 33. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 33 게임 분야 사용 사례
  • 34. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 34 어떤 규모의 요청에도 일관된 응답 성능 Amazon DynamoDB는 알렉사, Amazon.com 사이트, 아마존 주문 처리 센터(fulfillment center) 로부터의 초당 최대 1,290만 요청을 처리하고 있습니다.
  • 35. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 35 Auto Scaling을 통한 비용 최적화 처리 용량은 게임의 실제 요청 수에 따라 자동 조정되어 성능과 비용 효율성을 제공 실제 소비된 용량과 Provisioning된 용량 쿼리 실행 시 Latency
  • 36. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 36 더 빠른 성능을 더 낮은 비용으로 보완 DynamoDB 전용 가속 서비스 (DAX – DynamoDB Accelerator)
  • 37. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 37 DAX 적용을 통한 지연시간 단축
  • 38. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 38 DAX ? ElastiCache ? 비교항목 DAX ElastiCache 캐시 적용 대상 DynamoDB에 특화 모든 종류의 DBMS에 적용 가능 캐시 메모리 최대크기 488 GiB 6+ TiB 지원 명령어 Get, Put, Update, Delete, Query, Scan 200+ 이상의 커맨드 지원 데이터 타입 DynamoDB 지원 데이터 타입 DynamoDB 지원 데이터 타입+ (Sets, Sorted Sets, Hashes, Bit Arrays, HyperLogLogs) 지원되는 Eviction 정책 Time-to-Live Cache (TTL), Least Recently Used (LRU), Write-Through Eviction No Eviction, allkeys-lru, volatile-lru, allkeys-random, volatile-random, volatile-ttl 결론 • 빠르게 DynamoDB의 성능을 극대화하려는 고객 • 읽기가 특정 파티션에 편중되어 있는 고객 • 캐시 메모리가 488GiB 이상 필요한 고객 • Redis나 Memcached에 익숙하며 캐시 최적화를 극대화하려는 고객
  • 39. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 39 적응형(Adaptive) 자동 버스팅 옵션 현실 속에서는 파티션 분산이 항상 균등하지는 않음 → 성능 문제 야기될 수 있음 ✓과거 5분 동안 사용되지 않은 용량을 이용한 버스팅 지원 ✓다른 파티션에서 사용되지 않는 용량을 필요한 파티션에서 사용
  • 40. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 40 고가용성 및 고신뢰성 • SPOF(Single Point of Failure)가 존재하지 않는 구조 • 데이터는 3개의 AZ에 저장되기 때문에 신뢰성이 높음 • 스토리지는 필요에 따라 자동으로 파티션 됨 A Decade of Dynamo: Powering the next wave of high-performance, internet-scale applications By Werner Vogels on 02 October 2017 Amazon.com 사이트에서 사용하던 내부서비스를 기반으로 2012년 1월 DynamoDB 서비스를 시작하 면서 미션 크리티컬 업무에 필요한 보안, 가용성, 관리성을 제공하고자 했고, 그동안의 실사용 고객 을 통해서 입증되었다. •고신뢰성 및 고가용성– DynamoDB는 고신뢰성을 제공하고 서버장애, 랙장애, 심지어 AZ장애에서도 99.99%의 가용성을 유지하였다. DynamoDB 자동 으로 데이터를 정상적인 서버로 재배포하여 항상 다수의 복제본을 유지한다.
  • 41. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 41 온디맨드 & 지속적 백업 제공 최초의 NoSQL DB
  • 42. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 42 Stream 기능을 통한 타 서비스와 손쉬운 연계 • DynamoDB 테이블에 저장된 항목이 변경되는 경우, 대다수의 애플리케이 션에서는 해당 변경 사항을 캡처하는 기능을 사용 가능 • DynamoDB 스트림은 어떤 DynamoDB 테이블이든 시간 순서에 따라 항목 변 경 사항이 있으면 이 정보를 수집하여 최대 24시간 동안 로그에 저장합니다. • 테이블에서 스트림을 활성화하면 DynamoDB가 테이블의 데이터 항목에 발생한 모든 변경 정보를 캡처합니다.
  • 43. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 43 DynamoDB 글로벌 테이블 전세계 사용자들이 동일한 빠른 지연 속도로 동일한 데이터를 접근 멀티마스터 복제방식으로 로컬에서 읽고 쓰는 데 이터는 글로벌테이블 멤버인 전세계 테이블에 복 제됩니다. 전세계에 분산된 어플리케이션은 글로벌테이블 멤 버인 로컬테이블에 기존과 동일한 수ms의 읽기/ 쓰기를 수행할 수 있습니다. 데이터 복제가 필요한 리전을 선택하기만 하면 됩 니다. 애플리케이션은 로컬테이블로 전역 테이블 에 액세스합니다. 리전의 장애 발생할 경우, 애플리케이션은 다른 리 전의 테이블을 사용하여 전과 동일한 읽기/쓰기 작업을 수행할 수 있습니다.
  • 44. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 44 손쉬운 글로벌 테이블 생성 • DynamoDB 스트리밍 기술에 기반한 다수의 리전간 테이블 동기화 기능 • 모든 아이템에 updatetime, updateregion 속성을 추가하여 언제 어느 지역에서 추가/변경 내역인지 확인 가능 • 글로벌 테이블의 동기화는 최종 쓰기 성공에 의한 결과적 동기화 지원 • Auto Scaling 활성화 및 동일 구성을 권고(콘솔 사용시, 기본으로 자동 활성화) • 복제 지연 시간/복제 대기 건수 모니터링
  • 45. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 45 글로벌 테이블을 이용한 글로벌 실시간 리더보드 예시 구성 및 동작 순서 1. 글로벌 테이블 생성 2. 지역별 GSI(Global Secondary Index) 생성 3. 개별 지역 게임 서버는 로컬 테이블에 사용자 기록 빠르게 저장 4. 개별 지역 사용자 기록은 전세계에 자동 복제 5. 글로벌 테이블의 변경 내역은 로컬 GSI에 업데이트 6. 개별 지역 게임 서버는 사용자에게 빠르게 실시간 게임 순위를 게시
  • 46. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 46 게임 분야에서의 활용 게임 분야의 기업은 게임 상태, 플레이어 데이터, 세션 기록, 순위표를 비롯하여 게임 플랫폼의 모든 기능에 DynamoDB를 사용합니다. 이들 기업이 DynamoDB에 서 얻는 주요 이점은 10밀리초 미만의 짧은 지연 시간 을 일관되게 유지하면서 수백만의 동시 사용자 및 요 청으로 안정적으로 확장할 수 있는 역량입니다. 또한, 완전관리형 서비스인 DynamoDB에는 운영 오버헤드 가 없으므로 게임 개발자는 데이터베이스 관리가 아 니라 게임 개발에 집중할 수 있습니다. 게임 개발자가 단일 AWS 리전에서 다중 AWS 리전으로 확장하려는 경향이 강해짐에 따라 DynamoDB 글로벌 테이블을 사용하여 다중 리전의 액티브-액티브 데이터 복제를 수행할 수 있습니다. 일반 사용 사례: • 게임 상태 • 플레이어 데이터 스토어 • 플레이어 세션 기록 데이터 스토어 • 순위표 https://youtu.be/7II4Q0jXeIs
  • 47. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 47 Amazon DynamoDB - Demo 1. [사전 준비] AWS CLI 설치 및 Configuration 2. DynamoDB Table 생성( Web Console / CLI ) 및 쿼리 - https://amzn.to/35GBzy1, Music2 table(P:Artist, S:SongTitle) 3. Global Table을 이용해 리전간 실시간 데이터 복제 4. 코드 수정 필요 없이 DAX를 사용해 더욱 빠르게 5. 참고: 게임 어플리케이션을 위한 DynamoDB 데이터 모델링 실습 - https://amzn.to/2rITt4q (120분)
  • 49. Copyright © 2019 BESPIN GLOBAL, Inc. All rights reserved http://www.bespinglobal.com 49 EC2와 함께 데이터베이스를 운영(IaaS) → 관리형 데이터베이스 활용(PaaS) Power, HVAC, net Rack & stack Server 관리 OS patches DB s/w patches Database backups Scaling High availability DB s/w installs OS installation you App optimization Power, HVAC, net Rack & stack Server 관리 OS patches DB s/w patches Database backups App optimization High availability DB s/w installs OS installation Scaling Reduce ✓ Effort ✓ Risk ✓ Cost you