1. The document discusses microservices architecture and how Netflix transitioned from a monolithic architecture to microservices. Key aspects discussed include breaking the monolith into many small, independent services that are loosely coupled.
2. Netflix's microservices architecture is composed of hundreds of microservices running on thousands of servers. Each service focuses on doing a small, well-defined piece of work. Services communicate through well-defined APIs and share no code or databases.
3. The document provides examples of how other companies like Samsung and Vingle have also adopted microservices architectures on AWS, breaking monolithic applications into independent, scalable services. This allows for independent deployments, rapid innovation, and improved resilience.
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버Heungsub Lee
NDC14에서 발표한 "[야생의 땅: 듀랑고] 서버 아키텍처" 세션의 슬라이드입니다.
슬라이드에 설명이 많지 않은데, 디스이즈게임에서 발표 내용을 잘 정리해주었습니다. 기사도 함께 보시면 좋을 것 같습니다.
http://www.thisisgame.com/webzine/news/nboard/4/?n=54955
7. 게임 스트리밍 서비스를 위한 아키텍처 - 언리얼 엔진을 중심으로! [레벨 300] - 발표자: 하흥수, 솔루션즈 아키텍트, AWS :...Amazon Web Services Korea
클라우드 기반의 게임 스트리밍은 플랫폼과 디바이스에 제한받지 않고 플레이할 수 있는 등 여러 가지 뛰어난 장점을 가진 게임 체인저로 관심받는 기술입니다. 그러나 네트워크 이슈와 높은 서버 비용 등으로 인해 구현하는 데 어려움을 겪는 경우가 많습니다. 본 세션에서는 게임스트리밍 서비스를 AWS에서 어떻게 구현할 수 있을지에 대해 간단한 아키텍처와 데모를 통해 소개해드립니다.
게임 개발을 완료하고 출시 전에는 부하 테스트 과정이 필수입니다. 부하 테스트를 통해 ���비스의 문제점을 미리 파악할 수 있습니다. 1부에서는 AWS 환경에서 게임 서비스에 대규모 부하를 주는 방법을 알아보겠습니다. 또한 AWS의 여러 서비스를 통해 이런 서비스 상황을 모니터링하는 방법을 알아 보겠습니다. 2부는 AWS에서 카오스 엔지니어링을 구현해보겠습니다.
모든 게임 서비스에는 공통으로 구현해야 할 기능들이 있습니다. 대표적으로 채팅과 로그인, 접속 대기열 등이 있습니다. 시리즈 #2에서는 이런 기능들을 AWS의 서버리스 서비스로 구현하는 방법을 알아보겠습니다. 새 게임을 개발할 때마다 중복으로 구현하지 않고, 마이크로 서비스 아키텍처를 활용하는 방법들도 이론과 실습을 통해 알아봅니다.
1부: [Amazon ElasticCache, AWS Lambda, AWS IoT-Core] 게임채팅을 AWS에서 구현해보자!
2부: [Amazon SQS, Amazon Cognito, AWS Dynamo DB] AWS에서 대규모 로그인과 접속 대기열을 구현해보자!
멀티플레이어 게임을 서비스하는 데 필요한 게임 장르별 백엔드 아키텍처에 대한 설명해 드립니다. 기본적인 ���임의 상태 동기화 개념과 서버 구성에 관한 이야기, 게임 클라이언트 엔진(Unity, Lumberyard, Unreal Engine 등)에서 제공하는 복제 프레임워크를 통하여 손쉽게 게임 서버를 만드는 방법에 대한 내용을 다룹니다. 또한, 이렇게 만들어진 게임 서버를 Amazon GameLift라는 클라우드 서비스를 통해 DevOps형태의 비용 효율적으로 서비스하는 방법에 대해 소개합니다.
많은 게임사들은 AWS 의 글로벌 인프라를 이용해서 글로벌 런칭을 준비하고, 이를 통해 새로운 기회를 맞이합니다. 본 강연에서는 AWS Global Accelerator, Amazon CloudFront 및 다양한 AWS 의 글로벌 기반 데이터베이스 기능들을 기반으로 워크로드에 걸맞는 솔루션을 알아봅니다. 또한 많은 고객사에서 사용하는 아키텍처 패턴을 알아보고 이와 함께 고려할 점들을 알아봅니다.
Amazon Game Services - GameLift, GameSparks (김병수 솔루션즈 아키텍트, AWS) :: Gaming on...Amazon Web Services Korea
Amazon Game Services - GameLift, GameSparks
AWS에서 제공하는 다양한 Games Service들 중 세션형 게임 fleets를 관리형 서비스로 제공하는 GameLift의 새로운 MatchMaking 기능인 FlexMatch을 비롯한 다양한 서비스 컴포넌트와 그 동작방식을 설명합니다. 또한, AWS Console과 곧 통합되어 선보일 새로운 Amazon Game Service인 GameSparks를 소개합니다. 리더보드, 매치메이킹, 채팅, 업적 시스템 등 멀티 플레이어 기능, 가상화폐, 인앱 결제, 상점 및 상품 관리 등 게임 경제 기능, 분석, 타겟 마케팅, 사용자 관리 및 권한 관리, 각종 프로모션 기능 등 다양한 빌딩 블록을 관리형으로 제공하여 게임 서비스 플랫폼을 효율적으로 구축할 수 있습니다.
고객의 플랫폼/서비스를 개선한 국내 사례 살펴보기 – 장준성 AWS 솔루션즈 아키텍트, 강산아 NDREAM 팀장, 송영호 야놀자 매니저, ...Amazon Web Services Korea
AWS는 175개 이상의 다양한 서비스를 제공해드리고 있습니다. 주요 서비스들 외에도 고객 서비스의 품질을 개선하는 데에 이러한 다양한 AWS의 서비스들의 도움을 받을 수 있습니다. 이번 세션에서는 AWS Transit Gateway, AWS Global Accelerator, AWS Shield, AWS IoT, Amazon WorkSpaces 를 통해서 고객의 플랫폼/서비스를 개선한 국내 사례들을 살펴보며 AWS 서비스들을 어떻게 활용할 수 있는지 보여드립니다.
클라우드에서 Database를 백업하고 복구하는 방법에 대해 설명드립니다. AWS Backup을 사용하여 전체백업/복구 부터 PITR(Point in Time Recovery)백업, 그리고 멀티 어카운트, 멀티 리전등 다양한 데이터 보호 방법을 소개합니다(데모 포함). 또한 self-managed DB 의 데이터 저장소로 Amazon FSx for NetApp ONTAP 스토리지 서비스를 사용할 경우 얼마나 신속하게 데이터를 복구/복제 할수 있는지 살펴 봅니다.
기업은 이벤트나 신제품 출시 등으로 예기치 못한 트래픽 급증 시 데이터베이스 과부하, 서비스 지연 및 중단 등의 문제를 겪곤 합니다. Aurora 오토스케일링은 프로비저닝 시간으로 인해 실시간 대응이 어렵고, 트래픽 대응을 위한 과잉 프로비저닝이 발생합니다. 이러한 문제를 해결하기 위해 프로비저닝된 Amazon Aurora 클러스터와 Aurora Serverless v2(ASV2) 인스턴스를 결합하는 Amazon Aurora 혼합 구성 클러스터 아키텍처와 고해상도 지표를 기반으로 하는 커스텀 오토스케일링 솔루션을 소개합니다.
Amazon Aurora 클러스터를 초당 수백만 건의 쓰기 트랜잭션으로 확장하고 페타바이트 규모의 데이터를 관리할 수 있으며, 사용자 지정 애플리케이션 로직을 생성하거나 여러 데이터베이스를 관리할 필요 없이 Aurora에서 관계형 데이터베이스 워크로드를 단일 Aurora 라이터 인스턴스의 한도 이상으로 확장할 수 있는 Amazon Aurora Limitless Database를 소개합니다.
Amazon Aurora MySQL 호환 버전 2(MySQL 5.7 호환성 지원)는 2024년 10월 31일에 표준 지원이 종료될 예정입니다. 이로 인해 Aurora MySQL의 메이저 버전 업그레이드를 검토하고 계시다면, Amazon Blue/Green Deployments는 운영 환경에 영향을 주지 않고 메이저 버전 업그레이드를 할 수 있는 최적의 솔루션입니다. 본 세션에서는 Blue/Green Deployments를 통한 Aurora MySQL의 메이저 버전 업그레이드를 실습합니다.
Amazon DocumentDB(MongoDB와 호환됨)는 빠르고 안정적이며 완전 관리형 데이터베이스 서비스입니다. Amazon DocumentDB를 사용하면 클라우드에서 MongoDB 호환 데이터베이스를 쉽게 설치, 운영 및 규모를 조정할 수 있습니다. Amazon DocumentDB를 사용하면 MongoDB에서 사용하는 것과 동일한 애플리케이션 코드를 실행하고 동일한 드라이버와 도구를 사용하는 것을 실습합니다.
사례로 알아보는 Database Migration Service : 데이터베이스 및 데이터 이관, 통합, 분리, 분석의 도구 - 발표자: ...Amazon Web Services Korea
Database Migration Service(DMS)는 RDBMS 이외에도 다양한 데이터베이스 이관을 지원합니다. 실제 고객사 사례를 통해 DMS가 데이터베이스 이관, 통합, 분리를 수행하는 데 어떻게 활용되는지 알아보고, 동시에 데이터 분석을 위한 데이터 수집(Data Ingest)에도 어떤 역할을 하는지 살펴보겠습니다.
Amazon Elasticache - Fully managed, Redis & Memcached Compatible Service (Lev...Amazon Web Services Korea
Amazon ElastiCache는 Redis 및 MemCached와 호환되는 완전관리형 서비스로서 현대적 애플리케이션의 성능을 최적의 비용으로 실시간으로 개선해 줍니다. ElastiCache의 Best Practice를 통해 최적의 성능과 서비스 최적화 방법에 대해 알아봅니다.
Internal Architecture of Amazon Aurora (Level 400) - 발표자: 정달영, APAC RDS Speci...Amazon Web Services Korea
ccAmazon Aurora 데이터베이스는 클라우드용으로 구축된 관계형 데이터베이스입니다. Aurora는 상용 데이터베이스의 성능과 가용성, 그리고 오픈소스 데이터베이스의 단순성과 비용 효율성을 모두 제공합니다. 이 세션은 Aurora의 고급 사용자들을 위한 세션으로써 Aurora의 내부 구조와 성능 최적화에 대해 알아봅니다.
[Keynote] 슬기로운 AWS 데이터베이스 선택하기 - 발표자: 강민석, Korea Database SA Manager, WWSO, A...Amazon Web Services Korea
오랫동안 관계형 데이터베이스가 가장 많이 사용되었으며 거의 모든 애플리케이션에서 널리 사용되었습니다. 따라서 애플리케이션 아키텍처에서 데이터베이스를 선택하기가 더 쉬웠지만, 구축할 수 있는 애플리케이션의 유형이 제한적이었습니다. 관계형 데이터베이스는 스위스 군용 칼과 같아서 많은 일을 할 수 있지만 특정 업무에는 완벽하게 적합하지는 않습니다. 클라우드 컴퓨팅의 등장으로 경제적인 방식으로 더욱 탄력적이고 확장 가능한 애플리케이션을 구축할 수 있게 되면서 기술적으로 가능한 일이 달라졌습니다. 이러한 변화는 전용 데이터베이스의 부상으로 이어졌습니다. 개발자는 더 이상 기본 관계형 데이터베이스를 사용할 필요가 없습니다. 개발자는 애플리케이션의 요구 사항을 신중하게 고려하고 이러한 요구 사항에 맞는 데이터베이스를 선택할 수 있습니다.
Demystify Streaming on AWS - 발표자: 이종혁, Sr Analytics Specialist, WWSO, AWS :::...Amazon Web Services Korea
실시간 분석은 AWS 고객의 사용 사례가 점점 늘어나고 있습니다. 이 세션에 참여하여 스트리밍 데이터 기술이 어떻게 데이터를 즉시 분석하고, 시스템 간에 데이터를 실시간으로 이동하고, 실행 가능한 통찰력을 더 빠르게 얻을 수 있는지 알아보십시오. 일반적인 스트리밍 데이터 사용 사례, 비즈니스에서 실시간 분석을 쉽게 활성화하는 단계, AWS가 Amazon Kinesis와 같은 AWS 스트리밍 데이터 서비스를 사용하도록 지원하는 방법을 다룹니다.
Amazon EMR - Enhancements on Cost/Performance, Serverless - 발표자: 김기영, Sr Anal...Amazon Web Services Korea
Amazon EMR은 Apache Spark, Hive, Presto, Trino, HBase 및 Flink와 같은 오픈 소스 프레임워크를 사용하여 분석 애플리케이션을 쉽게 실행할 수 있는 관리형 서비스를 제공합니다. Spark 및 Presto용 Amazon EMR 런타임에는 오픈 소스 Apache Spark 및 Presto에 비해 두 배 이상의 성능 향상을 제공하는 최적화 기능이 포함되어 있습니다. Amazon EMR Serverless는 Amazon EMR의 새로운 배포 옵션이지만 데이터 엔지니어와 분석가는 클라우드에서 페타바이트 규모의 데이터 분석을 쉽고 비용 효율적으로 실행할 수 있습니다. 이 세션에 참여하여 개념, 설계 패턴, 라이브 데모를 사용하여 Amazon EMR/EMR 서버리스를 살펴보고 Spark 및 Hive 워크로드, Amazon EMR 스튜디오 및 Amazon SageMaker Studio와의 Amazon EMR 통합을 실행하는 것이 얼마나 쉬운지 알아보십시오.
Amazon OpenSearch - Use Cases, Security/Observability, Serverless and Enhance...Amazon Web Services Korea
로그 및 지표 데이터를 쉽게 가져오고, OpenSearch 검색 API를 사용하고, OpenSearch 대시보드를 사용하여 시각화를 구축하는 등 Amazon OpenSearch의 새로운 기능과 기능에 대해 자세히 알아보십시오. 애플리케이션 문제를 디버깅할 수 있는 OpenSearch의 Observability 기능에 대해 알아보세요. Amazon OpenSearch Service를 통해 인프라 관리에 대해 걱정하지 않고 검색 또는 모니터링 문제에 집중할 수 있는 방법을 알아보십시오.
Enabling Agility with Data Governance - 발표자: 김성연, Analytics Specialist, WWSO,...Amazon Web Services Korea
데이터 거버넌스는 전체 프로세스에서 데이터를 관리하여 데이터의 정확성과 완전성을 보장하고 필요한 사람들이 데이터에 액세스할 수 있도록 하는 프로세스입니다. 이 세션에 참여하여 AWS가 어떻게 분석 서비스 전반에서 데이터 준비 및 통합부터 데이터 액세스, 데이터 품질 및 메타데이터 관리에 이르기까지 포괄적인 데이터 거버넌스를 제공하는지 알아보십시오. AWS에서의 스트리밍에 대해 자세히 알아보십시오.
10. 서버리스 게임 백엔드 구축
Client
Lambda
function
API
Gateway
DynamoDB
AWS IAM
S3
Cognito
Static Content
Download
Backend Logic Data Store
12. AWS Global Network
• HTTP(Web-backend)의 경우
• CloudFront를 쓰는 것만으로도 누릴 수 있음
• 현재 74개의 글로벌 엣지
• 최대 300% 까지 빠름
• GET 요청 캐시 가능
• PUT 요청도 이득 (TTL-0)
• TCP/UDP의 경우
• 가까운 리전에 Proxy 설치
• 패킷 포워딩
Game
Backend AWS Edge
Location
Game
Client
Optimized
Throughput!
16. 비동기형 (Asynchronous)
• 서버리스 형태로 구축 가능
• Serverless Architecture
• Web-backend
• 2-tier: web servers + data store
• 3-tier: web front + app servers + data store
• 비용 효율화가 쉬움
• Spike load: Auto-scaling with ELB
• Spot instances 사용 가능
17. 2-Tier Web Application Architecture
Amazon
Route 53
Elastic Load
Balancing
Amazon S3
Patch/Update
Resource,
Code (script)
RDS DB
(Master)
RDS DB
(Multi-AZ Slave)
ECache
(Redis)
CloudWatch
EC2 (Web Servers)
Availability Zone #1
Auto Scaling group
EC2
Availability Zone #2
Auto Scaling group
region
CloudFront
Gaming Traffic
ECache
(Replica)
18. 3-Tier Web Application Architecture
Web Servers
Availability Zone 1
Availability Zone 2
Web Servers
App Servers
App Servers
Gaming Traffic
Patch/Update
Resource,
Code (script)
20. 지속형 (Persistent)
• 게임 월드가 유지되는 형태
• 대표적으로 MMOG형 게임: MMORPG
• Scale-out 및 비용 절감이 쉽지 않음
• 지역 또는 채널 별로 서버를 나누고 플레이어가 서버 선택
• 상태 유지 (Stateful): 플레이어가 1명이어도 서버 유지 필요
• 성능 요구 사항
• 상태 저장 (CRUD) 및 게임내 거래(Transaction) 아주 빈번
• 고성능의 Scaling이 가능한 RDBMS 필요 (e.g. Aurora)
• 인접한 플레이어간 패킷 방송이 많음
• 고성능의 네트워크 인터페이스가 필요함 (e.g. ENA)
21. 일반적인 MMOG 아키텍처 (Realm 서버 기반)
Game Clients
1. Select a Realm
2. Connect to a Realm
Data
Server
Realm 3
Database
NPC, Chat,
Physics, …
World
Server
Aux
Svrs
Data
Server
Realm 1
Database
NPC, Chat,
Physics, …
World
Server
Aux
Svrs
Data
Server
Realm 2
Database
NPC, Chat,
Physics, …
World
Server
Aux
Svrs
Data
Server
Realm N
Database
NPC, Chat,
Physics, …
World
Server
Aux
Svrs
22. MMOG 아키텍처 DB 통합 예 (Realm 서버 기반)
Game Clients
1. Select a Realm
2. Connect to a Realm
Data
Server
Realm 1
World
Server
Data
Server
Realm 2
World
Server
Data
Server
Realm N
World
Server
Amazon
Aurora
Read
Replica
Analytics / BI
24. Elastic Network Adaptor (ENA)
• MMOG 게임 특성
• 작은 크기의 패킷을 아주 빈번하게 전송
• 네트워크 대역보다 아주 높은 PPS 지원이 필요
• 네트워크 인터럽트 처리에 스로틀링이 걸리면 안됨
• 특정 CPU코어 하나만 100% 치는 경우: 한 코어에서만 네트워크
인터럽트 처리하는 상황
• ENA
• Receive Side Scaling: 인터럽트 처리를 8 코어에 나누어 처리
• 20 Gbps의 대역폭
• 현재 사용 가능한 인스턴스 타입: I3, P2, R4, X1, m4.16xlarge
25. 세션형 (Session-based)
• 실시간 게임 중 가장 많은 형태
• 게임의 시작과 끝이 명확, 로비가 존재
• 주로 MOBA, FPS, RTS, MORPG, …
• 게임 세션이 상태를 가짐 (stateful)
• 비용 최적화 및 Scaling이 쉽지 않음
• 게임 세션간 서로 독립적: 상태 공유 없음
• Amazon GameLift
• 게임 세션 단위의 Scaling: 비용 최적화!
26. 세션형 게임을 위한 아키텍처
• 최소한의 구성요소
• 게임 참가를 위해 대기하는 (lobby) 서버
• 게임 세션을 배치해주는 (matchmaking) 서버
• 게임플레이를 처리하는 (dedicated) 게임 서버
• 그 이외 필요에 따라 채팅 서버, 랭킹 서버, 캐시 서버 등
• 운영을 위한 추가적인 도구들
• 게임 세션 정보 및 플레이어 상태 확인
• 각종 모니터링 툴, 배포 시스템, 인프라 자동화 도구
27. Amazon GameLift
• 세션형 멀티플레이어 게임 호스팅을
위한 관리형 플랫폼
• 플레이어의 상황에 따라 자동으로
스케일링(Scale In/Out)
• 지연-최적화된 (low-latency)
리전으로의 자동 게임 배치 기능을
통한 최적의 플레이 경험 제공
• 중단(downtime)없는 게임 서버
업데이트 지원
• DDoS 공격에 강한 내성
28. 세션형 게임 표준 아키텍처
Player
Auth
Game
Servers
GameLift EC2 Fleet
Lobby
MatchMaker
Game Client
Game Session
Placement
Player Data
Connect to
(TCP or UDP)
Request
Request
Auth
Game Session Info
Player
Info
GameLift
Chat
31. 일반적인 게임 데이터 분석 아키텍처
Game DB
Game
Servers
Kinesis
S3
Redshift
(KCL) S3
Consumer
EMR
Dashboard
(KCL)
Real-time
Stats
ElastiCache
(Redis)
Athena
Game
Clients
32. Time Scope에 따른 아키텍처
Batch
Micro
Batch
Real
Time
Producer Kinesis App Client
EMRS3
KCL
DynamoDB
Redshift
BI Tools
KCL
KCL
34. 해외 서비스 데이터 리포팅
Log를 쌓고
S3
Data
Processing
EMR
결과를 쌓음
S3
Loading /
Querying
Redshift
Dashboard
BI
(MSTR…)
해외 region
Region
replication 국내 또는 해외
MPP
• 표준화 추천 방안
• 현지에서 처리하고 결과 위주로 전송 받는 방식이 일반적
• 경우에 따라 EMR/Redshift를 쓰지 않고 Athena만 사용해서 처리 가능
35. 본 강연이 끝난 후…
• AWS for Game Developers
• 고객 사례, Reference Architecture, Whitepapers
• https://aws.amazon.com/gaming/
• AWS전문가와 상담이 필요하다면
• aws-gaming-korea@amazon.com
• 한국의 게임 개발사들을 위한 뉴스레터 구독
• amazon-kr-gaming@amazon.com