> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# GSDK 프로젝트 클라우드 배포

> 프로덕션용 Linux로 전환하기 전에 반복 테스트를 위해 Unreal Engine GSDK Windows 서버 빌드를 PlayFab 멀티플레이어 서버(MPS) 클라우드에 배포합니다.

# 클라우드에서 Windows 서버 배포 및 실행

이 가이드에서는 Windows 서버 빌드를 PlayFab 멀티플레이어 서버(MPS) 클라우드에 배포하는 방법을 설명합니다. 이는 개발 중인 게임 서버를 테스트하고 신속하게 반복하는 데 유용합니다. 많은 사용자는 Windows에서 테스트한 후 프로덕션 릴리스에 [Linux 서버](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/setting-up-a-linux-dedicated-server-on-playfab)를 사용합니다.

## 목표

* 프로젝트를 클라우드에 배포합니다.
* 로컬 게임 클라이언트에서 연결합니다.

## 요구 사항

* Visual Studio를 다운로드합니다. [Community 버전](https://visualstudio.microsoft.com/vs/community/)은 무료입니다.
  * 필수 워크로드: .NET 데스크톱 개발 및 C++를 사용한 데스크톱 개발
* Unreal Engine 소스 코드를 다운로드합니다. 자세한 내용은 [Downloading Unreal Engine Source code (외부)](https://docs.unrealengine.com/ProgrammingAndScripting/ProgrammingWithCPP/DownloadingSourceCode/)를 참조하세요.
* [PlayFab Unreal GSDK](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/third-person-mp-example-gsdk-project-setup)가 설치되고 구성된 [완료된 Unreal 프로젝트](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/third-person-mp-example-project-setup)
* Visual Studio 또는 Development Editor에서 빌드된 프로젝트의 [Release Server](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/building-the-third-person-mp-example-project) 구성
* Visual Studio 또는 Development Editor에서 빌드된 프로젝트의 [Client](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/building-the-third-person-mp-example-project) 구성
* 타이틀에 [MPS가 활성화](/services/playfab/multiplayer/servers/enable-playfab-multiplayer-servers)되어 있고 결제가 설정됨
* \[선택 사항] [Docker for Windows](https://docs.docker.com/desktop/windows/install/) 설치

## 지침

### 게임 서버 패키징

* \[선택 사항] 이 섹션은 Unreal이 프로젝트에 빌드하는 파일을 새로 고치는 데 사용할 수 있습니다. 최근에 파일을 생성하거나 삭제한 경우 유용합니다.
  * 최근에 "development editor" 구성에서 프로젝트를 빌드하지 않았다면 지금 하세요.
  * Visual Studio를 닫습니다.
  * 프로젝트의 `{ProjectName}.uproject` 파일로 이동합니다.
  * 파일 편집기에서 `{ProjectName}.uproject` 파일을 마우스 오른쪽 버튼으로 클릭하고 "Generate Visual Studio Project Files"를 선택합니다.
  * Visual Studio에서 \{ProjectName}.sln 파일을 다시 엽니다.
* **Development Editor** 구성을 선택합니다.
* 프로젝트를 실행합니다.
* 프로젝트가 로드된 Unreal Editor를 확인합니다.
* Unreal Editor 메뉴의 왼쪽 상단에서 **File** -> **Package** -> **Build Target** -> \_\_\{ProjectName}Server\_\_를 선택합니다.
* **File** -> **Package** -> **Build Configuration** -> \_\_Shipping\_\_을 선택합니다.
* **File** -> **Package** -> \_\_Windowsx64\_\_를 선택합니다.
* 출력 위치 \{ShippingServerFolder}를 선택하고 기억합니다.
* 이제 이 패키지된 게임 서버 버전을 사용하여 [LocalMultiplayerAgent로 테스트](/services/playfab/multiplayer/servers/locally-debugging-game-servers-and-integration-with-playfab)할 수 있습니다.
* LocalMultiplayerAgent로 확인한 후 [빌드 생성 가이드](/services/playfab/multiplayer/servers/deploying-playfab-multiplayer-server-builds)를 참조하세요.
  * 이 시점에서 MPS에서 테스트하려면 [PlayFab MpsAllocatorSample](https://github.com/PlayFab/MpsSamples/tree/main/MpsAllocatorSample)의 중간 도구가 필요합니다.
  * 이 도구는 현재 일부 클라이언트 작업을 우회하며 게임 클라이언트의 직접 요청 없이 서버를 할당할 수 있게 해줍니다.
  * 클라이언트에서 이를 수행하는 적절한 방법은 [할당 가이드](/services/playfab/multiplayer/servers/allocating-game-servers-and-configuring-vs-debugging-tools)에서 다루는 별도의 항목입니다.
* 위의 \{ShippingServerFolder}에서 Shipping Server 빌드를 압축합니다.
  * zip에는 \{ShippingServerFolder}의 모든 항목이 포함되어야 하며, 선택적으로 zip 파일의 루트에 있어야 합니다.
  * \[선택 사항] 즉, zip의 루트에는 \{ProjectName}Server.exe가 포함되어야 합니다(exe는 "WindowsServer"와 같은 하위 폴더에 있으면 안 됩니다. 필요한 경우 zip을 다시 빌드하세요).
* [빌드 생성 프로세스 가이드](/services/playfab/multiplayer/servers/deploying-playfab-multiplayer-server-builds)에 익숙해집니다.
* 특정 구성에 대한 자세한 정보는 아래에 자세히 설명되어 있습니다.

### PlayFab에서 Windows 전용 서버 설정

이 섹션에서는 PlayFab MPS에서 빌드를 생성하고 게임 서버를 업로드하고 처음으로 연결하는 방법을 다룹니다. Unreal에 특정하지 않은 지침은 코어 MPS [서버 생성 가이드](/services/playfab/multiplayer/servers/create-your-first-server)도 따를 수 있습니다.

* Game Manager -> Multiplayer로 이동합니다.
* \_\_New Build\_\_를 선택합니다.
* 빌드에 이름을 지정합니다.
* Virtual Machine을 선택합니다(이 가이드에 설명된 샘플의 경우 코어 수가 가장 적은 권장 옵션이면 충분합니다).
* Servers per machine은 약 1\~10일 수 있습니다.
  * 이 숫자를 늘리는 것은 게임 서버의 성능에 따라 다릅니다.
  * [VM 메트릭](/services/playfab/multiplayer/servers/vm-metrics)을 사용하여 게임 서버의 성능을 측정하고 이 숫자를 늘리기 위해 최적화할 수 있습니다.
* 지금은 \_\_Server details\_\_를 건너뜁니다(다음 단계에서 다룸).
* Assets 블록에서 이전 섹션의 zip 파일을 업로드 상자로 드래그합니다.
  * 다시 시작하는 경우 \_\_Use existing assets\_\_를 선택할 수 있습니다.
* 업로드가 완료될 때까지 기다립니다.
* 지금은 \_\_Start Command\_\_를 건너뜁니다(다음 단계에서 다룸).
* Network 블록에서 Port Name 필드를 `gameport`로 설정합니다.
  * 게임 서버에 연결하는 데 사용될 포트를 정의하는 것은 필수입니다.
  * Unreal GSDK에는 이 포트를 자동으로 읽고 내부적으로 이 값에 따라 Unreal Server 호스트 포트를 재정의하는 코드가 포함되어 있습니다.
  * 이 포트의 이름은 반드시 `gameport`여야 합니다.
* 구성하려는 "Server Details"와 일치하는 다음 단계로 계속합니다.

#### 옵션 1: Windows Process Mode

이 옵션은 VM에서 직접 프로세스로 게임 서버를 실행합니다. 프로세스는 포트, 드라이브 등을 포함한 전체 컴퓨터에 대한 액세스를 공유합니다. 이 옵션은 자산 업로드의 압축을 풀고 압축 풀린 파일의 위치를 작업 디렉터리로 사용하여 "Start Command"를 실행합니다.

* \_\_Server Details\_\_에서 \_\_Process\_\_와 \_\_Windows\_\_를 선택합니다.
* \_\_Assets\_\_에서 start command를 다음으로 설정합니다.
  * 로그 파일을 생성하려면 `{ProjectName}Server.exe` 또는 `{ProjectName}Server.exe -log`
  * start command는 압축 풀린 자산 파일을 작업 디렉터리로 사용하여 명령줄에서 실행됩니다.
  * zip 파일을 하위 폴더로 압축한 경우 상대 하위 경로로 프로젝트에 액세스하기 위해 `WindowsServer/{ProjectName}Server.exe`와 같은 상대 경로를 지정할 수 있습니다.
* \_\_Add Build\_\_를 선택합니다.
* 아래의 **Configure Regions** 섹션으로 건너뜁니다.

#### 옵션 2: Windows Container Mode

이 옵션은 게임 서버를 docker 컨테이너에서 실행하여 서로 격리합니다. 각 서버 프로세스는 별도의 가상 드라이브, 가상 네트워크 포트 등을 갖습니다. 이 옵션은 자산을 정의한 Mount Path에 압축 풀고 start command가 Mount Path를 기반으로 하는 전체 경로일 것으로 예상합니다.

전제 조건 요구 사항: Windows 컨테이너를 실행하도록 Docker 구성

* \_\_Server Details\_\_에서 \_\_Process\_\_와 \_\_Windows\_\_를 선택합니다.
* \_\_Assets\_\_에서
  * gameServer zip 파일의 \_\_Mount Path\_\_를 `C:\assets`(또는 이와 유사한 것, \{MountPath}로 표시됨)로 설정합니다.
  * start command를 다음과 같이 설정합니다: `{MountPath}\{ProjectName}Server.exe` 또는 로그 파일을 생성하려면 `{MountPath}\{ProjectName}Server.exe -log`
  * start command는 -Server.exe 파일에 대한 컨테이너 내의 전체 경로를 나타내야 합니다.
  * zip 파일을 하위 폴더로 압축한 경우 절대 하위 경로로 프로젝트에 액세스하기 위해 `{MountPath}\WindowsServer\{ProjectName}Server.exe`와 같은 절대 경로를 지정할 수 있습니다.
* \_\_Add Build\_\_를 선택합니다.
* 아래의 **Configure Regions** 섹션으로 건너뜁니다.

## 다음 단계

많은 사용자는 [게임 클라이언트 연결](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/connect-to-mps-hosted-build)로 서버를 테스트하고 싶어 할 것입니다.

다른 사용자는 선택적으로 [Linux 컨테이너](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/setting-up-a-linux-dedicated-server-on-playfab)를 사용하여 서버를 다시 빌드하고 재배포할 수 있습니다. Linux는 대규모 배포의 서버 호스팅 비용을 절감합니다.

그렇지 않으면 기본 [Unreal GSDK 플러그인](/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk) 가이드로 돌아갈 수 있습니다.


## Related topics

- [GSDK 프로젝트 테스트 및 디버깅](/ko/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/third-person-mp-example-project-local-deployment-and-debugging.md)
- [Linux Unreal 서버를 MPS 클라우드에 배포](/ko/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/setting-up-a-linux-dedicated-server-on-playfab.md)
- [클라우드 호스팅 Unreal 서버에 연결](/ko/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/connect-to-mps-hosted-build.md)
- [GSDK 예제 프로젝트 생성](/ko/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/third-person-mp-example-project-setup.md)
- [Unreal 예제 프로젝트 빌드](/ko/services/playfab/multiplayer/servers/server-sdks/unreal-gsdk/building-the-third-person-mp-example-project.md)
