기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
자습서: 스팟 인스턴스를 사용하여 Amazon GameLift 대기열 생성
- 소개
-
이 자습서에서는 저렴한 스팟 플릿에 배포된 게임의 게임 세션 배치를 설정하는 방법에 대해 설명합니다. 스팟 플릿을 사용하면 플레이어의 게임 서버 가용성을 지속적으로 유지하기 위한 추가 단계가 필요합니다.
- 수강 대상
-
이 자습서는 스팟 플릿을 사용하여 사용자 지정 게임 서버 또는 Realtime 서버를 호스팅하려는 게임 개발자를 위한 것입니다.
- 배울 내용
-
-
게임 세션 대기열에서 서비스를 제공하는 플레이어 그룹을 정의합니다.
-
게임 세션 대기열의 범위를 지원하는 플릿 인프라를 구축합니다.
-
각 플릿에 별칭을 할당하여 플릿 ID를 추상화합니다.
-
대기열을 생성하고, 플릿을 추가하고, Amazon이 게임 세션을 GameLift 배치하는 위치의 우선순위를 지정합니다.
-
플레이어 지연 시간 정책을 추가하여 지연 시간 문제를 최소화하는 데 도움이 됩니다.
-
- 사전 조건
-
게임 세션 배치를 위한 플릿과 대기열을 생성하기 전에, 먼저 다음 작업을 완료해야 합니다.
-
Amazon GameLift 작동 방식 섹션을 검토합니다.
-
게임 서버 빌드 또는 실시간 스크립트를 Amazon 에 업로드합니다 GameLift.
-
플릿 구성을 계획합니다.
-
1단계: 대기열 범위 정의
이 자습서에서는 하나의 게임 서버 빌드 변형이 있는 게임의 대기열을 설계합니다. 출시 시점에 아시아 태평양(서울) 및 아시아 태평양(싱가포르)의 두 위치에서 게임을 출시할 예정입니다. 이러한 위치는 서로 가깝기 때문에 플레이어에게 지연 시간은 문제가 되지 않습니다.
이 예제에서는 플레이어 세그먼트가 하나 있는데, 이는 대기열을 하나 생성한다는 뜻입니다. 앞으로 북미에서 게임을 출시하면 북미 플레이어만 이용할 수 있는 두 번째 대기열을 만들 수 있습니다.
자세한 내용은 대기열의 범위 정의 단원을 참조하십시오.
2단계: 스팟 플릿 인프라 생성
1단계: 대기열 범위 정의에서 정의한 범위에 맞는 게임 서버 빌드 또는 스크립트를 사용하여 위치에 플릿을 생성합니다.
이 자습서에서는 각 위치에 하나 이상의 스팟 플릿과 하나의 온디맨드 플릿이 있는 두 개의 위치 인프라를 생성합니다. 모든 플릿은 동일한 게임 서버 빌드를 배포합니다. 또한 서울 위치에는 플레이어 트래픽이 더 많을 것으로 예상되므로 여기에 스팟 플릿을 더 추가합니다.
다음 다이어그램은 ap-northeast-2(서울) 위치에 3개의 플릿이 있고 ap-southeast-1(싱가포르) 위치에 2개의 플릿이 있는 스팟 플릿 인프라의 예를 보여줍니다. 두 플릿의 모든 인스턴스는 build MBG_prod_V1을 사용합니다. ap-northeast-2의 플릿에는 다음 플릿 구성을 포함합니다. 인스턴스 유형이 c5.large인 플릿 1234_spot_1, 인스턴스 유형이 c5.xlarge인 플릿 1234_spot_2, 인스턴스 유형이 c5.large인 플릿 1234_ondemand. ap-southeast-1의 플릿에는 다음 플릿 구성을 포함합니다. 인스턴스 유형이 c5.large인 플릿 1234_spot_1, 인스턴스 유형이 c5.large인 플릿 1234_ondemand.
3단계: 각 플릿에 별칭 지정
인프라의 각 플릿에 대해 새 별칭을 생성합니다. 별칭은 플릿 ID를 추상화하여 주기적인 플릿 교체를 효율적으로 만듭니다. 별칭을 만드는 방법에 대한 자세한 내용은 Amazon GameLift 별칭 생성 섹션을 참조하세요.
플릿 인프라에는 다섯 개의 플릿이 있으므로 라우팅 전략을 사용하여 다섯 개의 별칭을 생성합니다. 아시아 태평양(서울) 위치에 3개의 별칭이 필요하고 아시아 태평양(싱가포르) 위치에 2개의 별칭이 필요합니다.
다음 다이어그램은 2단계에서 설명한 스팟 플릿 인프라를 각 플릿에 추가된 별칭과 함께 보여줍니다. 플릿 1234_spot_1에는 별칭 MBG_spot_1이 있고, 플릿 1234_spot_2에는 별칭 MBG_spot_2가 있으며, 플릿 1234_ondemand에는 별칭 MBG_ondemand이 있습니다.
자세한 내용은 다중 위치 대기열 빌드 단원을 참조하십시오.
4단계: 대상이 포함된 대기열 생성
게임 세션 대기열을 생성하고 플릿 대상을 추가합니다. 대기열을 생성에 대한 자세한 내용은 게임 세션 대기열 생성 섹션을 참조하세요.
대기열을 생성할 때:
-
기본 타임아웃을 10분으로 설정합니다. 추후에 대기열 제한 시간이 플레이어의 게임 시작 대기 시간에 어떤 영향을 미치는지 테스트할 수 있습니다.
-
지금은 플레이어 지연 시간 정책 섹션을 건너뜁니다. 이 내용은 다음 단계에서 다루도록 하겠습니다.
-
대기열에 있는 플릿의 우선 순위를 지정합니다. 스팟 플릿을 사용할 때는 다음 접근 방식 중 하나를 사용하는 것이 좋습니다.
-
인프라에서 백업용으로 두 번째 위치에 플릿이 있는 기본 위치를 사용하는 경우 먼저 위치별로 플릿의 우선 순위를 지정한 다음 플릿 유형별로 우선 순위를 지정합니다.
-
인프라에서 여러 위치를 동일하게 사용하는 경우 플릿 유형별로 플릿의 우선 순위를 지정하여 스팟 플릿을 대기열의 맨 위에 배치합니다.
-
이 자습서에서는 MBG_spot_queue
이름을 사용하여 새 대기열을 만들고 5개 플릿 모두에 별칭을 추가합니다. 그런 다음 첫 번재는 위치별, 두 번째는 플릿 유형별로 배치 우선 순위를 지정합니다.
이 구성을 기반으로 이 대기열은 항상 새 게임 세션을 서울의 스팟 플릿에 배치하도록 시도합니다. 해당 플릿이 가득 차면 대기열은 서울 온디맨드 플릿의 사용 가능한 용량을 백업으로 사용합니다. 세 서울 플릿을 모두 사용할 수 없는 경우 Amazon은 싱가포르 플릿에 게임 세션을 GameLift 배치합니다.
다음 다이어그램은 제한 시간이 300초인 대기열과 우선 순위가 지정된 대상을 보여줍니다. 목적지는 다음 순서와 같습니다: 1234_spot_1(위치: ap-northeast-2), 1234_spot_2(위치: ap-northeast-2), 1234_ondemand(위치: ap-northeast-2), 1234_spot_1(위치: ap-southeast-1), 1234_ondemand(위치: ap-southeast-1).
5단계: 대기열에 지연 시간 제한 추가
저희 게임에는 게임 세션 배치 요청에 지연 시간 정보가 포함되어 있습니다. 플레이어 그룹을 위한 게임 세션을 생성하는 플레이어 파티 기능도 있습니다. 이상적인 게임 플레이 경험을 제공하는 게임에 참여하기 위해 플레이어가 조금 더 기다릴 수 있도록 할 수 있습니다. 게임 테스트 결과 다음과 같은 관찰 결과가 나왔습니다.
-
50밀리초 미만의 지연 시간이 이상적입니다.
-
지연 시간이 250밀리초를 넘으면 게임을 플레이할 수 없습니다.
-
플레이어는 약 1분 뒤에 대기하기 힘들어집니다.
제한 시간이 300초인 대기열에는 허용 가능한 지연 시간을 제한하는 정책 설명을 추가합니다. 정책 설명에 따라 최대 250밀리초 지연 시간까지 지연 시간 값을 점차 확대할 수 있습니다.
이 정책에 따라 대기열은 처음 1분 동안 지연 시간이 이상적인 위치(50밀리초 미만)를 찾은 다음 제한을 완화합니다. 플레이어 지연 시간이 250밀리초 이상인 경우에는 대기열에서 배치를 진행하지 않습니다.
다음 다이어그램은 플레이어 지연 시간 정책이 추가된 4단계의 대기열을 보여줍니다. 플레이어 지연 시간 정책에는 60초 동안 50ms 제한을 적용하고, 30초 동안 125ms 제한을 적용하며, 제한 시간이 초과될 때까지 250ms 제한을 적용한다고 명시되어 있습니다.
요약
축하합니다! 달성한 성과는 다음과 같습니다.
-
게임 세션 대기열 범위가 플레이어 모집단의 특정 세그먼트에 맞춰져 있습니다.
-
대기열은 스팟 플릿을 효과적으로 사용하며 스팟 중단이 발생해도 복원력이 뛰어납니다.
-
대기열에서는 최고의 플레이어 경험을 위해 플릿을 우선시합니다.
-
대기열에는 플레이어들이 나쁜 게임플레이 경험을 하지 못하도록 지연 시간 제한이 있습니다.
이제 대기열을 사용하여 해당 대기열에서 서비스를 제공하는 플레이어를 위한 게임 세션을 배치할 수 있습니다. 이러한 플레이어에 대한 게임 세션 배치를 요청할 때는 요청에서 이 게임 세션 대기열 이름을 참조합니다. 게임 세션 배치 요청에 대한 자세한 정보는 게임 세션 만들기 또는 Realtime 서버용 게임 클라이언트 통합 섹션을 참조하세요.
다음 단계: