Skip to main content
PlayFab은 게임 서버를 컨테이너화된 애플리케이션으로 운영합니다. 이 자습서에서는 게임 서버가 어떻게 패키징되고 PlayFab 시스템과 통합되는지 설명합니다.

게임 서버의 컨테이너화 및 패키징

Windows

Windows에서는 일반적으로 게임 서버 실행 파일 및 기타 파일을 zip 파일로 패키징한 다음 게임 자산으로 업로드합니다. 자산은 컨테이너 이미지와 결합되어 게임 서버 빌드를 생성합니다. 기본 컨테이너 이미지는 Windows 운영 체제 파일과 게임 실행을 허용하는 실행 환경을 제공합니다. PlayFab은 Windows 빌드에 사용할 수 있는 관리형 컨테이너 이미지 세트를 제공합니다. Game Manager 또는 CreateBuildWithManagedContainer()와 같은 API를 통해 Windows 빌드를 만들 때 자산과 컨테이너의 파일 시스템 내에서 마운트할 위치를 지정합니다. 게임 시작을 위한 셸 명령(StartGameCommand)도 지정하는데, 아래와 유사할 수 있습니다.
StartGameCommand는 게임 클라이언트를 서비스할 준비가 되었을 때 ReadyForPlayers를 호출하기 위해 PlayFab Game Server SDK를 사용하는 애플리케이션을 시작해야 합니다. 애플리케이션 프로세스가 종료되면 컨테이너는 종료되고 재활용됩니다.

Linux

Linux에서는 게임 실행 파일과 자산을 패키징하여 직접 컨테이너 이미지를 만듭니다. 런타임에 컨테이너 이미지와 결합되는 자산의 사용은 선택 사항입니다. Game Manager 또는 CreateBuildWithCustomContainer()와 같은 API를 통해 Linux 빌드를 만들 때, 자산과 컨테이너의 파일 시스템 내에서 마운트할 위치를 선택적으로 지정할 수 있습니다. 게임 시작을 위한 셸 명령(StartGameCommand) 지정 역시 선택 사항입니다. 이 명령은 컨테이너 이미지에도 포함될 수 있기 때문입니다.
PlayFab Multiplayer Servers용 Linux 컨테이너 이미지 생성에 대한 자세한 내용은 페이지를 참조하세요

Windows용 관리형 컨테이너

PlayFab은 현재 Windows Server Core를 기반으로 하는 PlayFab Multiplayer 컨테이너 이미지 하나의 관리형 컨테이너를 지원합니다. 로컬 환경이 Azure의 런타임 환경과 일치하도록 Docker Hub를 통해 이 컨테이너를 다운로드할 수 있습니다. 개발 컴퓨터에서 로컬로 멀티플레이어 서버 상태 머신을 단계별로 실행할 수 있는 디버깅 도구가 있습니다. 자세한 내용은 게임 서버 로컬 디버깅 및 PlayFab과의 통합을 참조하세요. 다음 이미지는 게임 서버를 업로드하고 이 패키지를 선택한 컨테이너와 결합하는 주요 흐름을 보여줍니다.

관리형 컨테이너 업데이트

관리형 컨테이너는 Windows 프로젝트에 가장 쉬운 통합 옵션이며, 컨테이너에 익숙하지 않은 경우 시작하기 좋은 지점입니다. 관리형 컨테이너의 주요 기능은 PlayFab이 안정적인 플레이를 보장하기 위해 중요한 보안 수정 사항으로 기본 이미지를 자동으로 업데이트한다는 것입니다. 일반적으로 보안 업데이트는 매월 발생하며 서비스 중단을 일으키지 않습니다. 자세한 내용은 Windows용 OS 패치 업데이트를 참조하세요. 업그레이드 중에 자연스럽게 재활용되는 대기 세션은 업데이트된 컨테이너 이미지와 동일한 게임 서버 패키지로 대체됩니다. PlayFab이 사용 중인 관리형 컨테이너 이미지를 업데이트하려는 경우 PlayStream 이벤트를 수신합니다.

PlayFab Game Server SDK 통합

자세한 내용: PlayFab Game Server SDK(GSDK)와 게임 서버 통합 PlayFab Game Server SDK(GSDK)는 C++, C#Java와 같은 여러 프로그래밍 언어로 제공됩니다. GSDK는 게임 서버를 VM에 설치된 로컬 에이전트에 연결합니다. 이 에이전트는 PlayFab 제어 인프라와의 주요 서버 상호 작용을 촉진합니다. 게임 서버가 초기화되면 *준비 상태(preparing state)*로 전환되고 PlayFab은 게임 서버가 ReadyForPlayers()를 호출하기를 기다립니다. 이것이 호출되면 게임 서버는 *대기 상태(standing by state)*로 전환되고 RequestMultiplayerServer 메서드를 통해 매치메이킹 서비스에서 PlayFab으로의 할당 요청을 기다립니다. 아래에 표시된 이미지는 PlayFab 멀티플레이어 서버의 상태를 보여줍니다. 표면적으로 ReadyForPlayers()를 호출하는 것이 게임 서버를 실행하고 계속 실행되도록 하는 유일한 요구 사항입니다. 그러나 최상의 사용자 경험을 제공하기 위해 처리하고자 하는 여러 콜백/이벤트가 있을 수 있습니다.

서버 스크립트 및 PlayFab에서 구성된 환경 변수

경우에 따라 게임 서버가 CMD, PowerShell 또는 bash 스크립트(“부트스트래퍼”)를 실행한 다음, 컴파일된 게임 서버 실행 파일을 시작하도록 할 수 있습니다. 이 스크립트는 컨테이너의 내부 환경을 구성하거나, 명령줄 인수를 실행 파일에 전달하거나, 게임 서버 실행 파일 자체에서 실행하지 않으려는 기타 작업을 수행할 수 있습니다. 편의를 위해 PlayFab은 일부 빌드 정보를 컨테이너의 다음 환경 변수로 구성합니다. 이러한 정보는 GSDK를 통해서도 액세스할 수 있지만, 스크립트에서는 환경 변수를 사용하는 것이 더 쉬울 수 있습니다.
  • PF_TITLE_ID - 세션 호스트의 타이틀 ID
  • PF_BUILD_ID - 세션 호스트의 빌드 ID
  • PF_REGION - 세션 호스트의 Azure 지역
  • PUBLIC_IPV4_ADDRESS - VM의 공용 IP 주소
  • PF_VM_ID - VM의 고유 식별자(‘xcloudeau4u4yyxj4xymu:AustraliaEast:1E03_6f27ad88-9bc3-4ea3-8d16-75480aba4637:tvmps_0e05c37e0bbdca298a09fb0d597bd666eb7c5fd0ebcf1fed4c52e608a39a7c9c_d’와 같은 형식)
  • CERTIFICATE_FOLDER - 게임 인증서가 포함된 폴더
  • PF_SERVER_LOG_DIRECTORY - 게임 로그가 포함된 폴더
  • PF_SERVER_INSTANCE_NUMBER - 서버의 인스턴스 번호. VM의 첫 번째 서버는 0, 두 번째는 1, 세 번째는 2 등입니다.
마지막 수정일 2026년 8월 25일