다음을 통해 공유


빌드 별칭 관리 및 할당

빌드 별칭은 빌드 맨 위의 관리 계층으로, RequestMultiplayerServer 호출을 제어된 방식으로 여러 빌드에 분산하는 데 사용할 수 있습니다. 이렇게 하면 빌드 간 업그레이드 및 아래에 나열된 여러 기타 시나리오의 단순성과 안정성을 향상할 수 있습니다. 별칭에서는 이를 위해 빌드 ID 목록과 각 ID의 가중치를 함께 지정합니다. 가중치는 해당 빌드에 전달되어야 하는 할당 호출의 비율을 나타냅니다.

이전 버전과 호환되는 안전한 배포

이 시나리오는 빌드 간 업그레이드를 위한 아주 일반적인 시나리오로, 두 서버 모두와 호환되는 게임 서버 및 소매 클라이언트를 업데이트합니다.

클라이언트는 다음과 같은 구성을 가지는 별칭 1을 참조합니다.

  • 빌드 1: 가중치 = 1

빌드 2가 만들어지면 별칭 1은 다음으로 변경됩니다.

  • 빌드 1: 가중치 = 8
  • 빌드 2: 가중치 = 2

빌드 2에서 새 서버 요청을 모두 처리할 때까지 가중치를 점진적으로 변경할 수 있습니다. 이제 빌드 1의 가중치는 0이며 별칭에서 제거할 수 있습니다.

별칭의 일반적인 사용 사례는 클라이언트 호환성 버전 및 게임 모드의 선호도를 지정하는 것입니다. 예를 들어 "DeathMatch 클라이언트 2.2 RETAIL." 별칭을 사용하면 이 환경을 강화하는 빌드를 지속적으로 업데이트하면서 이 상위 수준의 추상화를 관리할 수 있습니다. 또한 별칭을 사용하면 필요한 경우 빌드를 쉽게 롤백할 수 있습니다.

이전 버전과 호환되지 않는 배포

이 경우에는 게임 클라이언트를 업데이트할 때 게임 서버를 동시에 업데이트하려고 합니다. 현재 게임 클라이언트가 이전 서버 빌드와 호환되지 않기 때문입니다. 빌드 간 전환은 다음과 같이 수행합니다.

이전 클라이언트가 다음과 같은 별칭 1을 참조합니다.

  • 빌드 1: 가중치 = 1

빌드 2가 만들어지면 새 클라이언트는 다음과 같은 별칭 2를 참조합니다.

  • 빌드 2: 가중치 = 1

이 시나리오에서는 별칭이 빌드와 유사하게 사용되며 별칭의 멀티플렉싱 기능은 사용되지 않습니다.

이전 버전과 호환되는 블래스트 배포

이는 이전 버전과 호환되는 빌드 간 업그레이드 시나리오와 유사하지만 요청 동작이 더 급격하게 전환됩니다. 빌드 간 전환은 다음과 같이 수행합니다.

클라이언트가 다음과 같은 별칭 1을 참조합니다.

  • 빌드 1: 가중치 = 1

빌드 2가 만들어지면 별칭 1은 다음으로 변경됩니다.

  • 빌드 1: 가중치 = 0
  • 빌드 2: 가중치 = 1

이전 버전과 호환되는 배포 테스트

게임 서버를 업데이트하려고 할 때 클라이언트 버전이 두 서버 모두와 호환되지만 모든 플레이어에 대규모로 배포하기 전에 두 번째 버전을 테스트하려고 합니다. 빌드 간 전환과 테스트는 다음과 같이 수행할 수 있습니다.

클라이언트가 다음과 같은 별칭 1을 참조합니다.

  • 빌드 1: 가중치 = 1

빌드 2가 만들어지면 테스트 클라이언트는 다음과 같은 별칭 2를 참조합니다.

  • 빌드 2: 가중치 = 1

빌드 2가 확인되면 별칭 1은 다음으로 변경됩니다.

  • 빌드 1: 가중치 = 8
  • 빌드 2: 가중치 = 2

점진적으로 빌드 2는 가중치가 높아지고 모든 트래픽을 흡수합니다.

다른 빌드 및 지역으로 대체

별칭을 사용하면 여러 빌드 간 대체를 허용하여 멀티 플레이어 서버 배포의 복원력을 높일 수 있습니다. 예를 들어 빌드 별칭을 대상으로 하는 할당 요청에서 미국 동부를 지역 #1, 미국 서부를 지역 #2로 순위 지정한다고 가정합니다. 이 빌드 별칭은 두 빌드인 빌드 1과 빌드 2에 비슷한 가중치를 지정합니다.

