스케일링 대기
개발자는 PlayFab의 스케일링 기능을 통해 실제 플레이어 수요를 충족하도록 게임 서버 호스팅 용량을 조정할 수 있습니다. 개발자는 이러한 컨트롤 기능을 통해 게임 서버 호스팅 비용을 효율적으로 절감하면서 새로운 플레이어가 멀티 플레이 게임에 최소 대기 후 또는 대기 없이 빠르게 참가할 수 있도록 충분한 용량을 유지합니다.
게임 서버 스케일링은 개발자가 게임을 성공적으로 배포하고 운영하고 있을 때 고려하는 사항입니다. 이 섹션에서 설명하는 컨트롤은 개발자가 리소스 확장의 탄력성을 정의하는 동시에 최소 또는 전혀 기다리지 않고 새로운 플레이어를 추가할 수 있는 충분한 용량을 유지하는 데 도움이 됩니다.
프로핑 및 대기 상태의 서버에서는 타이틀에 비용이 청구되므로 이러한 프로세스를 최적화하여 비용을 절감하려고 합니다. 여기서 대상별 순위를 계산하는 방법을 알아보기 전에 이해해야 할 몇 가지 유용한 용어가 있습니다.
용어
대기 서버 크기 조정에 대해 이해해야 하는 용어입니다.
- 대상 대기 – 일반적으로 대기 대상 및 대상별 대기라고도 하며, 대기 풀 고갈을 방지하기 위해 사용할 수 있는 대기 서버의 대상 수를 지정하는 플랫폼에서 설정한 값입니다.
- 대상 대기 최소값–새 게임 서버에 대한 수요를 충족하기 위해 유휴 상태로 유지된 서버의 최소 수량의 최소값을 나타내는 게임 개발자가 구성 가능한 값입니다.
- 실제 대기 – 멀티 플레이어 서버 플랫폼이 보고하는 대기 서버의 수량으로 동적 대기를 사용하는 경우와 동적 대기를 사용하지 않도록 설정한 경우의 값이 서로 다릅니다.
- 사전 준비 - Azure 및 PlayFab은 가상 머신을 만들고 운영 체제를 초기화하고 해당 환경을 구성해야 합니다. PlayFab은 가상 머신이 고객에게 할당되고 요금이 청구되기 전에 이 사전 프로핑 활동을 추진합니다.
- 준비 - 게임 서버 자산을 로드해야 하며, 게임 서버 응용 프로그램 자체에서 플레이어를 준비하는 데 시간이 필요한 경우가 있습니다.
- 대기 멀티 플레이어 서버에 대한 수요를 즉시 충족하기 위해 일부 서버는 플레이어에 대해 지속적으로 유휴 상태로 유지됩니다.
대상 대기 구성
빌드 및 지역 단위로 대기 대상을 구성합니다. 일반적으로 대기 시간 및 대상 할당 속도에 비례하여 대기 수준을 설정해야 합니다. 대상별 대기 = (Propping Time + 서버 대기 시간) * 대상 할당 속도
예를 들어, props에 100초가 걸리는 Linux 서버와 5초마다 최대 1개의 서버가 할당될 것으로 예상되는 게임(0.2 서버/초)이 있습니다. 100 * 0.2 = 20 서버의 대기 풀은 이 빌드를 안정적으로 지원합니다. 100초 후에는 20개 서버가 소비되지만 다른 20개 서버를 빌드할 시간이 있습니다.
RequestMultiplayerServer
API를 호출할 때 플레이어 환경에 허용되는 모든 지역을 나타내는 것이 중요합니다. 지역 #1에 사용 가능한 대기 서버가 없으면 지역 #2가 요청되고 구성한 만큼 많은 지역에 대해 계속됩니다.
스케일링의 장점
확장 혜택 요약은 다음과 같습니다.
장점 | 설명 |
---|---|
애플리케이션 가용성 향상 | 용량을 사전에 프로비전하여 게임 서버 풀에 항상 적절한 양의 VM을 확보 |
컴퓨팅 비용 절감 | 비용을 최적화하는 데 필요한 경우에만 인스턴스 추가 |
구매 옵션 간에 인스턴스 스케일링 | 스케일링 옵션은 인스턴스 유형, 지역, 크기 및 게임 서버 빌드 구성을 망라하여 성능을 최적화 |
스케일링 메서드
PlayFab은 서버를 스케일링 하는 시점와 방법에 대한 여러 매커니즘을 제공합니다. 게임 개발자에게 다음과 같은 유연성이 제공됩니다.
- 최소 및 최대 임계값 구성
- (a) 인스턴스 유형, (b) VM 크기 또는 (c) 지역과 같은 서버 빌드 프로필당 스케일링 구성 사용자 지정
- 개발자 포털 또는 멀티 플레이어 서버 RESTful API에서 간편하게 변경 관리
- 서버 및 사용 현황 차트에서 스케일링 메트릭 모니터링
게임 서버의 크기 조정을 구성하는 세 가지 방법은 다음과 같습니다.
- 기본
- 예약
- 동적
각각의 방법은 고유한 접근 방식을 갖지만 알려진 또는 알려지지 않은 플레이어 수요에 의해 트리거됩니다. 기본 메서드는 구성된 최대 서버까지 확장하고 완료된 세션에 대해 축소합니다. 이 메커니즘에는 개발자가 요청하는 추가 단계가 없습니다. 이는 개발자가 최대 서버 및 대기 제한을 설정하여 PlayFab이 플레이어 수요에 따라 VM을 자동으로 줄이거나 늘이는 가장 간단한 방법입니다.
컨트롤 | 플레이어 수요 | 접근 방식 | 사용 사례 | 결과 |
---|---|---|---|---|
기본 | 예측할 수 없음 | 자동 | 일반 게임 조작 | 트래픽 급증에 대해 충분히 빠르게 스케일링되지 않음 |
예약 | 예측 가능 | 계획적 | 계획된 이벤트 시작 | 플레이어 수요의 변화에 대한 일정 변경 추적 |
동적 | 예측할 수 없음 | 수식화 가능 | 갑작스러운 트래픽 급증 |
스케일링 옵션의 폭을 완전히 수용하려면 먼저 다음 주요 개념과 용어를 이해해야 합니다.
주요 개념
- 스케일링 메커니즘은 사용 가능한 대기 서버 수를 제어합니다.
- 대기 서버는 연결된 활성 플레이어가 없는 VM 할당 서버입니다. RequestMultiplayerServer API 호출에 대한 응답으로 플레이어 연결을 수락할 때 전환됩니다. 게임 서버 프로세스가 종료되면 종료 상태로 전환됩니다.
- 스케일링 메커니즘은 빌드의 각 영역에서 고유하게 적용됨
- 각 스케일링 구성은 영역 수식으로 표시됨
대기 풀 고갈
PlayFab의 멀티 플레이어 서버는 대기 서버 뱅크를 제공합니다. 이는 플레이어 요구에 응답하여 더 많은 게임 서버에 대한 요청의 즉각적인 이행을 지원하는 데 도움이 됩니다. 추가 서버에 대한 수요가 뱅크에서 서버를 획득하고 프로비전하는 데 필요한 시간보다 빠르게 증가하면 대기 서버 풀이 고갈됩니다. 이 경우 사용 가능한 서버 풀이 "고갈" 상태가 되고 더 많은 서버를 프로비전할 수 있을 때까지 게임 서버에 대한 요청이 실패합니다. 일정 대기 및 동적 대기 스케일링 방법은 플레이어 수요를 충족하기 위해 게임 서버의 증가된 프로비저닝을 자동으로 활성화합니다.