본문 바로가기
[AWS]/AWS SAA EXAMTOPICS

[AWS][SAA][EXAMTOPICS] Question 275

by METAVERSE STORY 2022. 7. 7.
반응형
728x170

A business that specializes in online gaming is developing a game that is predicted to be very popular around the globe. A solutions architect must create an AWS Cloud architecture capable of capturing and presenting near-real-time game data for each participant, as well as the names of the world's top 25 players at any one moment.

Which AWS database solution and configuration should be used to satisfy these requirements?

  • A. Use Amazon RDS for MySQL as the data store for player activity. Configure the RDS DB instance for Multi-AZ support.
  • B. Use Amazon DynamoDB as the data store for player activity. Configure DynamoDB Accelerator (DAX) for the player data.
  • C. Use Amazon DynamoDB as the data store for player activity. Configure global tables in each required AWS Region for the player data.
  • D. Use Amazon RDS for MySQL as the data store for player activity. Configure cross-Region read replicas in each required AWS Region based on player proximity.

 

한글 번역

온라인 게임을 전문으로 하는 비즈니스는 전 세계적으로 매우 인기가 있을 것으로 예상되는 게임을 개발하고 있습니다. 솔루션 설계자는 각 참가자에 대한 거의 실시간 게임 데이터와 한 순간에 세계 상위 25명의 플레이어 이름을 캡처하고 표시할 수 있는 AWS 클라우드 아키텍처를 생성해야 합니다.

이러한 요구 사항을 충족하려면 어떤 AWS 데이터베이스 솔루션 및 구성을 사용해야 합니까?

  • A. Amazon RDS for MySQL을 플레이어 활동의 데이터 저장소로 사용하십시오. 다중 AZ 지원을 위해 RDS DB 인스턴스를 구성합니다.
  • B. 플레이어 활동을 위한 데이터 저장소로 Amazon DynamoDB를 사용합니다. 플레이어 데이터에 대해 DynamoDB Accelerator(DAX)를 구성합니다.
  • C. 플레이어 활동을 위한 데이터 저장소로 Amazon DynamoDB를 사용합니다. 플레이어 데이터에 대해 필요한 각 AWS 리전에서 전역 테이블을 구성합니다.
  • D. Amazon RDS for MySQL을 플레이어 활동의 데이터 저장소로 사용합니다. 플레이어 근접성을 기반으로 필요한 각 AWS 리전에서 교차 리전 읽기 전용 복제본을 구성합니다.

 

 

 

정답

  • C. Use Amazon DynamoDB as the data store for player activity. Configure global tables in each required AWS Region for the player data.

 

해설

게임 회사는 게임 상태, 플레이어 데이터, 세션 기록, 순위표를 비롯한 게임 플랫폼의 모든 부분에서 Amazon DynamoDB 를 사용합니다. 이러한 기업이 DynamoDB에서 얻는 주요 이점은 수백만 명의 동시 사용자 및 요청으로 안정적으로 확장하는 동시에 한 자릿수 밀리초 단위로 측정되는 낮은 지연 시간을 일관되게 보장할 수 있다는 것입니다. 또한 완전 관리형 서비스인 DynamoDB는 운영 오버헤드가 없습니다. 게임 개발자는 데이터베이스 관리 대신 게임 개발에 집중할 수 있습니다. 또한 게임 제작자는 단일 AWS 리전에서 여러 리전으로 확장하려고 하므로 다중 리전 , 활성-활성 데이터 복제를 위해 DynamoDB 글로벌 테이블 에 의존할 수 있습니다 .

이 블로그 게시물에서는 DynamoDB를 사용하는 게임 회사의 가장 일반적인 사용 사례와 디자인 패턴에 대해 자세히 설명합니다.

이 포스트에 사용된 용어

이 게시물에서는 다음 데이터 모델링 용어를 사용합니다.

게임 사용 사례 및 디자인 패턴

사용 사례 디자인 패턴
게임 상태, 플레이어 데이터 저장소 1:1 모델링, 1:M 모델링
플레이어 세션 기록 데이터 저장소 1:1 모델링, 1:M 모델링
리더보드 엔:엠 모델링

사용 사례: 게임 상태 및 플레이어 데이터 저장소

DynamoDB를 사용하여 플레이어 게임 상태 및 기타 플레이어 데이터를 저장하면 게임 회사에서 밀리초의 액세스 대기 시간을 유지하면서 동시에 많은 수의 플레이어를 수용할 수 있습니다. 예를 들어, 전 세계적으로 3억 명 이상의 등록 플레이어를 보유한 대규모 비디오 게임 회사인 Electronic Arts (EA)를 생각해 보십시오. EA의 경우 높은 동시성은 초당 100,000개 이상의 요청과 수백만 명의 일일 활성 사용자를 의미할 수 있습니다. DynamoDB로 마이그레이션함으로써 EA는 이전 데이터베이스인 MySQL 클러스터에 비해 90%의 비용 절감을 실현했습니다. EA는 DynamoDB 를 사용하여 게임 상태, 사용자 데이터 및 게임 인벤토리 데이터를 여러 테이블에 저장합니다. EA는 사용자 ID를 파티션 키와 기본 키(1:1 모델링 패턴)로 사용합니다.

대규모 멀티플레이어 온라인 롤플레잉 게임 인 Battle Camp를 제작한 PennyPop은 DynamoDB를 사용하여 분당 몇 번만 요청하여 Battle Camp를 시작했으며 초당 80,000개 이상의 요청으로 확장되었습니다. DynamoDB는 완전 관리형 서비스이기 때문에 PennyPop의 소규모 개발 팀이 운영이 아닌 게임 개발에 집중할 수 있습니다. 또한 PennyPop은 DynamoDB를 사용하여 MySQL 데이터베이스를 호스팅 및 샤딩하는 것과 비교하여 연간 최소 50%를 절약했습니다. PennyPop은 사내에서 동일한 환경을 실행하기 위해 운영 직원을 3명에서 6명으로 두 배로 늘려야 했습니다.

