Azure에 언리얼 엔진 픽셀 스트리밍 배포하기

언리얼 엔진 4용 픽셀 스트리밍을 Microsoft Azure에 구성하는 방법에 관한 짧은 튜토리얼입니다.

언리얼 픽셀 스트리밍은 Microsoft가 에픽과 협업하여 빌드한 Azure Marketplace 오퍼링으로, Azure 구독자가 원격 GPU 활성화 가상 머신(Virtual Machines, VM)에서 UE 앱을 배포 및 스트리밍할 수 있게 해줍니다. 이 솔루션은 패키징된 애플리케이션의 단일 .zip 파일을 가져와, 여러 지역에 걸친 수천 개의 VM 인스턴스에 가동시킴으로써 단일 URL을 통해 액세스되는 자동 확장 배포를 구성하는 방법을 제공합니다. 이 튜토리얼은 여러분의 첫 픽셀 스트리밍 프로젝트를 Azure에 배포하기 위한 단계별 가이드입니다.

전제조건

Azure 계정 및 구독

Azure 계정 및 리소스 생성 권한이 있는 최소한 하나의 구독이 필요합니다. 새 구독 만들기에 관한 정보는 이 가이드를 참조하세요. 구독하려면 청구 계정도 설정해야 합니다.

언리얼 픽셀 스트리밍 솔루션은 무료로 사용할 수 있지만, 그에 따른 Azure 리소스는 관련 비용이 들 수 있습니다. 계정이 고용주 또는 다른 당사자와 연결되어 있다면, 배포 인스턴스를 구성하기에 앞서 이들이 관련 비용을 책임질 준비가 되어 있는지 확인하세요.

예상 비용을 더 정확하게 알아보려면 Windows 가상 머신 가격 페이지에서 가격 정보를 살펴보세요. 원하는 지역으로 필터를 적용하고 ' NV12s v3 '를 검색하여 '종량제' 가격을 확인하면 됩니다.

Azure VM 할당량

Azure 구독은 한 번에 사용 가능한 VM 리소스 개수에 제한이 있는데, 이를 할당량이라고 합니다. Microsoft 문서를 따라 배포할 각 지역에서 원하는 VM 제품군의 할당량이 충분한지 확인하세요.

기본 구성에 필요한 할당량은 표준 NVSv3 Family vCPU 이며, 사용하는 NV12s_v3 인스턴스마다 12개의 vCPU가 필요합니다. 예를 들어 미국 동부에서 인스턴스 2개, 유럽 북부에서 인스턴스 2개를 실행하고 싶다면, 두 지역의 이 제품군에 vCPU 24개의 할당량 증가를 요청해야 합니다.

픽셀 스트리밍 애플리케이션 패키징하기

이 Azure 솔루션은 기존에 생성한 픽셀 스트리밍 애플리케이션과 함께 사용하는 것만 가능합니다. 클라우드 배포를 진행하기 전에 시작하기 문서를 따라 앱을 로컬에서 테스트해야 합니다.

기본적으로 이 솔루션은 Samples 폴더의 모든 웹 서버 파일을 완전히 오버라이드합니다. 웹페이지 또는 서버를 커스터마이징했다면, 더 진행하기에 앞서 Azure 수정사항을 다운로드하고 포함된 README.txt 파일에 따라 변경사항을 병합해야 합니다.

픽셀 스트리밍 애플리케이션을 패키징했다면, Windows 폴더 전체를 압축하여 아카이브 디렉터리가 PROJECTNAME.zip\Windows\Engine… 과 유사하도록 해야 합니다.

Windows 폴더를 zip 파일로 압축하기

Azure Portal 및 Azure Marketplace 사용하기

  1. Azure 계정에 로그인

  2. 언리얼 픽셀 스트리밍 오퍼가 Azure Marketplace에서 호스팅됩니다. 이 오퍼 페이지로 이동합니다.

    Azure Marketplace에서 호스팅되는 언리얼 픽셀 스트리밍 오퍼 페이지

  3. 우측 상단에 있는 버튼을 사용하여 Azure Marketplace에 로그인합니다. 다른 모든 Azure 서비스에서 사용하는 것과 동일한 계정을 사용합니다.

    Azure Marketplace 로그인 페이지

  4. 언리얼 엔진 아이콘 아래의 지금 받기(Get It Now) 를 클릭합니다. 하트 아이콘을 사용하여 나중을 위해 즐겨찾기에 저장해 둘 수도 있습니다.

    지금 받기 버튼 클로즈업

  5. 사용자 정보를 확인하고 이 앱을 계정에 추가하라는 다이얼로그가 뜹니다. 정보를 채운 후 계속(Continue) 을 클릭합니다.

    정보 확인 및 앱 생성

  6. 계정의 언리얼 픽셀 스트리밍 제품에 Azure Potal이 열립니다. 여기에서 만들기(Create) 를 클릭하여 배포 환경설정 프로세스를 시작합니다.

    만들기를 클릭하여 배포 환경설정 시작

