본문 바로가기
AWS

[AWS][EC2] 클라우드 컴퓨팅으로 게임하기

by chan10 2024. 2. 22.

맥 환경을 사용하다보면 연동성이나 작업용으로 사용 시 편리한 점이 많습니다. 그러나 가끔 게임 이용 시 대부분의 게임이 윈도우 환경에 맞게 개발 되어있기에 이용에 어려움이 있습니다.

그래서 클라우드 환경을 이용하면 맥 환경에서도 게임이 가능하지 않을까 해서 이번 실습을 해보았습니다. 🙂

 

EC2 생성을 위해 인스턴스 생성 메뉴로 진입합니다.

게임 설치를 위해 AMI : Windows Server 2022를 선택하고 인스턴스 유형은 GPU가 제공되는 G-Type 인스턴스를 선택합니다.

네트워크는 퍼블릭 IP 자동 할당을 활성화하여 Public 환경으로 구성, 보안그룹 RDP 허용, 스토리지는 사용 환경에 맞게 설정하면 됩니다.

 

만약 G-Type 인스턴스가 vCPU 제한으로 생성되지 않을 시 아래 더보기를 눌러주시기 바랍니다.

더보기

vCPU 증가하기

인스턴스 생성 시 vCPU 할당량 제한으로 인스턴스 생성이 불가할 수도 있습니다.

이는 인스턴스 유형에 따라 제공받을 수 있는 vCPU가 제한되어 있는데 G-Type 인스턴스가 여기에 해당되기 때문입니다.

 

그럴 경우 Service Quotas서비스에서 vCPU 할당을 신청해야 합니다.

 

Service Quotas - AWS 서비스 - Amazon EC2에 진입 후 Running On-Demand G and VT Instance를 클릭합니다.

G and VT Instance 신청 유형이 On-Demand, Spot으로 나누어지니 확인하여 On-Demand로 신청하시면 됩니다.

(저는 처음에 G and VT Instance만 보고 신청했는데 알고보니 Spot Instance여서… 다시 신청했습니다..)

 

vCPU 할당량 증가 신청 시 처음에는 할당된 값이 0으로 되어있습니다.

할당량 값 증가를 0 → 32로 요청합니다.

 

상태가 대기중 → 요청됨 → 마감됨으로 변경되면서 요청 사항에 대한 진행도를 확인할 수 있습니다.

 

처음에 확인 시 요청은 32로 했으나 실제 적용은 8만 적용 되었습니다. (AWS측에서 처음부터 요청이 많다고 생각했나 봅니다…)

그래서 8vCPU만 사용해보다가 부족해서 다시 32로 요청하니 그제서야 요청대로 적용 시켜줬습니다 ㅎㅎ

 

vCPU 증가 요청 완료 후 정상으로 인스턴스가 생성된 모습입니다.

 

추가 사항으로 S3 Read 권한이 있는 IAM 역할을 추가합니다. 해당 권한은 이후 S3에서 NVIDIA 게임 드라이버 다운로드에 사용됩니다.

 

인스턴스 생성이 완료 되었다면 인스턴스에 접속하기 위해 인스턴스 연결로 진입합니다.

RDP로 연결하기 위해 RDP 클라이언트 - 원격 데스트톱 파일 다운로드를 클릭하여 .rdp 파일을 다운로드 합니다.

그 후 다운로드 받은 .rdp 파일로 접속 하기 전에 접속에 필요한 암호를 받아야 합니다. 암호 가져오기를 클릭 합니다.

 

인스턴스 생성 시 사용한 키 파일을 업로드 하면 인스턴스 연결에 필요한 암호를 받을 수 있습니다.

 

다운로드 받았던 RDP 파일을 클릭 후 받았던 암호를 입력하면 윈도우 서버에 연결이됩니다.

만약 연결이 되지 않을 경우 암호가 틀리지는 않았는지 보안 그룹에 RDP가 허용되어 있는지 체크해보면 됩니다.

 

윈도우 서버에 접속이 되었다면 게임 실행에 필요한 드라이버를 다운로드 합니다.

Windows PowerShell을 열어 nvidia gaming 드라이버 다운로드 커맨드를 입력합니다.

[PowerShell]

$Bucket = "nvidia-gaming"
$KeyPrefix = "windows/latest"
$LocalPath = "$home\Desktop\NVIDIA"
$Objects = Get-S3Object -BucketName $Bucket -KeyPrefix $KeyPrefix -Region us-east-1
foreach ($Object in $Objects) {
    $LocalFileName = $Object.Key
    if ($LocalFileName -ne '' -and $Object.Size -ne 0) {
        $LocalFilePath = Join-Path $LocalPath $LocalFileName
        Copy-S3Object -BucketName $Bucket -Key $Object.Key -LocalFile $LocalFilePath -Region us-east-1
    }
}

 

아래와 같이 다운로드가 진행되고 완료되면 다운받은 정보와 함께 다운로드가 마무리 됩니다.

 

다운로드 받은 NVIDIA 드라이버 파일을 실행해서 기본 설정으로 다음을 눌러 설치를 진행합니다.

 

레지스트리 값 생성을 통해 설치한 드라이버를 등록합니다. (New-ItemProperty)

인증 파일 다운로드, GridSwCert.txt 파일 이름 변경, 파일을 시스템 드라이브의 공용 문서 폴더로 이동시킵니다. (Invoke-WebRequest)

[PowerShell]

New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\nvlddmkm\Global" -Name "vGamingMarketplace" -PropertyType "DWord" -Value "2"

Invoke-WebRequest -Uri "https://nvidia-gaming.s3.amazonaws.com/GridSwCert-Archive/GridSwCertWindows_2023_9_22.cert" -OutFile "$Env:PUBLIC\Documents\GridSwCert.txt"

 

 

드라이버 등록이 완료되었으면 인스턴스를 재부팅합니다.

재부팅 후 아래 명령어를 입력하여 vGPU Software Licensed Product 부분의 NVIDIA 게임 라이선스를 확인합니다.

C:\Windows\System32\DriverStore\FileRepository\nvgrid*\nvidia-smi.exe -q

 

 

게임을 설치하기 위한 사전 설정이 완료되었습니다.

이제 원하는 게임을 설치하면 되며 저는 펄어비스 - 검은사막을 설치하여 실행 해보았습니다.

 

원격 접속으로 게임을 플레이 시 아무래도 지연과 그래픽 품질 저하가 있었습니다. 실시간으로 역동적인 게임을 할 경우에는 다소 아쉬움이 있지만 ‘턴’제 게임같이 역동적인 게임이 아니라면 괜찮을 것 같습니다.

Steam에서 제공하는 Remote Play이 기능으로 하면 더 원활하게 되지 않을까 합니다.

또한 게임이 아니더라도 가끔 윈도우 환경이 필요할 때 AWS EC2를 활용하면 하나의 괜찮은 방법이 될 것입니다.

 

[참고 사이트]

[AWS - Windows 인스턴스에 NVIDIA 드라이버 설치]

[How to use Amazon EC2 G5 and G5g instances for graphics intensive workloads and game streaming]

[클라우드 게임 스트리밍 체험하기(다양한 게임을 고사양으로 즐기는 법)]