AWSにParsecを使ったゲーミングPCをこさえてみる

2021.06.15

最近Parsecというサービスを調べる機会があったのでご紹介しようと思います。

Parsecはリモートデスクトップのサービスで、低遅延アクセスをうりにしています。 リモートアクセスの技術を厳しいゲームでテストしているため、大体の用途にも使用できるとのことです。

(開発、デザイン、アニメーション、動画編集、放送 など)

独自プロトコルで通信をしています。

今回はこれを使ってリモートでゲームをできる環境を作ってみようと思います。

※ こんなイメージ

実際にゲームを実行しているのはAWS側のマシンで(ホスト), プレイヤーはParsec経由でホストから送られてくる映像を見てゲームをプレイします(クライアント)

やってみる

AWSにホストマシンを作る

AWSのマネージメントコンソールにログインし、EC2をセットアップしていきます。

リージョンは東京です。

Parsecでゲームセッションをホストするためのハードウェア要件 を満たすスペックで作成していきます。

  1. Microsoft Windows Server 2019 Base を選択

  2. g4dn.xlarge を選択

  3. インスタンスの詳細の設定 はそのままでも良いですし、VPCなどを自身の環境に合わせて設定します

  4. ストレージは必要なだけ ですが、その分コストはかかってきます(今回は100GBのgp2にしてみました)

  5. 必要なだけタグを設定します

  6. セキュリティグループ

デフォルトのままでいきます。セキュリティグループには、RDP用のポート3389が含まれています。 これは、RDPを使用してインスタンスを最初に構成するためです。

  1. 設定した内容を確認後、起動します

Parsecインストール時に使用するIAMユーザーを作成

IAMダッシュボードに移動し、IAMユーザーを作成します。

このユーザーはParsecをインストールするときに必要になります(GPUドライバのアップロード。S3からダウンロードする)

AmazonS3ReadOnlyAccessポリシーをつけてIAMユーザーを作成し、アクセスキーと シークレットアクセスキーは安全なところに保存しておきましょう。

ホストマシンにParsecをインストール

EC2が起動したら、RDPを利用してEC2にアクセスします。

  1. CTRL + ALT + DELETEを無効にする

    スタートメニューからLocal Security Policyを検索し、Local Policies -> Security Optionsを選択します。

    Interactive Logon: Do not require CTRL + ALT + DELEnabled にします。

  2. スクリプトを使ってParsecをインストール

Parsecが公開しているクラウドマシン用のインストールスクリプトを使います。

これは、Parsecだけでなく、他に必要なものもインストールされます(DirectX 11、Chrome、.NET、7zipなど)

[Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls" 
$ScriptWebArchive = "https://github.com/parsec-cloud/Parsec-Cloud-Preparation-Tool/archive/master.zip"  
$LocalArchivePath = "$ENV:UserProfile\Downloads\Parsec-Cloud-Preparation-Tool"  
(New-Object System.Net.WebClient).DownloadFile($ScriptWebArchive, "$LocalArchivePath.zip")  
Expand-Archive "$LocalArchivePath.zip" -DestinationPath $LocalArchivePath -Force  
CD $LocalArchivePath\Parsec-Cloud-Preparation-Tool-master\ | powershell.exe .\Loader.ps1

上記スクリプトをPowershellにコピーし、エンターキーを押してインストール開始です。

Parsecがインストールされると、クライアントアプリが立ち上がるのでログインします。

Razer Synapse がインストールされた後もログインを求められますが、これは無視して閉じで大丈夫です。

GPUドライバーのアップデートをする際に、IAMのアクセスキーとシークレットキーを求められますので、事前に作成したIAMユーザーのものを使います。

アクセスキーを保存するかなどを聞かれるので Yと入力します。

ドライバがインストールされると、再起動する必要があるかどうかが通知され流ので、再起動した場合はまたRDPでマシンに接続します。

ホストマシンのParsec設定

Parsecのアプリを立ち上げ、Settings->HOSTで以下の設定をします。

  • Host Name を わかりやすい名前に設定しましょう
  • Bandwidth Limit を 50Mbps に
  • (クライアントマシンがmacOSの場合) Resolution を クライアントマシンの解像度に合わせます。

必要に応じて他の設定も変更します。

参考:

ホストマシンのその他の設定

Setup Auto Shutdownというスクリプトがデスクトップに置いてあります。これは指定したアイドル時間を過ぎると自動的にシャットダウンしてくれるものです。 必要に応じて設定します。

Setup One Hour Warningというスクリプトがデスクトップに置いてあります。これは1時間接続すると警告が表示されるようにするものです。 これも必要に応じて設定しておきます。

設定が終わったらRDPでの接続を切ります。これ以降はParsec経由で接続します。

AWS側で

  • インストール時に使用したIAMユーザーの削除 or アクセスキーの無効化
  • EC2のセキュリティグループにあるRDPのインバウンドを削除

を行っておきます。

クライアントからParsec経由で接続してみる

接続元となるクライアントマシンで、https://parsec.app/downloads/ からParsecアプリをダウンロードし、インストールします。

アプリからログイン後、Computersに先ほど作成したHostマシンが表示されているはずです

CONNECTボタンを押して接続してみます。

正しく設定できていれば上記のように接続できます。

接続に失敗した場合、アプリにエラーコードとメッセージが表示されるので、以下のページを参考にして解決できないか探りましょう。

あとは普通にPCで作業したり、ゲームをしたりするのと同じです。かなりヌルヌル動くことがわかるでしょう。

ゲームの映像

実際にプレイしてみた映像を載せておきます。

ゲームにもよると思いますが、ストリーミングされた映像でも快適にプレイできました

インターネットの回線はそこそこ速くないときついかなと思います。

最後に

  • 手元にハイスペックなPCがなくてもクラウドでマシンを立ち上げてゲームができる
  • そんなにラグを気にしなくて良い
  • そこそこのグラフィック

といった特徴があるので、このクラウドゲーミングという選択肢もありなんじゃないかと思いました。

ゲームだけでなく、動画編集やプログラミングなどにも使えるので使い勝手は良いサービスだと思います。

個人利用が無料で 低遅延、60FPSデスクトップキャプチャ が使用可能なので、興味がある方は是非使ってみてください。

おまけ

有料でTeamsという機能もあり、これならコンピューターの管理、接続ユーザーの管理などもできて、場所を選ばずチームでいろいろな作業ができます。