기본사항

만들기 페이지의 첫 번째 탭은 구독 상세 정보, 인스턴스 유형, 애플리케이션 업로드 같은 픽셀 스트리밍 배포의 필수 사항을 다룹니다.

  1. 기본사항(Basics) 탭에서 구독(Subscription) 과 트래픽 관리자(Traffic Manager), 키 자격 증명 모음(Key Vault), 관리자 대시보드(Admin Dashboard) 등 글로벌 리소스가 배포될 빈 리소스 그룹(Resource Group) 을 선택합니다. 새로 만들기(Create New) 버튼을 사용해야 할 수도 있습니다.

    새로 만들기 링크를 클릭하여 새 리소스 그룹 생성

  2. 글로벌 리소스를 위한 주 지역(Region) 을 선택합니다. 그런 다음, 매치메이커 VM 및 UE 앱 VM의 인스턴스 크기를 둘 다 선택합니다. 이 템플릿은 디폴트는 권장 크기로 설정되어 있습니다.

    디폴트 인스턴스 크기

    계속하기 전에, 위의 언급대로 선택한 할당량이 구독의 GPU VM 크기에 충분한지 확인하세요. 할당량이 충분하지 않으면 이 배포는 실패하고 다시 시작해야 할 수 있습니다.

  3. 다음으로는, 압축된 픽셀 스트리밍 앱을 반드시 업로드해야 합니다. 찾아보기(Browse) 버튼을 사용하여 선택한 구독의 스토리지 계정(Storage Accounts) 을 엽니다.

    픽셀 스트리밍 앱 패키지 찾아보기

    새 스토리지 계정 생성

    아직 스토리지 계정이 없다면, 상단의 + 스토리지 계정(+ Storage Account) 버튼을 사용하여 추가할 수 있습니다. 이름(Name), 위치(Location),리소스 그룹(Resource Group) 을 입력하고 확인(OK) 을 클릭합니다. 잠시 후 새 스토리지 계정이 목록에 뜹니다. 표시된 스토리지 계정을 선택하여 엽니다.

    새 스토리지 계정 관련 세부 정보 추가하기

  4. Azure 스토리지 계정에 업로드할 모든 파일은 컨테이너(Container) 에 들어가야 합니다. 아직 컨테이너가 없다면, 상단의 + 컨테이너(+ Container) 버튼을 사용하여 추가할 수 있습니다. 이름 을 지정하고 만들기(Create) 를 클릭합니다. 목록에서 컨테이너를 선택하여 엽니다.

    + 컨테이너 버튼을 클릭하고 새 컨테이너 이름 지정하기

  5. 선택한 컨테이너 내에서 상단의 업로드(Upload) 버튼을 클릭하고 폴더 아이콘을 사용하여 애플리케이션의 .zip 파일을 찾은 다음, 업로드 를 클릭합니다. 프로젝트 크기와 네트워크 대역폭에 따라 업로드가 완료되기까지 몇 분 정도 걸릴 수 있습니다.

    앱을 컨테이너로 업로드하기

    앱 업로드가 끝나면, 컨테이너에서 파일을 선택하고 선택(Select) 을 클릭합니다.

    컨테이너에서 파일 선택

  6. 메인 환경설정 페이지로 돌아와서, .zip 파일 내 UE 애플리케이션의 이름을 지정합니다. 이 이름은 '.exe'를 뺀 실행파일 이름과 같습니다. 이 이름은 VM에서 앱을 자동 실행할 때 사용되며, 이름을 잘못 입력하면 앱이 실행되지 않습니다.

    포함된 설명에 따라 매치메이커(Matchmaker) 또는 시그널링(Signalling) 서버에 사용자 지정 수정을 적용했다면, 아래 프롬프트의 박스를 체크하세요.

    사용자 지정 모드 체크박스

  7. 마지막으로, VM의 사용자 이름과 비밀번호를 설정합니다. 이러한 자격 증명은 문제를 디버깅하는 데 유용한 원격 데스크톱을 인스턴스에 활성화할 때 사용됩니다.

    가상 컴퓨터의 자격 증명에 액세스

    기본사항 탭을 마쳤으면, 다음: 확장(Next : Scale) 을 클릭합니다.

확장

