View a markdown version of this page

컨테이너 기반 게임 백엔드 아키텍처 - 게임 산업 렌즈

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

컨테이너 기반 게임 백엔드 아키텍처

이 섹션에서는 컨테이너 기반 게임 백엔드 아키텍처를 간략하게 설명합니다.

컨테이너를 사용하여 게임 백엔드 호스팅

컨테이너를 사용하여 게임 백엔드 호스팅

  • 플레이어는 게임 시스템, 디지털 스토어 프런트 또는 Amazon CloudFront와 같은 콘텐츠 전송 네트워크(CDN)에서 직접 다운로드를 통해 배포할 수 있는 게임 클라이언트 소프트웨어를 사용하여 게임에 액세스합니다. CDNs 엣지 로케이션에서 캐싱을 제공하여 콘텐츠를 다운로드하는 사용자의 성능을 가속화합니다. 예를 들어 CloudFront를 사용하여 게임 클라이언트 소프트웨어를 플레이어와 게임 자산 및 기타 콘텐츠에 배포할 수 있습니다.

  • AWS Global Accelerator는 플레이어 게임 클라이언트에서 로드 밸런서로 트래픽을 라우팅하고 다중 리전 및 장애 조치를 위해 리전 간에 트래픽을 라우팅하기 위한 트래픽 가속화 및 사용자 지정 가능한 제어를 제공합니다. 게임 백엔드 REST APIs의 사용자 지정 도메인 이름은 트래픽을 Global Accelerator 엔드포인트로 라우팅하도록 Amazon Route 53에 구성됩니다. 다이어그램에 표시되지 않은는 액셀러레이터 및 게임 백엔드에 대한 추가 DDoS 완화를 제공할 AWS Shield Advanced 수 있습니다.

  • NAT Gateway 및 Application Load Balancer는 게임 백엔드에서 사용하는 각 가용 영역의 퍼블릭 서브넷에 배포되어 리전에서 고가용성을 제공합니다. AWS WAF 는 Application Load Balancer에 배포되어 계층 7 웹 트래픽 필터링을 제공합니다.

  • 게임 백엔드는 복원력을 위해 가용 영역에 분산된 프라이빗 서브넷의 Amazon EKS 클러스터에 배포된 개별 컨테이너 기반 마이크로서비스의 모음으로 호스팅됩니다. 자동 조정은 일반적으로 플레이어 수요와 상관관계가 있는 리소스 사용률을 기반으로 서비스 및 클러스터 노드의 용량을 동적으로 조정합니다.  Cluster Autoscaler는 클러스터의 노드 수를 자동으로 조정하는 반면 Horizontal Pod Autoscaler는 클러스터에 배포된 포드를 자동으로 조정합니다.

  • 게임 및 플레이어 데이터는 기본 노드와 복제본 노드 간의 복제를 통해 가용 영역의 프라이빗 서브넷에 배포되는 백엔드 데이터베이스 및 캐시에 저장됩니다. Amazon Aurora는 플레이어 프로필, 권한 및 게임 내 구매와 같은 사용 사례에 널리 사용되는 선택 사항으로, 더 복잡한 쿼리 요구 사항이 있을 수 있으며 MySQL 및 PostgreSQL의 관계형 데이터 모델링 기능을 활용할 수 있습니다. Amazon ElastiCache는 고성능 리더보드, pub/sub 메시징을 구축하고 자주 액세스하는 데이터를 캐싱하여 데이터베이스의 지연 시간과 로드를 줄이는 데 유용합니다. Amazon DynamoDB는 예측할 수 없는 액세스 패턴과 플레이어 및 게임 상태 데이터, 세션 데이터, 인벤토리 및 항목 스토어 또는 오버헤드를 최소화한 글로벌 데이터베이스를 원하는 사용 사례에 대해 거의 무제한의 처리량으로 확장할 수 있는 기능에 이상적인 완전관리형 NoSQL 데이터 스토어입니다.

  • 리더보드 업데이트 또는 친구 요청 전송과 같이 백그라운드에서 수행할 수 있는 작업을 수행하려면 비동기 처리 워크플로를 사용해야 합니다. 이러한 유형의 작업을 Amazon SQS 대기열로 푸시하여 게임이 성장함에 따라 확장하거나 Amazon SNS 주제를 사용하여 병렬 처리를 위해 많은 소비자 애플리케이션 대기열 간에 작업을 분산하도록 게임 백엔드를 구성합니다. Lambda 함수 를 사용하여 AWS 이벤트 기반 방식으로 처리를 수행하여 컴퓨팅 인프라 비용과 관리 오버헤드를 줄입니다. 수명이 길거나 여러 단계로 작업을 조정해야 하는 워크플로의 경우를 사용하여 전체 워크플로를 오케스트레이션하는 것이 좋습니다 AWS Step Functions. Amazon EventBridge를 사용하여 AWS 서비스 및 사용자 지정 애플리케이션 이벤트에 응답하는 함수를 시작할 수 있습니다.