지정된 할당으로 빌드 1을 선택했다고 가정합니다.

  1. 미국 동부에서 빌드 1에 대한 할당이 시도됩니다.
  2. #1이 실패하면 미국 동부에서 빌드 2에 대한 할당이 시도됩니다.
  3. #2가 실패하면 미국 서부에서 빌드 1에 대한 할당이 시도됩니다.
  4. #3이 실패하면 미국 서부에서 빌드 2에 대한 할당이 시도됩니다.

특히 한 빌드에서 다른 빌드로 점진적으로 업그레이드할 때 이 대체 동작은 플레이어가 빌드 중 하나에 문제가 발생해도 대기 시간이 가장 짧은 서버를 얻을 수 있도록 최적화됩니다.

PlayFab REST API를 사용하여 빌드 별칭 관리

참고 항목

이제 게임 관리자에서 빌드 별칭을 관리할 수 있습니다. 시작하려면 빌드 개요 페이지를 참조하세요.

  1. API를 사용하여 빌드 별칭을 만듭니다.

    API:

    POST https://titleId.playfabapi.com/MultiplayerServer/CreateBuildAlias
    

    샘플 본문:

    {
        "AliasName":"TestingAlias",
        "BuildSelectionCriteria":
        [{
            "BuildWeightDistribution":{"9a8a4584-c81a-479c-9ef9-16d3743f7ca7":"1"}
        }]
    }
    

    샘플 응답:

    {
        "AliasId":"97d2b0a5-7c04-4593-8451-66bbb97f94b6",
        "AliasName":"TestingAlias",
        "BuildSelectionCriteria":
        [{
            "BuildWeightDistribution":{"9a8a4584-c81a-479c-9ef9-16d3743f7ca7":"1"}
        }]
    }
    

    빌드 별칭 ID는 응답의 일부로 제공됩니다.

  2. 빌드 별칭의 매개 변수를 업데이트합니다.

    API:

    POST https://titleId.playfabapi.com/MultiplayerServer/UpdateBuildAlias
    

    샘플 본문:

    {
        "AliasId":"97d2b0a5-7c04-4593-8451-66bbb97f94b6",
        "AliasName":"TestingAliasRenamed",
        "BuildSelectionCriteria":
        [{
            "BuildWeightDistribution":{"9a8a4584-c81a-479c-9ef9-16d3743f7ca7":"1",
            "7ac7f347-3d61-9fe9-c974-a18c4854a8a9":"1"}
        }]
    }
    

    샘플 응답:

    {
        "AliasId":"97d2b0a5-7c04-4593-8451-66bbb97f94b6",
        "AliasName":"TestingAliasRenamed",
        "BuildSelectionCriteria":
        [{
            "BuildWeightDistribution":{"9a8a4584-c81a-479c-9ef9-16d3743f7ca7":"1",
            "7ac7f347-3d61-9fe9-c974-a18c4854a8a9":"1"}
        }]
    }
    
  3. 빌드 별칭을 삭제합니다.

    API:

    POST https://titleId.playfabapi.com/MultiplayerServer/DeleteBuildAlias
    

    샘플 본문:

    {
        "AliasId":"97d2b0a5-7c04-4593-8451-66bbb97f94b6"
    }
    
  4. 빌드 별칭을 나열합니다.

    API:

    GET https://titleId.playfabapi.com/MultiplayerServer/ListBuildAliases
    

    샘플 응답:

    [{
        "AliasId":"97d2b0a5-7c04-4593-8451-66bbb97f94b6",
        "AliasName":"TestingAliasRenamed",
        "BuildSelectionCriteria":
        [{
            "BuildWeightDistribution":{"9a8a4584-c81a-479c-9ef9-16d3743f7ca7":"1",
            "7ac7f347-3d61-9fe9-c974-a18c4854a8a9":"1"}
        }]
    }]
    

빌드 별칭을 사용하여 할당

빌드 별칭을 사용하여 할당하려면 RequestMultiplayerServer 호출에서 빌드 별칭 ID를 지정하기만 하면 됩니다.

API:

POST https://titleId.playfabapi.com/MultiplayerServer/RequestMultiplayerServer

샘플 본문:

{
    "SessionId":"6a07440c-7bcc-4e23-8b81-4934543ff966",
    "PreferredRegions":["SouthCentralUs"],
    "BuildAliasParams":
        {"AliasId":"97d2b0a5-7c04-4593-8451-66bbb97f94b6"}
}