디자인 패턴 : 게임사는 DynamoDB에 데이터를 저장하기 위해 플레이어 ID를 사용하여 게임 상태 및 기타 플레이어 데이터를 분할하고 키-값 액세스 패턴(1:1 모델링)을 사용합니다. 보다 세분화된 액세스가 필요한 경우 이러한 회사는 정렬 키(1:M 모델링)를 사용합니다. 이를 통해 플레이어 데이터 세트의 다른 속성 또는 하위 집합에 개별적으로 액세스하고 업데이트할 수 있습니다. 이렇게 하면 전체 데이터 세트를 검색할 필요가 없습니다. 이 접근 방식에서는 DynamoDB 트랜잭션 API 를 사용하여 서로 다른 속성을 저장하는 여러 항목을 트랜잭션 방식으로 업데이트할 수 있습니다 . 일부 회사는 비용을 줄이기 위해 사용자 데이터를 압축합니다. 예를 들어 PennyPop은 gzip을 사용하여 플레이어 데이터를 압축하고 base64 문자열로 저장하여 플레이어 데이터를 원래 크기의 10%로 줄입니다.

사용 사례: 플레이어 세션 기록 데이터 저장소

게임 제작자는 세션 기록 및 기타 시간 지향 데이터를 DynamoDB에 저장하여 플레이어, 날짜 및 시간별로 빠르게 조회할 수 있습니다. 예를 들어 매일 테라바이트의 데이터를 생성하는 해외 플레이어에게 서비스를 제공하는 Riot Games 는 플레이어 세션 기록을 DynamoDB에 저장합니다. 이를 통해 플레이어 지원 팀은 모든 플레이어의 게임 내 구매 및 마지막 로그인 시간과 같은 지정된 플레이어에 대한 모든 정보를 신속하게 조회할 수 있습니다. 이 데이터는 이전에 Vertica에 저장되었으며 분석에는 적합하지만 단일 키 조회에는 적합하지 않습니다. 조회는 종종 몇 분이 걸렸습니다. Riot Games는 DynamoDB를 사용하기로 결정했습니다.조회 성능을 개선하고 Vertica의 모든 데이터를 DynamoDB로 복사하여 빠른 조회를 위해 DynamoDB에서 모든 사용자 데이터 및 기록의 구체화된 보기를 생성했습니다. DynamoDB를 사용하면 조회 시간을 분에서 1초 미만으로 줄이는 데 도움이 되었습니다.

디자인 패턴: 플레이어 세션 기록 및 기타 시간 지향 데이터를 DynamoDB에 저장하기 위해 게임 회사는 일반적으로 플레이어 ID를 파티션 키로 사용하고 날짜 및 시간(예: 마지막 로그인)을 정렬 키로 사용합니다(1:M 모델링). 이 스키마를 통해 이러한 회사는 플레이어 ID와 날짜 및 시간을 사용하여 각 플레이어의 데이터에 효율적으로 액세스할 수 있습니다. 특정 날짜 및 시간에 대한 단일 레코드를 선택하거나 지정된 날짜 및 시간 범위에 대한 레코드 집합을 선택하도록 쿼리를 쉽게 조정할 수 있습니다.

사용 사례: 리더보드

게임 제작자는 DynamoDB를 사용하여 간단한 리더보드를 쉽게 지원할 수 있습니다. 그러한 사용 사례 중 하나는 게임의 최고 점수를 표시하는 기능입니다. 게임 회사에서 플레이어의 최고 점수를 포함하여 플레이어의 게임 상태를 DynamoDB에 이미 저장한 경우 글로벌 보조 인덱스를 사용하여 최고 점수를 얻는 기능을 구현할 수 있습니다.

디자인 패턴 : 최고 점수를 속성으로 포함하여 플레이어의 게임 상태를 저장하는 플레이어 ID로 분할된 테이블을 사용하여 글로벌 보조 인덱스로 리더보드를 구현할 수 있습니다. 인덱스는 게임 ID 또는 이름을 파티션 키로 사용하고 최고 점수 속성을 정렬 키로 사용합니다(N:M 모델링). 이는 DynamoDB 개발자 안내서의 글로벌 보조 인덱스 섹션 에 설명되어 있습니다.

요약

이 게시물에서는 게임 회사를 위한 가장 일반적인 DynamoDB 사용 사례와 디자인 패턴에 대해 설명했습니다. 강력하고 최종 적인 일관성 , 다중 항목 ACID 트랜잭션 지원 , 원자 카운터 , DAX(DynamoDB Accelerator )를 통한 메모리 내 캐싱에 대한 옵션을 통해 DynamoDB는 게임 애플리케이션에서 일반적으로 발견되는 많은 요구 사항을 충족할 수 있습니다.

AWS의 게임 디자인 패턴에 대한 자세한 내용은 AWS의 확장 가능한 게임 패턴 소개 를 참조하십시오 . 또한 AWS에서 게임을 개발하는 방법에 대한 추가 리소스는 Amazon Game Tech 를 참조하십시오 . 아래에 의견을 제출하거나 DynamoDB 포럼 에서 새 스레드를 시작하십시오 .

 

참조 문서

https://aws.amazon.com/ko/blogs/database/amazon-dynamodb-gaming-use-cases-and-design-patterns/

 

반응형
그리드형

댓글