✨
Terraformを使ってパルワールド - Palworld の専用サーバーをGoogle Cloudにさくっとたてたい
パルワールド、おもしろいですよね
仲間内でいつでも遊べる環境を作りたいということで、専用サーバーをたてたい!
せっかくならTerraform使ってやってみようということでやってみました。
※雑に書いてる部分あとで加筆します
概要
-
https://github.com/sbleru/my-palworld/blob/main/infra/terraform/README.md
- の設定方法を順に追って説明する
- 対象
- パルワールドの専用サーバーたてたいけどよくわかってない
- Google Cloud がなんとなくわかる(分からなくてもなんとかなるかも)
- Terraform がなんとなくわかる(分からなくてもなんとかなるかも)
- ※技術的な説明、現時点(2024/02/04)では書けてないです
手順
CLI インストール
- gcloud cli のインストール
- terraform cli のインストール
Google Cloudのプロジェクトを作成する
- https://console.cloud.google.com/projectcreate へアクセスして作成する
- GCEを利用するため、APIを有効にする
gcloud services enable compute.googleapis.com
パルワールドサーバーの各種設定
設定用のファイルを作成する
git clone https://github.com/sbleru/my-palworld
cd my-palworld/infra/terraform/env/dev/service/palworld-server
touch terraform.tfvars
terraform.tfvars
ファイルを開き、各種設定する
project_id = "your_project_id"
server_password = "pass"
admin_password = "admin_pass"
palworld_server_name = "Aincrad"
palworld_server_description = "これは、ゲームであっても遊びではない"
palworld_server_tz = "JST"
- project_id
- 作成したGoogle Cloud ProjectのIDを設定
- server_password
- これが専用サーバーに入るときのパスワードになります
- admin_password
- wip
- palworld_server_name
- 専用サーバーの名前。みんなで決めましょう。
- palworld_server_description
- 専用サーバーの説明。
- palworld_server_tz
- タイムゾーン。ゲームデータのバックアップの時間などに影響します。
補足
- 内部的に、こちらのdockerを利用している。
- 上記以外のパラメータはデフォルト設定にしている。いじろうと思えばいじれる。
インフラを構築する
# infra/terraform/env/dev/service/palworld-server にいる想定
# アカウントとプロジェクトの設定。
gcloud config set account <your email>
gcloud config set project <your google cloud project id>
# これにより、terraformにGCPのアクセス権限を与える
gcloud auth application-default login
# terraformのstate管理のバケットを作成
gsutil mb gs://dev-my-palworld-tfstate
# 適用
terraform init
terraform plan -var-file terraform.tfvars
terraform apply -var-file terraform.tfvars
パルワールドの専用サーバーにアクセスする
GCEの外部アドレスを確認する
Steamでパルワールドを立ち上げて、専用サーバーへアクセスする
パスワードのチェックをつけ、IPアドレス部分をコンソールで確認した外部IPアドレスに書き換えて接続する
※terraform applyから5分ほど待たないと起動していない可能性があります
さあ、はじめよう
おわりに
サーバー立てっぱなしだと、パルワールドしていなくてもお金がかかってしまうので、遊ぶときに起動する方針がいいと思います。仲間内で相談して決めましょう。
Discord Botでさくっと起動するやつも作りたい。
月のBillingをStripeとか使って割り勘するやつも作りたい。
あと、さくっと専用サーバーをたてることにフォーカスして書いた記事だけど、もう少し技術的なことも別途書けたら書きたい
- Terraformの構成
- GCE起動スクリプト
- etc
Discussion