이 탭에서는 배포의 크기와 범위를 지정합니다. Azure의 언리얼 픽셀 스트리밍을 사용하면 앱을 전 세계 여러 지역의 수많은 인스턴스에서 실행되도록 자동 설정할 수 있습니다.

애플리케이션을 테스트하고 높은 결제 비용을 피하기 위해 소규모의 단순한 배포로 시작하는 것을 권장합니다. 여러 지역에서 가상 머신을 많이 만들면 구독료에 크게 영향을 줄 수 있습니다.

  1. 배포할 지역 선택(Select regions to deploy) 옆 드롭다운에서 UE 앱을 배포할 지역을 최대 4군데 선택합니다. 여러분의 웹 URL에 접속하는 사용자는 가장 가까운(Ping이 가장 낮은) 지역으로 연결되므로, 어디에 사용자가 가장 많을지 생각해 보세요.

    위의 언급대로 지역마다 미리 관리해야 하는 자체 VM 할당량이 있음을 염두에 두지 않으면 배포에 실패할 것입니다.

    가상 머신을 배포할 지역 선택

  2. 지역당 GPU VM 인스턴스(GPU VM Instances Per Region) 는 선택한 지역에서 실행되는 가상 머신의 수를 제어합니다. 아래 설명대로 자동 확장(Auto-scaling) 이 활성화되면, 이 수는 수요에 따라 오르내립니다.

    GPU VM당 스트림(Streams Per GPU VM) 은 VM마다 실행되는 UE 앱의 인스턴스 수이며, 2개로 제한됩니다. 애플리케이션이 가볍거나, 높은 프레임 속도를 필요로 하지 않는다면, 이렇게 GPU를 공유하여 비용을 최소화할 수 있습니다. 일반적으로, 실행 중인 두 앱 사이에서 GPU 리소스를 공유하면 프레임 속도에 부정적인 영향을 줍니다.

    스트림 및 가상 머신 인스턴스의 수를 제어하는 슬라이더

  3. 자동 확장 을 활성화하면 더 많은 사용자가 애플리케이션에 접속하려고 시도함에 따라 더 많은 GPU 인스턴스를 가동시키고, 대기 상태인 인스턴스가 너무 많을 때 GPU 인스턴스 가동이 중단될 수 있습니다. 사용 가능한 인스턴스의 수를 일정하게 유지하고 싶다면 이 기능을 비활성화하세요. 다음: 스트림 구성(Next : Stream Configs) 을 클릭하기 전에 아래 옵션을 살펴보세요.

    자동 확장 활성화

    사용 가능한 확장 파라미터에 관한 정보는 다음 표를 참조하세요.

파라미터

설명

확장 전에 필요한 퍼센트 버퍼(Percent Buffer Required Before Scale)

반드시 사용할 수 있어야 하는 스트림(UE 앱 인스턴스)의 퍼센티지입니다. 그렇지 않을 경우 이 버퍼를 유지하기 위해 규모 확장 작업이 발생합니다. 이 옵션을 사용하면 부하가 늘었을 때 신규 사용자가 신규 VM이 가동되기를 기다리지 않도록 합니다. 이 정책을 무시하려면 0을 선택하세요. 디폴트는 25%입니다.

확장 전에 필요한 인스턴스 수 버퍼(Instance Count Buffer Required Before Scale)

반드시 사용할 수 있어야 하는 스트림(UE 앱 인스턴스)의 수입니다. 그렇지 않을 경우 이 버퍼를 유지하기 위해 규모 확장 작업이 발생합니다. 이 옵션을 사용하면 부하가 늘었을 때 신규 사용자가 신규 VM이 가동되기를 기다리지 않도록 합니다. 이 정책을 무시하려면 0으로 설정하세요. 디폴트는 1입니다.

규모 축소 전 대기 시간(분)(Idle Minutes Before Scale-Down)

최소 버퍼 수로 축소되었다고 평가하기 전에 새 확장 작업이 발생하지 않은 시간(분)입니다. 디폴트는 60입니다.

규모 축소 수량(Scale Down Amount)

규모 축소가 발생했을 때 축소할 노드의 최대 개수입니다. 디폴트는 1입니다.

대기 중 최소 인스턴스 수(Min Instance Count While Idle)

솔루션이 대기 기간(야간처럼 활동이 적은 기간) 중에 축소할 스트림(UE 앱 인스턴스)의 최소 개수입니다. 디폴트는 1입니다.

최대 노드 확장 수(Max Node Scale Count)

규모가 축소된 스트림(UE 앱 인스턴스)이 포함된 GPU VM의 최대 개수입니다. 디폴트는 20입니다. 이러한 수의 인스턴스를 지원하려면 할당량을 확인하세요.

