Google Cloud で resonite ヘッドレスサーバ を構築する¶
この記事は resonite の Headless Client(通称ヘッドレスサーバと呼ばれている為、以下ヘッドレスサーバと記載します) を Google Cloud 上で動かす手順です。
resonite は開発スピードが速い為、基本的には最新情報を確認してください。 本手順は 3 ヶ月程度で使えなくなる可能性があります。
Google Cloud は Google Cloud Shell を使用してコマンドラインで操作します。
誰向けの記事?¶
下記の全てに当てはまる方向けです。
既に Windows 上で ヘッドレスサーバ を起動することが苦でない方(参考 【手順解説】Resoniteヘッドレスサーバの建て方!(By akiRAMさん) )
現在 .NET9 Runtime が必要。Windows の場合は下記コマンドでインストール可能です
winget install Microsoft.DotNet.Runtime.9
注釈
手順を実行する為にはヘッドレスサーバの概要を理解しており、ヘッドレスサーバを利用開始する為の条件をクリアしている必要があります。 Windows 版を起動することにより理解することが可能です。Linux 版はその時々の不具合でハマることがあるので最低限 Windows の起動が問題ないことを確認してください
Linux ディストリビューションでコマンドを打つのに抵抗が無い方(※Ubuntu24.04を使用します)
Google Cloud に興味がある方
概要¶
Google Cloud の VPC を作成し Google Compute Engine のインスタンス(VM=仮想マシン)上にヘッドレスサーバを構築します。 本手順は、構築/削除/再構築のサイクルが回しやすいように作られています。また、2~3ヶ月毎に再作成することをお勧めします。
改善点があれば resonite でお会いした時に教えてください。 または プルリクエスト をくれても良いです。
前提条件¶
resonite ヘッドレスサーバを Google Cloud で建てるオススメ を一読してください。
Google Cloud Shell が利用できる環境であること
作業端末がインターネットに接続している必要があります
作業端末で Web ブラウザが利用できる必要があります
Linux ディストリビューションを CUI 操作できること
bash 等のシェルを扱えること
クレジットカードが使える方( Google Cloud への支払いが発生します)
警告
起動時間の料金がかかります。 本手順を実行し、すぐにインスタンスを停止した場合は数十円かかります。 本手順で使っているインスタンスタイプ(t2d-standard-2)を1か月起動しっぱなしにした場合は、 1万2000円程度かかってしまうので、必要な時以外は停止することを忘れないようにしましょう。
構築及び設定するクラウドリソース¶
※ Google Cloud や AWS その他パブリックラウドをある程度知ってる方向けなので、よくわからない方は読み飛ばしてください
VPC
サブネット
VPC ファイアウォール
Compute Engine のインスタンス(VM=仮想マシン)
Secret Manager のシークレット
構築するヘッドレスサーバについては こちら を確認してください。
準備作業の流れ¶
Google Cloud を契約しクレジットカード登録する(省略)
Google Cloud Shell をセットアップする
mise、fzf をインストールする
${HOME}/.bashrc
を作成する
Steamガードをオフにする
Google Cloud Shell をセットアップする¶
ブラウザで Google Cloud Shell にアクセスします https://shell.cloud.google.com
Google Cloud のプロジェクトを指定します
作業用リポジトリをクローンします
git clone https://github.com/usaturn/resonite-headless-infra.git
Google Cloud Shell セットアップ用チュートリアルを起動します
teachme resonite-headless-infra/setup-cloudshell.md
teachme コマンドを打つとブラウザの右側にチュートリアルが表示されますので指示に従ってください
注釈
- Google Cloud Shell は毎回 ${HOME} のみ保持をして(120日間)、それ以外は Google 標準のイメージをマウントする関係上、
sudo apt install ~ でインストールをしても次回起動時に消えてしまいます。 ツール類は mise で ${HOME} 配下にインストールすると良いでしょう
Google Cloud Shell に 120 日間アクセスしないと ${HOME} は初期化されてしまうので、初期化されてしまった場合は初めから設定仕直しする必要があります
注釈
Google Cloud Shell 手順がうまくいかなくなった、環境が壊れてしまったという場合は初期化し、手順を初めからやり直してください
削除コマンドを打ちます
# 削除するファイルを確認する ls -a $HOME # ユーザディレクトリを削除する(全て消えるので注意) sudo rm -rf $HOME
右上の三点リーダーをクリックし、再起動をクリックします
「VMの状態をクリーンにしたい」にチェックして再起動をクリックする
Steamガードをオフにする¶
steamcmd を自動でインストールする為に、Steamガードをオフにします。 一般的にはセキュリティ上、推奨されていないことに留意してください。 また、使用する各アカウント(Steam アカウントと及び resonite アカウント)はセキュリティ上、 必ずヘッドレスサーバ専用でクレカ登録せずに 作成してください。
Windows で Steam を起動します
メニューの Steam をクリックし、設定をクリックします
セキュリティをクリックします
Steam ガードを管理 をクリックします
Steam ガードをオフ をチェックします
Steam ガードを無効化 をクリックします
Steam に登録したメールアドレスへ Steamガード無効化の確認 というタイトルでメールが届くのでメールを見て STEAMガードを無効にする をクリックしてください
注釈
Steam ガードを有効にしたままでは、steamcmd を自動インストールできない為、無効化しています。 サーバ構築後は、Steam ガードを有効に戻すことをお勧めします
Google Cloud にインフラを構築する¶
Google Cloud Shell のターミナルでヘッドレスサーバ構築用チュートリアルを起動します
cd ~/resonite-headless-infra teachme setup-headless-infra.md
ヘッドレスサーバ が起動して他のアカウントが参加できたら成功です。
明日の記事 へ続きます。
環境を削除する¶
必要なくなったら一旦環境を削除しましょう
# インスタンスを削除する
gcloud compute instances delete ${RESONITE_HEADLESS_SERVER_INSTANCE_NAME}
# ファイアウォールルールを削除する
gcloud compute firewall-rules delete allow-iap-forwarding-to-resonite-headless
# サブネットの割り当てを外す
gcloud compute networks subnets delete "${SUBNET_NAME}" --region ${REGION}
# VPC を削除する
gcloud compute networks delete ${VPC_NAME}