ゲーミングPCをその場で召喚して遊ぶ(上級者向け)
はじめに
はじめまして。らんちゃです。
普段はAzureで各種サーバーや関連するリソースを作ったりその面倒を見ながら、データセンターに置いてあるものをクラウドに移行する仕事の傍ら、時々美少女の格好をしてVRChatで遊んでいます。
本稿では、そのいつでもどこでも美少女になりたいVRChatを出先でも快適にプレイしたいという欲求から生み出した、気軽に持ち運べるゲーミングPCを調達する方法を紹介します。
これから紹介すること
パブリッククラウドのAWSを使ってGPUがついたPC環境を時間借りし、ゲーミングPCとして利用する方法です。
この内容に沿うことで、RTX3090 or 4090相当のGPUがついたPCを約160JPY/hr(2025年1月現在)で借りられます。
実際に私はこの方法で、帰省先や旅先からVRChatで遊んでいます。
VRヘッドセットは携帯回線テザリング(帰省時は実家の光回線)で接続、H.265で映像ビットレート10Mbps程度の設定ですが、その割には画質が良く快適です。
※勝手にビットレート上げられているかもですが、快適に動くためちゃんと確認したことがなく不明。
携帯回線はdocomoとau両方用意しておけばまず困りません。両方悪いところは大抵だいぶ人里離れた場所なので、そういった場所では何もないことを楽しむのもまた一興です。
Starlink持ち歩いてもいいですがそこまでしますかね……
具体的な対象読者層
本稿は、次のようなことを考えている方に向けて書いています。
- 外出先でもPCでゲームできる環境がほしい。
- 強いGPUが使える環境が一時的にほしい。
- 場所を問わずGPUが使える環境がほしい。
- 具体的なシーンの例
- ゲーム仲間が集うのでLANパーティしたいが、ゲーミングノートを持っていない人がいる。
- ふらっと外出した先で暇なとき、ゲームをプレイしたい。
- 自宅、外出先を問わずに使える機械学習の環境がほしい。
- 新しいPCの購入を考えているが、買い換えると実際どんな感じで普段遊んでいるゲームをプレイできるようになるのか確認したい。
- 自宅では高スペックのPCでPCVRゲームを楽しんでいるが、外出先ではVRヘッドセット単機なので制限が多く辛い。これをなんとかしたい。
- 具体的なシーンの例
これからAWSやAzureのパブリッククラウドを利用する方に必要となる、アカウントのサインアップについてはあえて触れていません。
本筋に合わない内容でボリュームが膨らみ、読みにくくなってしまうためです。
いつでもどこでも狩りをしたり、美少女になりたいあなたへ
とても大事な、常に気にしておくべきことがあります。
それは「どのくらい使ったらゲーミングPCを買う金額を超えてしまうのか」ということ。
毎日2時間プレイし、ゲーミングPCの購入価格を35万円と仮定した場合、どの程度使うと購入価格を超えるのか計算すると次の通りになります。
(1ヶ月を31日として計算)
- 160JPY/hr x 2hr = 320JPY/day
- 320JPY/day x 31days = 9,920JPY/month
- 350,000JPY / 9,920JPY = 35.28month
約36ヶ月(3年)です。
これを常にはっきりと意識した上で使う必要があります。
このようなコスト意識を持ったまま使えるか不安だ、なんだか怖いと少しでも思った場合、本稿の内容はあなたにとって「やりたくてもできないこと」です。
省略した内容
先ほども触れたとおり、次の内容は省略しています。
このため本稿は、すでに利用中、または利用の準備が整ったAWS環境があることが前提です。
- AWSアカウントへのサインアップ
- アカウント作成、支払い方法設定
- サインアップしたルートアカウントの設定
- MFA, AWS Config, CloudTrail, Guard Duty, Security Hub, Cost Explorer
- 作業用ユーザーの作成
- VPCとEC2のフル操作、一部のIAM操作だけが可能なユーザーの作成。ないままルートユーザーで進めても大丈夫ですが、ベストプラクティスからすると作った方が良いです。(当然ですが作ると手順が変わる部分が多くなります)
私がルートアカウントの設定で参考にした記事はこれです。
上記記事が古いのは、私のAWSアカウント開設が2021年末だったからです。
「AWS はじめにやること」で検索するといろいろ出てくるので、企業が出している情報で共通点を見つつ、具体的な手順を説明している個人の方の記事を参考にすればこの部分を越えられるかと思います。
ほか、AWSの用語についてもその解説を省略しています。
準備作業
GPUインスタンスのクォータ引き上げ
大事なこと。この手順は必須です。デフォルトではGPUインスタンスを起動できないように、クォータが0になっています。
クォータ引き上げリクエストの起票後、対応完了までほぼ1日かかるので利用前日に申請してください。
(私の場合は、2024/08/10 AM6:49に申請、同日18:12に対応完了のメール通知を受信)
まず、東京リージョンを選択します。
AWSコンソール右上にある、地域名が表示されているドロップダウンをクリックし、東京(下図黄色の箇所)を選択します。
次に、AWSコンソール左上にある検索ボックスに「Service Q」とまで入力し、表示された候補からService Quotasを選択します。
Service Quotasの画面が開きます。
画面中央部「クォータの管理」に「EC2」と入力し表示された候補からAmazon Elastic Compute Cloud (Amazon EC2)を選択します。
Amazon EC2のクォータ管理画面が開きます。
検索ボックスに「g and」まで入力すると「All G and VT Spot Instance Request」が絞り込まれて表示されるので、この項目をクリックして選択し、「アカウントレベルでの引き上げをリクエスト」をクリックします。
クォータ引き上げリクエストの画面が表示されます。
利用したいCPUコア数を入力し、「リクエスト」をクリックします。
VPCとネットワークの作成
VPCの作成
ここからは東京リージョンが選択されていることを前提に進めます。
AWSコンソール左上にある検索ボックスに「VPC」と入力し、表示された候補からVPCを選択します。
VPCコンソールが表示されます。「VPCを作成」をクリックします。
VPCの作成画面が表示されます。各入力および選択項目は次のようにします。
この段階では、画面右側に表示されているプレビューを無視してください。
選択・入力項目 | 内容 |
---|---|
作成するリソース | VPCなど |
名前タグの自動生成(チェック) | 有効 |
名前タグの自動生成(入力欄) | (任意のわかりやすい名前) |
IPv4 CIDRブロック | 172.16.0.0/24[1] |
IPv6 CIDRブロック | Amazon提供のIPv6 CIDRブロック |
テナンシー | デフォルト |
アベイラビリティゾーン(AZ)の数 | 3 |
AZのカスタマイズ | (変更なし) |
パブリックサブネットの数 | 3 |
プライベートサブネットの数 | 0 |
サブネットCIDRブロックをカスタマイズ | (変更なし) |
NATゲートウェイ | なし |
Egress Only インターネットゲートウェイ | いいえ |
VPCエンドポイント | なし |
DNSホスト名を有効化 | 有効 |
DNS解決を有効化 | 有効 |
画像で示すと次のようになります。
ここまで入力し、右側のプレビューを改めて見て下図のようになっているか確認します。
大きな違いがなければ、「VPCの作成」をクリックします。
クリックすると作成が開始され、完了すると画面が下図のようになります。
セキュリティグループの設定
VPC作成完了後、完了画面右下の「VPCを表示」をクリックします。
クリック後、画面がVPCコンソールに戻ります。左側の項目一覧にある「セキュリティ」から、「セキュリティグループ」をクリックします。
すると、下図のような画面に変わります。
「セキュリティグループを作成」をクリックし、セキュリティグループの作成画面に遷移します。
最初に表示される下図の選択・入力項目は次のようにします。
選択・入力項目 | 内容 |
---|---|
セキュリティグループ名 | (任意のわかりやすい名前)[2] |
説明 | (セキュリティグループの名前に対するわかりやすい説明) |
VPC | (先の手順で作成したVPCを選択) |
次に、インターネットに向けて開放する必要があるポートの設定をします。
開放する必要があるポートは下記の通りです。
Port | Application |
---|---|
3389 | RDP |
8443 | Amazon DCV (RDP alternative) |
38810 | Virtual Desktop |
38820 | Virtual Desktop |
38830 | Virtual Desktop |
38840 | Virtual Desktop |
そのまま画面を下方にスクロールし、「インバウンドルール」を表示させます。
この段階では下図のように、何も登録されていないはずです。
「ルールを追加」をクリックし、入力欄を表示させて次の内容を設定します。
1行分入力を終えたら「ルールを追加」をクリックして入力する、という操作を繰り返してください。
全12件あります。
タイプ | プロトコル | ポート範囲 | リソースタイプ | ソース | 説明 - オプション |
---|---|---|---|---|---|
RDP | TCP | 3389 | Anywhere-IPv4 | 0.0.0.0/0 | RDP - TCP |
カスタムUDP | UDP | 3389 | Anywhere-IPv4 | 0.0.0.0/0 | RDP - UDP |
カスタムTCP | TCP | 8443 | Anywhere-IPv4 | 0.0.0.0/0 | Amazon DCV - IPv4 |
カスタムTCP | TCP | 8443 | Anywhere-IPv6 | ::0/0 | Amazon DCV - IPv6 |
カスタムTCP | TCP | 38810 | Anywhere-IPv4 | 0.0.0.0/0 | Virtual Desktop 38810 - IPv4 |
カスタムTCP | TCP | 38810 | Anywhere-IPv6 | ::0/0 | Virtual Desktop 38810 - IPv6 |
カスタムTCP | TCP | 38820 | Anywhere-IPv4 | 0.0.0.0/0 | Virtual Desktop 38820 - IPv4 |
カスタムTCP | TCP | 38820 | Anywhere-IPv6 | ::0/0 | Virtual Desktop 38820 - IPv6 |
カスタムTCP | TCP | 38830 | Anywhere-IPv4 | 0.0.0.0/0 | Virtual Desktop 38830 - IPv4 |
カスタムTCP | TCP | 38830 | Anywhere-IPv6 | ::0/0 | Virtual Desktop 38830 - IPv6 |
カスタムTCP | TCP | 38840 | Anywhere-IPv4 | 0.0.0.0/0 | Virtual Desktop 38840 - IPv4 |
カスタムTCP | TCP | 38840 | Anywhere-IPv6 | ::0/0 | Virtual Desktop 38840 - IPv6 |
アウトバウンド設定ルール、タグは何も変更せずそのままにします。
ここまで終えたら、「セキュリティグループを作成」をクリックします。
作成を終えると、このようになります。
ゲーミングPCの調達
ここからはPC本体を入手するための手順になります。
ゲーミング用途に使えるインスタンスファミリーの早見表
AWSが提供するEC2インスタンスファミリーのうち、ゲーミング用途に利用できるのは次の通りです。
- g4ad (AMD Radeon Pro V520, VRAM 8GB/HBM2 2048bit)
- g4dn (NVIDIA Tesla T4, VRAM 16GB/256bit)
- g5 (NVIDIA A10G, VRAM 24GB/384bit)
- g6 (NVIDIA L4, VRAM 24GB/192bit)
- g6e (NVIDIA L40S, VRAM 48GB/384bit)
また、それぞれのGPUに対応するコンシューマー向けGPUは次の通りです。
搭載GPU | 対応するコンシューマー向けGPU |
---|---|
Radeon Pro V520 | RADEON RX 5700 |
Tesla T4 | Geforce RTX 2070 |
A10G | Geforce RTX 3090 |
L4 | Geforce RTX 4070 |
L40S | Geforce RTX 4090 |
EC2インスタンスファミリーそれぞれの最小構成は次の通りです。
ファミリー名 | コア数 | メモリ | 備考:CPU世代 |
---|---|---|---|
g4ad | 4 | 16GB | Zen2 |
g4dn | 4 | 16GB | Cascade Lake (Core i9 109xxX/XE, LGA2066) |
g5 | 4 | 16GB | Zen2 |
g6 | 4 | 16GB | Zen3 |
g6e | 4 | 32GB | Zen3 |
最小構成のものはg4adを例にすると、g4ad.xlarge
と表現されます。
最小構成比でコア数、メモリ容量が2倍になるものはg4ad.2xlarge
と表現され、時間単価もまた同様に比例します。
最大何倍のものまで提供されるかは、インスタンスファミリーによって異なりますが、通常は2xまたは4xのものを選んでおけばプレイに支障はないものと想定されます。
g6ファミリーは唯一私が利用したことがないものですが、搭載しているGPUはDirectXにも対応するためそのまま利用は可能と考えられます。
AMD Zen系はいわゆるCCDまたぎによるパフォーマンス劣化が懸念されるのですが、EC2インスタンスはAWSが用意した仮想環境上で提供されるものであるため、それを考慮する必要性はほぼないかと考えられます。
(VRChatのaffinityオプションを設定する意味はないだろうということです)
インスタンスの作成
AWSコンソール左上の検索ボックスに「EC2」と入力します。
候補で出てきた「EC2」を選択します。
EC2コンソールに移ります。画面ほぼ中央にある「インスタンスを起動」をクリックします。
最初に見えている部分で選択・入力する項目は次のようにします。
選択・入力項目 | 内容 |
---|---|
名前とタグ | (任意の名前) |
アプリケーションおよびOSイメージ | Microsoft Windows Server 2025 Base |
インスタンスタイプ | 前節より適宜選択 |
画像で見るとこのようになります。
インスタンスタイプからGPU付きのものを選べない場合
インスタンスタイプを選ぼうとしたとき、グレーアウトして選べないことがあります。
これは、インスタンスを作ろうとしているアベイラビリティゾーンがap-northeast-1d
になっているのが原因です。
画面を下にスクロールし、「ネットワーク設定」の「サブネット」からアベイラビリティゾーンをap-northeast-1a
またはap-northeast-1c
に切り替えることで、選べるようになります。
ほか、リージョンとアベイラビリティゾーンごとにどのインスタンスタイプが選べるか調べ、まとめてくださったものがありましたのでそのリンクを貼っておきます。
「利用可能なAZ」の「ap-northeast-1」を確認してください。
公開鍵ペアを作成する
次に、公開鍵ペアを作成します。
これはインスタンス作成後、リモートデスクトップ接続に必要なユーザー名とパスワードを取得するために使用します。
そのため、ここで作成および保存した情報は、他人がおよそ知ることのできないところに保管する必要があります。
画面を下にスクロールし、「キーペア(ログイン)」の「新しいキーペアの作成」をクリックします。
キーペアの作成画面が表示されます。
選択・入力する項目は次のようにします。
選択・入力項目 | 内容 |
---|---|
キーペア名 | (ご自身であとからでもわかりやすい名前) |
キーペアのタイプ | RSA |
プライベートキーファイル形式 | .pem |
上記の通り入力および選択した例が次の画像になります。
ここまで終えたら「キーペアの作成」をクリックします。
まもなくして自動で作成された拡張子pemのファイルがダウンロードされるので、それを他人がおよそ知ることのできないところに保管します。
ダウンロードが終わるとこの部分は次の画像のようになります。
接続先ネットワークの選択と設定をする
さらに画面を下にスクロールして、ネットワーク設定の項目を表示させます。
ここで、作成したゲーミングPCを接続するネットワークの設定をします。
「ネットワーク設定」の項目右端にある「編集」をクリックし、設定内容を展開した上で全体を見るとこのようになります。
それぞれの項目を次のように設定します。
選択・入力項目 | 内容 |
---|---|
VPC | (先ほど作成したVPC) |
サブネット | (ap-northeast-1d 以外にあるサブネット) |
パブリックIPの自動割り当て | 有効化 |
IPv6 IPを自動で割り当てる | 有効化 |
ファイアウォール(セキュリティグループ) | 既存のセキュリティグループを選択する |
共通のセキュリティグループ | (先ほど作成したセキュリティグループ) |
IP割り当ての部分は既定では「無効化」になっているので、「有効化」に変更します。
ファイアウォール(セキュリティグループ)は下図を参考にご自身で作成したものを選択してください。
選択すると下図のようになります。
OSが入るディスク領域を64GBにする
ネットワーク設定の項目の下に、Cドライブになるディスクの容量を設定する箇所があります。
標準では下図の通り30GBです(無料で利用できるサイズの上限)。
このままではSteamVRなど、必要なランタイム等インストールしただけであっという間に埋まってしまうので、適当に64GBに増やしておきます。
インスタンス作成時Dドライブに当たるディスク領域も同時に割り当てられますが、この容量は選んだインスタンスタイプとサイズにより異なります。
実際に割り当てられる容量は「インスタンスストアボリューム」の項目右端にある「詳細を表示」をクリックすることで確認できます。
(この例で選択したg6.2xlarge
では450GBになることがわかります)
64GBに増やしたCドライブに当たる部分は従量課金で請求されますが、このインスタンスストアボリュームに関してはサイズにかかわらず無料で利用できます。
スポットインスタンスを指定し、スポットリクエストの永続化を有効にする
作った環境を残せるようにし、安く使うために大事な設定です。
ディスク領域のサイズを設定した箇所のすぐ下にある、「高度な設定」の項目名をクリックします(クリックと同時に設定項目が展開されます)。
展開後、下にスクロールして「購入オプション」の項目を見つけてください。
見つけたら、「スポットインスタンス」を選択し、さらに「スポットインスタンスオプションのカスタマイズ」をクリックします。
ここまで操作すると、下図の通りに画面が変わります。
それぞれの項目を次のように設定します。
選択・入力項目 | 内容 |
---|---|
購入オプション | スポットインスタンス |
最高料金 | 最高料金なし |
リクエストタイプ | 永続 |
有効期間終了 | リクエストの有効期限なし |
中断動作 | 停止 |
設定すると下図の通りになります。
インスタンスの作成
ここまできたら、画面最下部「概要」にある「インスタンス数」が「1」になっていることを確認し、「インスタンスを起動」をクリックします。
数分するとまっさらなWindows Server 2025の入ったGPU付きマシンが立ち上がります。
インスタンスが起動すると下図の画面になるので、「すべてのインスタンスを表示」をクリックします。
S3アクセス権(読み取り専用)の割り当て
以降の手順でインストールするGPUドライバの取得と、使用するリモートデスクトップソフトウェア(Amazon DCV)を使うために必要な手順です。
先の手順で「すべてのインスタンスを表示」をクリック後、画面上部の検索ボックスに「IAM」と入力し表示された候補から「IAM」を選択します。
IAMコンソールが開きます。「ロール」をクリックします。
ロールの管理画面が開きます。画面右上「ロールを作成」をクリックします。
ロールの作成ウィザードが開きます。
それぞれの項目を次のように選択し、「次へ」をクリックします。
選択・入力項目 | 内容 |
---|---|
信頼されたエンティティタイプ | AWSのサービス |
サービスまたはユースケース | EC2 |
ユースケース | EC2 |
上記の通り選択すると下図の通りになります。
「許可を追加」が表示されます。
下図の通りに検索ボックスに「s3read」と入力し、絞り込まれた候補「AmazonS3ReadOnlyAccess」を選択して「次へ」をクリックします。
「名前、確認、および作成」が表示されます。
それぞれの項目を次のように入力し、「次へ」をクリックします。
選択・入力項目 | 内容 |
---|---|
ロール名 | allow-ec2-to-get-software-license |
説明 | Allow S3 read-only access to EC2 instances to get GPU drivers and Amazon DCV license. |
入力後、この画面の各項目が下図の通りになっていることを確認し、「ロールを作成」をクリックします。
ロールの作成が完了すると、IAMコンソールに戻ります。ここからEC2コンソールに移動します。
「インスタンス」をクリックし、右側の一覧で「実行中」となっているものにチェックを入れます。
一覧上部の「アクション」をクリックし、「セキュリティ」、「IAM ロールを変更」をクリックします。
IAMロールの変更画面になります。ドロップダウンをクリックして展開し、先ほど作成したIAMロールを選択します。
選択後、「IAM ロールの更新」をクリックします。
正常にアタッチしたメッセージが出れば完了です。
プレイ環境の構築
リモートデスクトップ接続
一覧で作成したインスタンスにチェックが入っていることを確認し、「アクション」をクリック、「接続」をさらにクリックします。
「インスタンスに接続」画面が表示されます。画面上部のタブで「RDPクライアント」を選択します。
下図の画面に変わるので、「リモートデスクトップファイルのダウンロード」をクリックします。
ダウンロード後、同じ画面下部にある「パスワードを取得」をクリックします。
「Windowsパスワードを取得」画面が表示されます。「プライベートキーファイルのアップロード」をクリックし、キーペア作成時に自動でダウンロードされたファイルを指定します。
ここまで問題なければ、下図のようになります。なっていれば「パスワードを復号化」をクリックします。
画面が戻り、復号化されたパスワードが表示されます。
先ほどダウンロードしたリモートデスクトップファイルを開き、ユーザー名とパスワードにこの画面で表示されている情報を入力して接続します。
セットアップスクリプトの実行
拙作ですがParsec公式のものをForkして作ったものがあるので、これを使ってください。
リンク先を開き、「Code」をクリック、さらに「Download ZIP」をクリックします。
ダウンロードしたファイルをリモートデスクトップ先のデスクトップにコピー&ペーストします。
デスクトップにペーストできたら、ファイルを展開します。
右クリックして「Extract All」をクリック後、ウィザード右下の「Extract」をクリックします。
ファイルが解凍されたら、中身をデスクトップに移動します。
移動してこのようになれば問題ありません。
移動後、Loader.ps1
をShiftキーを押しながら右クリックし、「Copy as Path」を選択します。
スタートメニューをクリックし、Windows PowerShellを起動します。
起動したら先ほどコピーしたパスを貼り付けます。貼り付けると両端に二重引用符がつくのでそれを削除します。
削除後、Enterキーを押します。大量のエラーが流れますが、セットアップ自体は正常に行われています。
完了すると自動でPowerShellのウィンドウが閉じます。
日本標準時に設定する
タスクバー右端の日時表示を右クリックし、「Adjust date and time」をクリックします。
時刻と言語の設定画面が開きます。「Time zone」のドロップダウンをクリックし、下にスクロールして「UTC +09:00 Osaka, Sapporo, Tokyo」を選択します。
日本標準時になれば完了です。
ドライバのセットアップ
スタートメニューをクリックし、Windows PowerShellを起動します。
下記のリンク先を開きます。
「Windows オペレーティングシステム」の項(青枠)を開きます。
「Windows インスタンスに NVIDIA ゲームドライバーをインストールするには」を参照し、そこにあるコードのコピーボタン(青枠)をクリックします。
起動しておいたPowerShellのウィンドウにコピーしたコードを貼り付けます。
警告が出ますが「Paste anyway」をクリックします。
貼り付け後少し待ち、下図のようになったらEnterキーを押します。
するとドライバのダウンロードが始まります。
ダウンロード中はこのようになります。
下図のようになるとダウンロード完了です。
完了後、デスクトップにあるNVIDIAフォルダを開き、その先にあるセットアップファイルを開いてドライバをインストールします。
(インストール画面は日本語版のそれが英語になっただけで、ほかは変わりません)
Amazon DCVのインストール
次のリンク先をリモートデスクトップ内のEdgeで開きます。
「Amazon DCV 2024.0 Server」をクリックし、展開された項目内の「Windows (x86_64)」をクリックします。
セットアップファイルがダウンロードされます。ダウンロード完了後、それを開いてAmazon DCVをセットアップします。
セットアップウィザード中の次の3つの画面は、何も触らずそのままで続行します。
1つめ
2つめ
3つめ
セットアップウィザードが終わればAmazon DCVのインストールは完了です。
データ用ディスクの準備
Steamのゲーム等をインストールする先になるデータディスクを準備します。
今回データディスクとして使用するのは、インスタンス作成時に自動で追加された「インスタンスストアボリューム」です。
スタートボタンを右クリックし、「Disk Management」をクリックします。
「ディスクの管理」が起動します。起動したら下図のウィンドウが表示されるので、内容が下図と同じことを確認して「OK」をクリックします。
「Disk 1」の「Unallocated」となっている、横に伸びた白い部分を右クリックし、「New Simple Volume」をクリックします。
下図の画面になります。
「Next」を繰り返し押して下図の通りになっていれば「Finish」をクリックします。
下図の通りになればデータ用ディスクの準備は完了です。
Steamのインストールと設定
Steam公式のサポートページの内容に準じます。
「ゲームのインストール先をデフォルトの場所から変更する方法は?」を参照ください。
(VRの場合)マイクへのアクセス有効化
動作テストを同時に行うため、Virtual Desktopで接続したあとで行います。
これを行わないと、VRで相手の声は聞こえるものの自分の声が出せません。
(追記予定)
利用方法
Amazon DCVクライアントの準備
サーバー側の準備と同様、Amazon DCVのダウンロードページを開きます。
「Amazon DCV 2024.0 Client」の項を開き、インストール版かポータブル版をダウンロードします。
Amazon DCVで接続する
インストールもしくは解凍後、Amazon DCV Clientを実行します。
最初に接続先を入力します。
この接続先は、EC2コンソールの黄色の箇所からコピーできます。
セキュリティの確認が表示されます。「Trust and Connect」をクリックします。
続けてユーザー名とパスワードを聞かれますが、これは手順「リモートデスクトップ接続」の時と全く同じ手順で取得、入力します。
入力後、Amazon DCVによるリモートデスクトップ接続が確立されます。
デフォルトでは解像度が1280x720なので、特に何も気にならなければ1920x1080にすることを推奨します。
利用時の注意
環境構築に使ったPC
電源設定
スタンバイまたはスリープに落ちないようにする必要があります。
どちらかに落ちると、VRもつられて落ちます(詳細な理由は不明)。
もう市場で見かけないものの、ひたすらマウスカーソルを回す操作をエミュレートするUSBデバイスを接続しておくのも良いです。
有機ELディスプレイのノートPCでは
電源設定で画面は消えないようにしつつ、カバーを閉じてもスタンバイ・スリープに落ちないようにします。
利用中は画面焼き付きを防ぐためディスプレイを閉じます(強く推奨)。
閉じない場合は、画面輝度を最低に下げ、背景を黒一色にし、ダークテーマを適用してください。
構築したプレイ環境の取り扱いについて
利用後は必ず停止させる
OSからのシャットダウン操作をするか、AWSコンソールから「インスタンスの停止」を選んでください。
そうしないと、CPUとメモリのリソースを使った(=OSが動いている)時間に応じて課金され続け、Windowsのライセンス費用も同時に上乗せになるので、高額な請求が発生する原因になります。
OSのディスク領域は使用料がかかり続ける
プレイ環境が次の2つの別々のサービスで成り立っていることによります。
- プレイ環境のCPU・メモリ・GPU: EC2 (Elastic Compute Cloud)
- OSを入れたディスク: EBS (Elastic Block Store)
後者が確保しているディスクサイズと確保した時間に応じて課金されるため、プレイ環境が停止していて課金が発生しない状況でも、ディスク領域上のデータを保持するために課金されます。
インスタンスの終了またはスポットリクエストの削除をするとき
この手順で構築したプレイ環境について、マシン内に保存されたデータ含めてすべて破棄して、なかったことにするのと同じ操作になります。
当然ですが、あとから元に戻せないことを理解したうえで実行してください。
削除前に、VRChatのカメラで撮影した画像を、必ずほかの場所に逃がしましょう。
Steamのスクリーンショット機能で撮影した画像も同じです(ただし、Steamクラウドにアップロードが済んでいるものは別です)。
このとき、AWSから外部に送信する方向の通信は送信データ量に応じた料金がかかるので、あまりに大きい場合は適切な画像形式に圧縮をかけることをオススメします。
ありそうな質問と回答
スポットインスタンスは、その性質上途中で利用を強制中断されることがあると聞いています。どう備えたらいいでしょうか。
とても良い質問です。
ご存じの通り、AWSのスポットインスタンスは利用中に強制中断(突然の事前通知のあとシャットダウン)されるリスクがあります。
しかし、実際にはその可能性は低く、数時間だけ使う用途では気にする必要性はないものと考えられます。
強制中断されてもそのアクションを「停止」としたため、用意した端末の環境が失われることはありません。単にシャットダウンされるだけです。
【参考資料】
参考記事ではParsecを使っていますが、なぜそれを使わなかったのですか。
いくつか明確な理由があります。
私も最初は使っていましたが、次の理由で使うことをやめました。
具体的には、2024年8月の利用初期のみ使い、9月以降はAmazon DCVに切り替えています。
- 機能面でOS標準のものにさえ劣る
- キーボード配列の違いを考慮した動作ができない
- 記号類を入力する際に、違った記号が入力される
- ログイン画面にコピペ不可なので、ログインがスムーズにできない問題が生じる
- リモートデスクトップ接続、後述のAmazon DCVでは仕組み上起きない
- 日本語・英語両方のキーボードに慣れた私ですらこうなる
- 記号類を入力する際に、違った記号が入力される
- キーボード配列の違いを考慮した動作ができない
- 本来不要なはずのユーザー情報登録が必要
- わざわざメールアドレス、ユーザー名、パスワードをサービスに登録しなければ、相互接続の確立ができない
- どの程度ユーザーに支持されているのかわからないものに、ここまでする必要性がかえって気味悪く感じた
- 機能面で劣るアプリケーションを触って、この気味悪さは嫌悪感に変わった
- わざわざメールアドレス、ユーザー名、パスワードをサービスに登録しなければ、相互接続の確立ができない
- Amazon DCVというAWSが公式提供するリモートデスクトップツールがある
- Parsecと同じで、動画コーデックを利用した高速リモートデスクトップを実現できる
- 全般的にOS標準のリモートデスクトップ接続と同様の動作で、違和感なく使える
- 利用に際してユーザー情報登録を要求されない
TeamViewerは?とも聞かれそうですが、ここで実現してほしい機能は単に構築したEC2インスタンスのディスプレイの代わりであり、あそこまで高機能なものを私は積極的に使う気にはなれませんでした。
なぜパブリッククラウドでゲームをするという発想になったのですか?
事の発端はこの記事でした。
この数年後、VRヘッドセットとゲーミングPC、新しいノートPCを持ったVRChatの沼に沈んで間もなかった私は、出先でどうやったら自宅のゲーミングPCと変わらないプレイができるか考えました。
最初は外付けGPUの導入も考え、お店で試して見るもintel内蔵GPUとの相性が悪く断念(SteamVRがまともに機能しない)。
新しいノートPCはそこそこ強いとはいえ内蔵GPU、動作がかなりきつい。
ならば?と思い上の記事を思い出し、先人の事例を当たって今に至ります。
ゲーミングノートの導入も最初考えましたが、携帯性が犠牲になること、ハードウェアの陳腐化が普通のモバイルPCよりも遙かに早くなることを理由に、それを断念しました。
自宅PCと直接Virtual Desktopで接続するのと比べた利点は何ですか?
これもよい質問です。
何を重視するかで決めればよい問題ではあるのですが、具体的には次かと考えています。
- ほしいときにほしい分だけ使えて無駄がない
- 気分でスペックを変えることもできる
- ノートPCではまず実現不能なスペックにできる
- 稼働が保証された環境での実行で信頼感がある
- 稼働率99.99%以上を保証
- ソフトウェア面の環境は、新規構築すればクリーンインストール直後と変わらない
- 回線品質も高く、ネットワーク上の問題が起きた場合は手元の機器だけを疑えばよい
- 問題が起きた際、切り分けポイントの簡略化ができるという意味
- トラブルが発生してもその場ですべて対応可能
- 最悪、環境を作り直すにしてもその場でWebコンソールを叩けばよい
- 自宅PCで遠隔対応不能な問題が起きると、以後何もできず諦めるしかない
- 例:電源周りやネットワーク機器の問題
デメリットは当然、使えば使った分だけ課金される従量課金の体系です。
自宅PCであれば、この要素は電気代のみです。
謝辞
本記事作成に当たり数多くのWeb上の資料を参照しました。参照した資料を執筆された方々に感謝申し上げます。
参考資料
Discussion