다음을 통해 공유


사용자 지정 게임 서버 크기 조정 참조 아키텍처

게임 서버를 Docker로 캡슐화하고 Azure Resource Manager 템플릿, Azure Functions 및 DevOps 방법을 사용하여 안정적이고 자동화된 게임 서버 배포 프로세스를 구축하는 방법을 알아봅니다.

자세한 내용은 Docker 및 Azure를 사용하여 Icebird의 게임 서버를 오케스트레이션 및 크기 조정을 참조하세요. 소스 코드배포 템플릿은 모두 GitHub에서 사용할 수 있습니다.

아키텍처 다이어그램

B캡슐화를 사용하여 기본 게임 서버 호스팅

참조 구현 세부 정보

각 가상 컴퓨터에는 게임 세션을 실행하는 Docker 컨테이너가 포함되어 있습니다. 가상 컴퓨터는 시작되는 즉시 Docker 컨테이너를 인스턴스화하고 사용자 지정 스크립트 확장(Linux, Windows)을 통해 필요한 네트워크 포트를 엽니다. 모든 컨테이너에는 전용 공용 IP 주소가 있습니다.

또한 App Service 계획에서 실행되는 get server Azure 함수가 있습니다. App Service 환경 문서에 설명되어 있듯이 이 함수는 추가 크기 조정 옵션을 제공합니다. 모든 App Service에 Azure Storage 계정이 있어야 하며 Azure Functions 서비스에서 계정을 프로비전합니다. 이 스토리지 계정에서 Azure 테이블 저장소 테이블이 서버의 고유 식별자, IP 주소, 포트, 상태 등 서버 풀에 대한 정보를 저장하는 데 사용됩니다. get server Azure 함수는 이 정보를 사용하여 클라이언트로 연결 세부 정보를 반환하고 사용 중인 서버는 사용할 수 없음으로 표시합니다.

서버 풀 크기를 조정할 수 있도록 타이머 트리거 auto-scale Azure 함수가 사용됩니다. 1분마다 사용할 수 있는 서버 수를 확인하고 필요한 경우 서버를 추가합니다. 풀에 사용하지 않는 서버가 너무 많으면 이 함수가 서버 프로비전을 해제합니다. 풀에서 웜 상태를 유지할 서버 수를 설정할 수 있습니다.

게임 서버가 시작되면 세 번째 send details Azure 함수와 통신하여 자신의 존재를 알려야 합니다. 그러면 Azure 테이블 저장소에서 관련 연결 정보가 업데이트될 수 있습니다.

게임 세션이 완료되면 게임 서버는 네 번째 game session over Azure 함수를 ping합니다. 이 함수는 Azure 테이블 저장소에서 해당 서버의 상태를 업데이트합니다.

궁극적으로 가상 컴퓨터를 최대한 빠르게 확보하는 것이 목표이기 때문에, 이 아키텍처는 가상 컴퓨터당 하나의 게임 세션만 집중하는 것입니다.

Azure 제한 페이지를 확인하여 Azure Storage 제한 사항을 기반으로 실행 가능한 동시 사용자 수를 파악해야 합니다. 크기를 조정해야 하는 경우 Azure 테이블 저장소를 Azure Cosmos DB 및 해당 테이블 API로 바꾸는 것이 좋습니다.

배포 템플릿

다음 단추를 클릭하여 프로젝트를 Azure 구독에 배포합니다.

이 작업은 Azure 구독에 대한 template.json ARM 템플릿 파일의 템플릿 배포를 트리거합니다. 그러면 필요한 Azure 리소스가 만들어집니다. 이로 인해 Azure 계정에 요금이 부과될 수 있습니다.

Azure 서비스에 대한 명명 규칙 및 제한 사항을 요약하는 문서가 포함된 일반 지침 문서를 참조하세요.

참고

ARM 템플릿이 작동하는 방식에 관심이 있는 경우 이 참조 아키텍처에 활용된 각 서비스에서 Azure Resource Manager 템플릿 설명서를 참조하세요.

Azure Functions를 로컬로 실행하려면 다음과 동일한 앱 설정을 사용하여 local.settings.json 파일을 업데이트합니다.

가격

Azure 구독이 없는 경우 무료 계정을 만들어 12개월 무료 서비스를 시작합니다. 이러한 서비스의 제한을 초과하지 않는 한 Azure 무료 계정에서 무료로 제공하는 서비스에 대해서는 요금이 부과되지 않습니다. Azure Portal을 통해 또는 사용량 파일을 통해 사용량을 확인하는 방법을 알아보세요.

이러한 참조 아키텍처를 실행하는 동안 사용되는 Azure 서비스의 비용은 사용자가 부담합니다. 전체 금액은 사용량에 따라 달라집니다. 참조 아키텍처에 사용된 각 서비스에 대한 가격 웹 페이지를 참조하세요.

Azure 가격 계산기를 사용하여 사용하려는 Azure 서비스에 대한 비용을 구성하고 예측할 수도 있습니다.