Azure Cosmos DB를 사용한 게임

Azure App Service
Azure Cosmos DB

솔루션 아이디어

이 문서는 솔루션 아이디어입니다. 잠재적인 사용 사례, 대체 서비스, 구현 고려 사항 또는 가격 책정 지침과 같은 추가 정보로 콘텐츠를 확장하려면 GitHub 피드백을 제공하여 알려주세요.

이 게임 솔루션 아이디어는 예기치 않은 트래픽 버스트를 수용하고 대기 시간이 짧은 다중 플레이어 환경을 글로벌 규모로 제공할 수 있도록 데이터베이스 크기를 탄력적으로 조정합니다.

아키텍처

Architecture diagram that shows a gaming solution idea that uses Azure Cosmos DB.

이 아키텍처의 Visio 파일을 다운로드합니다.

데이터 흐름

  1. Azure Traffic Manager는 사용자의 게임 트래픽을 Azure App Service, Functions 또는 Containers에 호스트된 앱과 Azure API Gateway를 통해 게시된 API로 라우팅합니다.
  2. Azure CDNAzure Blob Storage에 저장된 사용자에게 정적 이미지 및 게임 콘텐츠를 제공합니다.
  3. Azure Cosmos DB는 사용자의 게임 상태 데이터를 저장합니다.
  4. Azure Databricks는 게임 상태 데이터를 상호 연관, 정리 및 변환합니다.
  5. Azure Functions는 Azure Databricks에서 파생된 인사이트를 처리하고 Azure Notification Hubs를 사용하여 모바일 디바이스에 알림을 푸시합니다.

구성 요소

이 아키텍처에 포함되는 구성 요소는 다음과 같습니다.

  • Azure Traffic Manager는 다른 Azure 지역의 서비스 엔드포인트에 대한 사용자 트래픽 분산을 제어하는 DNS 기반 부하 분산 장치입니다. 정상 작동 중에는 요청을 주 지역으로 라우팅합니다. 이 지역을 사용할 수 없게 되면 Traffic Manager가 필요에 따라 보조 지역으로 장애 조치(failover)할 수 있습니다.

  • Azure API Management는 게임 API 앞에 있는 API 게이트웨이를 제공합니다. API Management는 다음과 같은 문제를 구현하는 데에도 사용할 수 있습니다.

    • 사용 할당량 및 속도 제한 적용
    • 인증을 위한 OAuth 토큰 유효성 검사
    • CORS(원본 간 요청) 사용
    • 응답 캐싱
    • 요청 모니터링 및 로깅
  • Azure App Service는 인프라를 관리할 필요 없이 자동 크기 조정 및 고가용성을 허용하는 API 애플리케이션을 호스트합니다.

  • Azure CDN은 사용자와 가까운 위치에서 캐시된 정적 콘텐츠를 제공하여 대기 시간을 줄입니다.

  • Azure Blob Storage는 정적 게임 미디어와 같은 많은 양의 비정형 데이터를 저장하도록 최적화되어 있습니다.

  • Azure Cosmos DB는 확장성 있는 고성능 애플리케이션을 빌드하고 현대화하기 위한 완전 관리형 NoSQL 데이터베이스 서비스입니다.

  • Azure Databricks는 Microsoft Azure Cloud Services 플랫폼에 대해 최적화된 Apache Spark 기반 분석 플랫폼입니다.

  • Azure Functions는 애플리케이션에서 인프라를 관리할 필요 없이 주문형으로 실행할 수 있도록 하는 서버리스 컴퓨팅 옵션입니다.

  • Azure Notification Hubs는 다양한 모바일 디바이스 및 플랫폼에 알림을 신속하게 보내기 위한 확장성이 뛰어난 푸시 알림 엔진입니다.

시나리오 정보

잠재적인 사용 사례

이 특정 시나리오는 게임 개발 산업의 게임 시나리오를 기반으로 합니다. 디자인 패턴은 트래픽이 많은 웹 호출 및 API 요청(예: 전자 상거래 및 소매 애플리케이션)을 처리하는 데 필요한 많은 산업과 관련이 있습니다.

다음 단계

Azure Cosmos DB에 대한 다음 문서를 검토합니다.

제품 설명서:

다음 솔루션 아이디어는 Azure Cosmos DB를 특징으로 합니다.