Azure Batch를 사용하는 동기 멀티 플레이어
게임 서버 풀은 가상 컴퓨터를 만들고 포트를 여는 역할을 담당하는 Azure Batch에서 관리합니다. 각 지역에는 자체 게임 서버 풀이 있습니다.
아키텍처 다이어그램
관련 서비스
- Azure Traffic Manager - 대기 시간을 기준으로 플레이어를 가장 적절한 지역 영역에 연결하기 때문에 선택했습니다.
- Azure Batch - VM을 만들고 포트를 여는 데 사용됩니다. 개발자가 정의하는 매개 변수에 따라 자동으로 풀 크기를 조정할 수 있으므로 선택했습니다.
Azure Traffic Manager용 리소스 그룹 1개와 각 지역 가상 컴퓨터 클러스터용 리소스 그룹 1개를 활용합니다.
아키텍처 고려 사항
가상 컴퓨터가 실행되는 운영 체제에 따라 또한 플랫폼 이미지 또는 사용자 지정 이미지 사용 여부에 따라 몇 가지 차이점이 있습니다.
운영 체제
Windows
- Windows Server 가상 컴퓨터는 실행하려면 Linux 가상 컴퓨터보다 약 2배의 시간이 소요되며 일정을 예약할 수 있습니다.
- 현재 Windows Server 2012는 Windows Server 2016보다 성능이 뛰어납니다.
- 이미 유효한 Windows 온-프레미스 라이선스가 있는 경우 SKU 전체 비용을 지불하지 않아도 됩니다.
Linux
- Windows를 사용하는 것보다 약 두 배 빠르게 실행할 수 있고 일정을 예약할 수 있습니다.
플랫폼 이미지
플랫폼/마켓플레이스 이미지
- 보안 패치를 사용하여 업데이트됩니다. 다음 이미지에 대한 지원이 제공됩니다.
- 장기간 유지된 풀에서 플랫폼 이미지를 사용하는 단점은 이미지가 사용 중단되고 리포지토리에서 제거 될 수 있으며 풀을 절대 확장하지 못할 수 있다는 것입니다.
사용자 지정 이미지
- 사용자 지정 이미지 부팅 시간은 이미 원본이 있는 사용자 지정 소프트웨어 및 데이터에 따라 현저히 달라질 수 있습니다.
- 장점은 OSDisk에서 모든 소프트웨어/데이터가 미리 설치된 이미지를 준비할 수 있다는 것입니다.
- 사용자 지정 이미지 원본 디스크는 다음 세 유형 중 하나가 될 수 있습니다. 스냅샷, 2. 관리되는 디스크, 3. VHD.
- 현재, 원본은 스냅샷을 권장합니다. 저장소에는 Azure Batch가 한 번에 2,500개 VM을 초과하여 확장하지 못하게 하는 크기 조정 제한이 있습니다.
컨테이너
Linux 컨테이너에서 게임을 컨테이너화하는 경우에는 컨테이너를 실행하기 위한 사전 제작 이미지가 있습니다. 컨테이너 작업 실행을 지원하는 컴퓨팅 노드 풀을 만든 다음 풀에서 컨테이너 작업을 실행하는 방법을 알아보려면 Azure Batch에서 컨테이너 애플리케이션 실행을 참조하세요.
사용 가능한 Linux 이미지는 이 링크에 설명된 microsoft-azure-batch 게시자를 참조하세요.
배포 템플릿
다음 단추를 클릭하여 프로젝트를 Azure 구독에 배포합니다.
이 작업은 Azure 구독에 대한 BatchWithPoolDeploy.json ARM 템플릿 파일의 템플릿 배포를 트리거합니다. 그러면 필요한 Azure 리소스가 만들어집니다. 보다 정확하게는
- Azure Storage 계정을 만듭니다.
- Azure Storage 계정과 연결된 Azure Batch 계정을 만듭니다.
- D2s_v3 Windows Server 2016에서 (기본적으로) 5개 노드를 사용하여 풀을 만듭니다.
- 풀에는 게임 서버를 시작하는 데 사용할 수 있는 빈 시작 작업이 있습니다.
이로 인해 Azure 계정에 요금이 부과될 수 있습니다.
Azure 서비스에 대한 명명 규칙 및 제한 사항을 요약하는 문서가 포함된 일반 지침 문서를 참조하세요.
참고
ARM 템플릿이 작동하는 방식에 관심이 있는 경우 이 참조 아키텍처에 활용된 각 서비스에서 Azure Resource Manager 템플릿 설명서를 참조하세요.
단계별 설명
- 플레이어의 디바이스 클라이언트는 Azure Traffic Manager에 연결하여 게임 서버를 찾는 플레이어의 요청을 라우팅합니다.
- Azure Traffic Manager는 대기 시간이 가장 짧은 지역 영역에 연결하고 매치 메이커를 가리켜 사용 가능한 게임 서버를 가져옵니다.
- 매치 메이커는 게임 서버를 선택하는 데 필요한 모든 정보를 갖고 있으며 용량이 더 필요한 경우 Azure Batch 서비스를 사전에 ping하여 확장을 시작합니다.
- Azure Batch 서비스가 요청을 수신하고 확장을 시작합니다. 자동 크기 조정이 설정된 경우에는 설정된 규칙에 따라 프로세스를 더 적극적으로 시작할 수 있습니다.
- 게임 세션이 종료하고 게임 서버가 다시 사용 가능해지면 서버는 주기적으로 매치 메이커에 최신 IP 및 포트와 함께 상태 업데이트를 전송합니다.
- 각 플레이어 디바이스는 매치 메이커에서 제공하는 연결 정보를 사용하여 게임 서버에 직접 연결합니다.
- 게임 세션이 종료된 후 관련 정보가 저장됩니다.
크기 조정
Azure Batch 자동 크기 조정에서는 작업 요구 증가 시 서비스가 동적으로 풀에 노드를 추가하고 작업 요구 감소 시 컴퓨팅 노드를 제거합니다.
정의한 자동 크기 조정 수식을 컴퓨팅 노드 풀에 연결하여 풀에서 자동 크기 조정을 사용하도록 설정합니다. Azure Batch 서비스는 자동 크기 조정 공식을 사용하여 워크로드를 실행하는 데 필요한 컴퓨팅 노드 수를 결정합니다.
풀이 생성될 때 또는 기존 풀에서 자동 크기 조정을 사용하도록 설정할 수 있습니다. 또한 자동 크기 조정을 위해 구성된 풀에서 기존 수식을 변경할 수도 있습니다. Azure Batch를 사용하면 풀에 할당하기 전에 수식을 평가하고 자동 크기 조정 실행 상태를 모니터링할 수 있습니다.
또는 이 예에서와 같이 매치 메이커를 사용하여 Azure Batch에서 적극적으로 확장 시점을 판단하게 할 수 있습니다.
보안 고려 사항
가상 네트워크에 가상 컴퓨터의 Azure Batch 서비스 풀을 포함하는 경우 몇 가지 요구 사항이 있습니다.
추가 리소스 및 샘플
Azure Batch Explorer: Azure Batch 서비스와 상호 작용하여 Azure Batch 계정에서 엔터티를 보고, 관리하고, 모니터링하고, 디버그할 수 있게 해주는 도구입니다. 열 지도는 실행 중인 모든 가상 컴퓨터와 현재 상태를 확인하기 위해 제공되며 판독 방법은 다음과 같습니다.
- 흰색 블록은 가상 컴퓨터가 유휴 상태이고 일부 작업을 할당할 준비가 된 것을 의미합니다.
- 노란색 블록은 가상 컴퓨터가 시작 또는 종료 중이므로 사용할 수 없다는 의미입니다.
- 녹색 블록은 가상 컴퓨터가 현재 워크로드를 실행 중임을 의미합니다.
- 빨간색 블록은 가상 컴퓨터가 결함 상태에 있음을 의미합니다.
가격
Azure 구독이 없는 경우 무료 계정을 만들어 12개월 무료 서비스를 시작합니다. 이러한 서비스의 제한을 초과하지 않는 한 Azure 무료 계정에서 무료로 제공하는 서비스에 대해서는 요금이 부과되지 않습니다. Azure Portal을 통해 또는 사용량 파일을 통해 사용량을 확인하는 방법을 알아보세요.
이러한 참조 아키텍처를 실행하는 동안 사용되는 Azure 서비스의 비용은 사용자가 부담하며, 전체 비용은 분석 파이프라인을 통해 실행되는 이벤트 수에 따라 달라집니다. 참조 아키텍처에 사용된 각 서비스에 대한 가격 웹 페이지를 참조하세요.
Azure 가격 계산기를 사용하여 사용하려는 Azure 서비스에 대한 비용을 구성하고 예측할 수도 있습니다.