Skip to main content

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

이 가이드에서는 Windows 서버 빌드를 PlayFab 멀티플레이어 서버(MPS) 클라우드에 배포하는 방법을 설명합니다. 이는 개발 중인 게임 서버를 테스트하고 신속하게 반복하는 데 유용합니다. 많은 사용자는 Windows에서 테스트한 후 프로덕션 릴리스에 Linux 서버를 사용합니다.

목표

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

요구 사항

지침

게임 서버 패키징

  • [선택 사항] 이 섹션은 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로 테스트할 수 있습니다.
  • LocalMultiplayerAgent로 확인한 후 빌드 생성 가이드를 참조하세요.
    • 이 시점에서 MPS에서 테스트하려면 PlayFab MpsAllocatorSample의 중간 도구가 필요합니다.
    • 이 도구는 현재 일부 클라이언트 작업을 우회하며 게임 클라이언트의 직접 요청 없이 서버를 할당할 수 있게 해줍니다.
    • 클라이언트에서 이를 수행하는 적절한 방법은 할당 가이드에서 다루는 별도의 항목입니다.
  • 위의 {ShippingServerFolder}에서 Shipping Server 빌드를 압축합니다.
    • zip에는 {ShippingServerFolder}의 모든 항목이 포함되어야 하며, 선택적으로 zip 파일의 루트에 있어야 합니다.
    • [선택 사항] 즉, zip의 루트에는 {ProjectName}Server.exe가 포함되어야 합니다(exe는 “WindowsServer”와 같은 하위 폴더에 있으면 안 됩니다. 필요한 경우 zip을 다시 빌드하세요).
  • 빌드 생성 프로세스 가이드에 익숙해집니다.
  • 특정 구성에 대한 자세한 정보는 아래에 자세히 설명되어 있습니다.

PlayFab에서 Windows 전용 서버 설정

이 섹션에서는 PlayFab MPS에서 빌드를 생성하고 게임 서버를 업로드하고 처음으로 연결하는 방법을 다룹니다. Unreal에 특정하지 않은 지침은 코어 MPS 서버 생성 가이드도 따를 수 있습니다.
  • Game Manager -> Multiplayer로 이동합니다.
  • __New Build__를 선택합니다.
  • 빌드에 이름을 지정합니다.
  • Virtual Machine을 선택합니다(이 가이드에 설명된 샘플의 경우 코어 수가 가장 적은 권장 옵션이면 충분합니다).
  • Servers per machine은 약 1~10일 수 있습니다.
    • 이 숫자를 늘리는 것은 게임 서버의 성능에 따라 다릅니다.
    • VM 메트릭을 사용하여 게임 서버의 성능을 측정하고 이 숫자를 늘리기 위해 최적화할 수 있습니다.
  • 지금은 __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 섹션으로 건너뜁니다.

다음 단계

많은 사용자는 게임 클라이언트 연결로 서버를 테스트하고 싶어 할 것입니다. 다른 사용자는 선택적으로 Linux 컨테이너를 사용하여 서버를 다시 빌드하고 재배포할 수 있습니다. Linux는 대규모 배포의 서버 호스팅 비용을 절감합니다. 그렇지 않으면 기본 Unreal GSDK 플러그인 가이드로 돌아갈 수 있습니다.
마지막 수정일 2026년 8월 25일