このプロジェクトについて

aws_cloud_gaming を使うと、AWS GPU インスタンス上に個人用の Linux ゲーミングデスクトップを立ち上げ、Tailscale VPN 経由で Sunshine と Moonlight を使って任意のデバイスにストリーミングし、終了時にインスタンスを破棄できます。ゲームと Steam セッションは次回のために S3 に保存されます。 CLI ツール `cg` がライフサイクル全体を処理します: - `cg check --fix` はノート PC に不足している依存関係 (AWS CLI、Tailscale、Moonlight、OpenSSH、curl、python3) を pacman、apt、dnf、zypper のいずれかでインストールします。 - `cg init` は SSH キーペア、ゲーム保存用の S3 バケット、IAM ロール、予算アラート、クラウドウォッチドッグを作成し、NVIDIA ドライバー、デスクトップ環境、オーディオ、Sunshine、Steam、Tailscale を備えたボックスを構築します。Moonlight のペアリングと、選択したアーカイブ済みゲームの復元も行います。 - `cg open` はストリーミングを開始し、終了時にボックスを破棄するかどうかを尋ね、ゲームと Steam ログインを S3 に保存します。 - `cg destroy` はゲームを S3 に保存し、課金を停止するためにインスタンスを削除します。 - `cg status`、`cg cost`、`cg games`、`cg library list` はインスタンスの状態、支出、Steam のアクティビティ、アーカイブ済みゲームを報告します。 コスト保護には、プレイをやめるとボックスをシャットダウンするアイドルウォッチドッグ、AWS 予算アラート、独自の IAM ロールを持つクラウドウォッチドッグが含まれます。コスト削減のため、デフォルトではスポットインスタンスが使用されます。README では、これが実際の AWS アカウントで実際にお金を使うこと、および GPU クォータが承認された有料の AWS プランが必要であることが明示的に警告されています。 オプションのデスクトップ GUI アプリ (Node.js) は同じ `cg` コマンドをラップし、インスタンスの状態、支出、アーカイブの内容、ガードの状態、およびステップバイステップのビルドビューを表示します。GUI 自体は AWS ロジックを一切持たず、`cg` を実行してその出力をレンダリングするだけです。 追加機能には、`GAME_NTFY_URL` が設定されている場合の ntfy による携帯電話への通知、`TAILSCALE_API_KEY` が設定されている場合の古い Tailscale エントリの自動クリーンアップ、同じ tailnet に参加することによるマルチデバイス対応 (携帯電話、テレビ) が含まれます。Ubuntu 24.04 および ap-south-2 の g6.xlarge インスタンスでテストされ、Arch ベースの Linux クライアントにストリーミングされました。