언제 어디서나 피시방처럼 게임을 하고 싶을 때, GCP의 무료 크레딧을 이용해 무료 원격 피시방을 즐겨보자.
1. 그래픽카드 사용 신청
먼저 그래픽카드 quota를 올려야 한다. IAM > 할당량 > 필터에 all_regions 검색 - all regions GPU클릭 - 할당량 증가 클릭해서 GPU 한도 0에서 1로 늘려달라고 요청하고, 메일로 한도 변경 되었다고 연락 올때까지 기다린다.
메일이 오면 해당 페이지에서 Nvidia T4 GPUs로 필터링한다.
그래픽카드 위치는 asia-northeast3-b나 asia-northeast3-c로 해야 한다.
2. Instance 생성
일단은 gcp에서 NVIDIA Gaming PC - Windows Server 2019를 찾는다.
실행 누른다.
높은 핑을 위해서 asia-northeast3-c(서울) 로 잡고, GPU 사용, Boot Dist는 SSD 250Gb로 여유롭게 잡았다.
그러면 deployment manager가 뜨면서, 위 사진과 같이 나온다면 정상 배포 된 것이다.
원한다면 외부 고정 IP도 할당하자!
3. 해당 vm에 접속
(rdp 접속이 정상적으로 된다면) 바로 접속하면 되고, 그렇지 않다면 google cloud cli client를 설치하고 iap 우회를 할 것이다.
https://cloud.google.com/beyondcorp-enterprise/docs/securing-virtual-machines?hl=ko
위 링크를 참조해 방화벽 규칙을 만들고 gcloud에 명령어를 입력해 iap 터널을 열자.
gcloud compute start-iap-tunnel gs 3389
그러면 이런 식으로 포트 [XXXXX]번이 열렸다고 뜨는데 rdp 앱을 열어 localhost:[해당 포트]로 접속하면 된다.
window 비밀번호는 vm에서 열람할 수 있다.
4. 접속 후 원활한 rdp를 위한 설정
접속하면 window server가 보인다.
바로 뜨는 이 창을 끄고,
Manage - Server Manager Properties를 클릭해서 Do not statr server manager~를 끈다. window를 켤 때마다 이 앱이 실행되지 않게 한다.
비밀번호 설정
비밀번호를 내가 편한 것으로 바꾸자.
이후에는 netplwiz - users must enter~를 클릭해 로그인 시 비밀번호를 입력하지 않아도 되게 하자.
(원한다면 언어도 설치하자.)
프레임 설정
regedit을 검색해서 레지스트리 편집기로 들어간다.
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server로 들어가, DWORD(32 bit value)로 새로 만들기 - 이름은 DWMFRAMEINTERVAL, 값은 f(15)로 설정한다.
이후 서비스에 들어가서
Remote Desktop Services를 다시 시작한다. RDP 연결이 끊기고, 재시작하면 된다.
잘 안된다면, Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations에서 DWMFRAMEINTERVAL를 생성하고 값은 똑같이 f를 입력하자.
이후 재부팅한 후 testufo.com에 들어가서 보면 60fps로 실행되고 있는 것을 볼 수 있다. (나의 경우 잘 안되서 두 번째 레지스트리를 설정하니 잘 되었다. - 그리고 service 종료 해도 안 되면 재부팅도 한 번 해 보자.)
remote FX 설정
다음으로 remoteFX 관련 설정을 전부 켤 것이다.
gpedit(그룹 정책 편집)에 들어가서 관리 템플릿 - 윈도우 구성 요수 - 터미널 서비스 - 원격 데스크톱 세션 호스트 - 원격 세션 환경에 들어가자.
설정 다 꺼져 있다. 다 켜버리자.
모든 원격 데스크톱 서비스에 하드웨어 그래픽 어댑터 사용 - 사용으로 한다.
Use Advance RemoteFX graphics for RemoteApp - 사용으로 한다.
원격 데스크톱 연결에 H.264/AVC 444 그래픽 모드 우선 사용 - 사용으로 한다.
원격 데스크톱 연결에 대한 H.264/AVC 하드웨어 인코딩 구성 - 사용으로 한다.
Configure compression for RemoteFX data - 네트워크 대역폭을 적게 사용하도록 최적화함 한다.
Configure image quality for RemoteFX Adaptive Graphics - 이미지 품질 낮음으로 한다.
Enable RemoteFX encoding for RemoteFX clients designed for Windows Server 2008 R2 SP1 - 사용으로 한다.
Configure RemoteFX Adaptive Graphics - 최소 대역폭으로 한다.
지금까지 이렇다.
다음으로 제일 위에 있는 폴더인 RemoteFX for Windows Server 2008 R2로 들어간다. 여기 옵션도 다 켤 것이다.
Configure RemoteFX - 사용으로 한다.
Optimize visual experience when using RemoteFX - 프레임은 높음, 이미지 품질은 낮음으로 한다.
Optimize visual experience for Remote Desktop Service Sessions - 사용으로 한다.
접속 포트 변경
공식 문서와 동일하다.
다음으로 접속 포트를 3389에서 443으로 바꿀 것이다. 방화벽을 들어가자.
고급 설정을 들어가자.
보이는 inbound rule, outbound rule에 443을 추가하면 된다.
순서는 new rule - port - tcp - 443 - allow the connection - 이름은 적당히 생성
하면 만들어진다. outbound에도 만들자.
이후에는 다시 regedit을 켜서 Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP_Tcp로 들어간다.
PortNumber를 내가 들어가고 싶은 포트(앞에서 방화벽을 연) 443으로 들어간다.
바꾸었다. 이제 이 포트로 접속 가능!
5. Moonlight를 사용하는 방법
rdp 너무 귀찮다, 하면 parsec이나 moonlight를 써도 된다.
vm 방화벽 설정
1) 방화벽 설정. TCP 47984, 47989, 48010 / UDP 5353, 47998, 47999, 48000, 48002, 48010로 설정하면 된다.
2) 해당 vm 접속 - server manage - add roles and features - Wireless Lan Service 설치 후 재부팅
3) sign-in option - 비밀번호 변경, newplwiz - 로그인 시 pw요구 없애기
4) 재부팅.
파섹 스크립트 설치
https://github.com/parsec-cloud/Parsec-Cloud-Preparation-Tool
에서 스크립트 관리자 모드로 켠 powershell에 복붙.
이후 재부팅 2회, 이후 RDP 대신 parsec으로 해당 vm에 접속한다.
geforce experience 설치.
https://github.com/acceleration3/cloudgamestream
에서 스크립트 다운받기
Steps 폴더 안의 1_install_requiresments에 있는 63번줄 if($installVideo) {}부터 끝까지 삭제
관리자 모드로 켠 파워쉘에 아래 명령어 입력, 나오는 건 전부 y로 설치.
Set-ExecutionPolicy Unrestricted; ./Setup.ps1
Moonlight 시작
1) nvidia experience 실행 및 로그인 - 설정 - shields - 프로그램 추가 - C:\windows\system32\mstsc.exe 등록
2) https://github.com/moonlight-stream/Internet-Hosting-Tool/releases에서 최신 툴 다운로드, 실행
3) moonlight client에서 해당 사이트로 접속.
참고
아래 링크 참고해서 구성하면 된다.
https://www.clien.net/service/board/cm_vr/16131785
https://www.clien.net/service/board/cm_vr/16131801
https://www.clien.net/service/board/cm_vr/16133911
https://www.clien.net/service/board/cm_vr/16133936
끝!
와! 이제 어디서든 window를 사용할 수 있게 되었다. 시간당 약 2000원이니 계산 잘 해가면서 하자.
'DevOps > Environment Set Up' 카테고리의 다른 글
[GCP Tutorial] Windows RDP through WEB using guacamole + code-server (feat. GCP) (0) | 2022.09.27 |
---|---|
[Node.js Tutorial] Install NVM & typescript-express-starter on Ubuntu (0) | 2022.09.20 |
[GCP Tutorial] RDP through HTTPs connection using guacamole (feat. GCP) (0) | 2022.09.04 |
[Java Tutorial] Ubuntu Java 개발환경 세팅 (0) | 2022.08.17 |
[GCP Tutorial] GCP + Code Server (0) | 2022.06.20 |