마무리

  1. 스트림 구성(Stream Configs) 탭에서 앱의 해상도와 프레임 속도를 조정할 수 있습니다. GPU당 2개의 스트림을 최적화한다면 유용할 수 있습니다.

    앱 해상도 및 프레임 속도 조정

  2. 보안(Security) 에는 HTTPS 연결 시 선택 사항으로 기존 Azure DNS 리소스에서 사용자 지정 이름을 사용할 수 있는 옵션이 있습니다. 이 옵션은 기본적으로 비활성화되어 있지만, 이 문서를 참조하여 시작할 수 있습니다.

    사용자 지정 도메인 사용 활성화

    HTTPS가 구성되었다면 시그널링 서버에 인증 활성화(Enable Auth on Signalling Server) 로 사용자가 브라우저에서 애플리케이션에 처음 액세스하려 할 때 로그인 페이지로 리디렉션됩니다. 인증을 마치면 사용자가 애플리케이션으로 리디렉션됩니다. 이 세팅이 활성화되면, 사용자 계정을 추가하기 위해 다음 단계에서 관리자 대시보드도 활성화해야 합니다.

    시그널링 서버에서 인증 활성화

  3. 관리자 대시보드 탭에서는 기본 트래픽 분석을 확인하고, 사용자 액세스 권한을 부여하고(활성화된 경우), 앱의 새 버전을 업로드하며, 자동 확장 파라미터를 변경할 수 있는 단순한 인터페이스의 관리자 대시보드를 활성화할 수 있습니다.

    이 기능은 Azure Active Directory에서 앱 등록을 요구하므로, 귀하의 조직에서 적절한 허가를 받아야 합니다. 이 Microsoft 문서를 따라 다른 탭에서 앱 등록을 생성한 다음, 애플리케이션(클라이언트) ID(Application (client) ID) 를 복사하여 붙여넣으세요.

    관리자 대시보드에 앱 등록

    관리자 대시보드 활성화

  4. 모든 설정을 구성했으면, 검토 + 만들기(Review + create) 를 클릭합니다. 유효성 검사를 통과하고 모든 설정이 올바르게 된 것 같다면, 만들기(Create) 를 클릭하여 배포를 시작합니다. 필요한 리소스, 특히 부팅 및 앱 다운로드가 필요한 GPU VM을 생성하는 데 몇 분 정도 걸릴 수 있습니다. 배포가 완료되면, 리소스 그룹으로 이동(Go to resource group) 을 클릭합니다.

    배포가 완료되면 리소스 그룹으로 이동을 클릭

스트리밍 인스턴스에 연결하기

  1. 배포의 주된 리소스 그룹에서 트래픽 관리자 프로필(Traffic Manager profile) 을 선택합니다.

    트래픽 관리자 프로필 선택

  2. 필수(Essentials) 섹션의 우측 상단에 DNS 이름(DNS name) 이 있을 것입니다. 여기에서 이 URL을 복사한 뒤 새 브라우저 탭에 붙여넣을 수 있습니다. 이 범용 URL을 통해 모든 사용자가 애플리케이션에 액세스할 수 있습니다. 사용자는 가장 가까운 지역의 매치메이커 VM으로 다시 라우팅되며, GPU 인스턴스에서 첫 번째로 사용할 수 있는 스트림으로 한 번 더 리디렉션됩니다.

    트래픽 관리자 DNS 이름 복사

    브라우저의 픽셀 스트리밍 앱

관리자 대시보드 활성화하기

구성 도중에 관리자 대시보드를 켰다면, 모든 리소스가 배포된 뒤 관리자 대시보드를 활성화하기 위해 추가 설정이 필요합니다.

  1. 주 리소스 그룹에서 '-dashboard' 이름으로 앱 서비스(App Service) 를 엽니다.

    대시보드 앱 서비스 열기

  2. 필수(Essentials) 섹션의 우측 상단에 이 리소스의 URL 이 있습니다. 이 주소를 복사합니다.

    리소스 URL

  3. 이 대시보드용으로 생성한 AAD 앱 등록(AAD App Registration) 으로 돌아갑니다. 필수(Essentials) 의 우측 열에서 리디렉트 URI 추가(Add a Redirect URI) 를 클릭합니다.

    리디렉트 URI 추가

  4. 플랫폼 추가(Add a platform) 를 클릭합니다. 팝업 블레이드에서 웹(Web) 을 클릭합니다.

    웹 플랫폼 추가

  5. 대시보드 앱 서비스의 URL을 리디렉트 URI 에 붙여넣은 뒤 다음 텍스트를 끝에 덧붙입니다. /.auth/login/aad/callback . 구성(Configure) 을 클릭합니다.

    웹 플랫폼 리디렉트 URI 구성

  6. 붙여넣은 원본 URL을 방문하면 이제 관리자 대시보드 가 나옵니다. 이 URL은 앱 서비스(App Service) 에서 언제든지 다시 찾을 수 있습니다.

    픽셀 스트리밍 관리자 대시보드

애플리케이션 업데이트하기

관리자 대시보드가 활성화되면, 아래 단계를 따라 UE 앱의 새 빌드로 픽셀 스트리밍 배포를 업데이트할 수 있습니다. 관리자 대시보드가 없으면 모든 설정 및 구성을 다시 수행해야 합니다. 대시보드 메서드는 기존 리소스 및 리소스 그룹을 활용하지만, 새 배포는 완전히 새로운 리소스를 생성하며 기존 배포를 덮어쓰거나 삭제하지 않습니다.

  1. 동일한 필수 구성 요소 단계를 따라 앱의 WindowsNoEditor 폴더를 압축합니다.

  2. 글로벌 리소스 그룹에서 스토리지 계정을 선택합니다.

    스토리지 계정 선택

  3. 좌측 패널에서 컨테이너(Containers) 를 선택하고 업로드(Uploads) 컨테이너를 엽니다. 여기에 zip 파일을 업로드합니다.

    컨테이너에 zip 파일 업로드

  4. 브라우저에서 관리자 대시보드(Admin Dashboard)를 찾습니다. 왼쪽 탐색에서 설정(Settings) 을 선택합니다.

  5. 새 버전 추가(Add New Version) 를 클릭하고 필요한 경우 세팅을 조정합니다. Blob 선택(Select blob) 을 사용하여 스토리지 계정에 업로드한 .zip 파일을 선택합니다. 완료되면 버전 추가(Add Version) 를 클릭합니다.

    세팅에서 새 버전 추가 클릭

    새 버전 추가 세부 정보

  6. 매치메이커 및 시그널링 서버는 30초마다 업데이트를 확인하고 새 버전이 있으면 즉시 재배포합니다.

  7. 확장 또는 축소 없이 실행될 인스턴스의 수를 정확히 제어하고 싶다면, 최소 대기(Min Idle) 인스턴스 수(Instance Count)최대 인스턴스 확장 수(Max Instance Scale Count) 를 원하는 인스턴스와 동일한 수로 변경하면 됩니다. 자동 확장을 비활성화할 수 있으며, 대신 각 지역의 가상 머신 확장 집합(Virtual machine scale set, VMSS)의 확장 페이지를 통해 인스턴스의 수를 수동으로 설정할 수도 있습니다.

인증된 계정 추가하기

배포 중에 보안(Security) 탭에서 시그널링 서버에 인증 활성화(Enable Auth on SignallingServer) 가 올바르게 구성되었다면, 스트림 액세스 권한이 있는 사용자 계정을 반드시 추가해야 합니다. 관리자 대시보드 의 왼쪽 탐색에서 계정(Accounts) 을 클릭한 다음, 계정 추가(Add Account) 를 클릭합니다. 사용자는 반드시 여러분이 제공한 자격 증명을 사용하여 앱에 액세스해야 합니다.

인증된 계정 추가

전체 배포 삭제하기

픽셀 스트리밍 배포를 삭제하고 제반 비용 청구를 중단하려면, 생성된 리소스 그룹을 반드시 삭제해야 합니다. 초기 배포 이후로는 구독에 최소 3개의 리소스 그룹이 있어야 합니다. 각 지역의 리소스 그룹(GPU 인스턴스용) 하나, 스토리지 리소스 그룹(초기 .zip 파일 업로드용) 하나, 글로벌 리소스 그룹(트래픽 관리자 및 관리자 대시보드용) 하나입니다. 스토리지 리소스 그룹은 향후 배포에 재사용할 수 있습니다.

픽셀 스트리밍 애플리케이션용 전형적인 리소스 그룹의 예시

리소스 그룹을 삭제하려면 리소스 그룹을 연 다음, 상단의 리소스 그룹 삭제(Delete resource group) 버튼을 클릭합니다. 삭제를 확인해야 합니다. 삭제가 완전히 처리되고 구독에서 그룹이 제거될 때까지 몇 분 정도 걸릴 수 있습니다. 필요에 따라 다른 리소스 그룹에도 이 과정을 반복합니다.

리소스 그룹 삭제

사용자 지정 도메인을 설정했다면, DNS 영역에 추가된 기록도 삭제해야 합니다.

태그