Tuesday,November 15

GCPでウェブサーバ構築チャレンジ・9【閑話休題】 (1 photos)

GCPでウェブサーバ構築チャレンジ、9ログ目。
現在、ローカルPCじょうから新ウェブサーバに移行するための準備中です。
本番の実務データを扱うため、慎重に進めています。
完全なデスクワークです。

そのあいだ、なにもしないのもGCPがもったいありません。
趣味的なことなどしてGCPとサーバのあつかいに慣れておこうと、PCゲームのひとつ「7 days to die」のマルチサーバーをGCPで構築してみました。今回のログはそのときのメモです。

GCPでウェブサーバ構築チャレンジ・9【閑話休題】_sb_01.jpg

7 days to dieはサンドボックス、クラフティング、ゾンビサバイバルの要素が詰まったゲーム。資源を収集して、アイテムを工作(クラフティング)したり建築(ビルディング)をしたりしてゾンビ世界を生き抜くというB級映画のようなコンセプト。プレイ画面は一人称視点。スタートすると広大なマップになけなしのアイテムと一緒にたったひとりで放り出される。複数のプレイヤーと一緒に遊べるマルチプレイは人気。力を合わせてサバイバルしたり、ゾンビそっちのけで残り少ない食料や資源を奪いあうなどB級映画さながらの展開も



参考にしたのは「7 days to die」の日本語Wiki
7 Days to Die Japan Wiki
http://wikiwiki.jp/7daystodie/

Wikiでは、マルチサーバーとしてCentOS(RedHat系)を使用した例が紹介されていますが、ここではDebian GNU/Linux8(jessie)で構築しました。


GCPでインスタンスを作成

GCP>Compute Engineで作成したVMインスタンスは、CPUとメモリに重きを置いたカスタム構成にしました。SSDディスクよりメモリのほうが容量あるのがちょっと笑えますけど。

名前:お好きなように。短い名前のほうがあとあとラクです。
コア数:6
メモリ:20GB
ディスク:Debian GNU/Linux8(jessie)
ディスク容量:SSD永続ディスク15GB

これを「HTTP、HTTPSともにチェックを入れずに」作成しました。


ファイアウォールの構成とインスタンスへの適用

マルチサーバを立てるひとがだれもがいちどはハマるであろうポート開放。
GCPはポートごとにルール化できるのでそれを利用します。
ポート開放は自己責任。

「GCP>ネットワーキング>ファイアウォールルール」に移動

「ファイアウォールルールを追加」

名前:sdtd-rule
説明:空欄でも可
ネットワーク:defaultのまま
ソースフィルタ:「すべてのソースから許可(0.0.0.0/0)」選択
許可対象プロトコル:tcp:25000;udp:25000-25002
ターゲットタグ:sdtd-tag

としてルールを作成しました。
許可対象プロトコル部分が開放するポート番号とプロトコルです。
ターゲットタグがルールを認識するためのタグになります。

--「7 days to die」は先頭から連続する3つのポートを使用する

--先頭のポートはtcp、残りのポートはudp

--したがって、うえの例は厳密にはtcp:25000;udp:25001-25002かも

--あとでコッソリ設定し直しておこうかな


このルールをインスタンスに適用すれば完了です。

「GCP>Compute Engine」で適用したいインスタンスをクリックして「編集」、「タグ」の部分に「sdtd-tag」と入力して「保存」すれば、インスタンスにルールが適用されます。

Debian GNU/Linux8(jessie)作業

作成したインスタンスにSSH接続して、以下の作業を行います。
流れのほとんどはWikiの通りでしたが、Debianなのでちょっと違う部分があります。

sudo apt-get update...パッケージリスト更新

--wgetは実装済みだったのでスルー


sudo apt-get install -y rsync

sudo apt-get install -y gcc
sudo apt-get install -y make…gccだけではmakeが入らなかった

--libstdc++.i686はパッケージ見当たらず

--libstdc++6が実装済みだったのでスルー


--ncパッケージ見当たらず

--ncfが実装済みだったのでスルー


Ubuntu/Debian参照先
https://7dtd.illy.bz/wiki/Prerequisites

sudo apt-get install xmlstarlet
sudo apt-get install lib32gcc1
sudo apt-get install lib32stdc++6

本体のインストール、起動設定はWikiとまったくおなじだったので割愛。
ルート権限でコマンドを入力する必要があるので、須藤さん(sudoコマンド)のお力を借りることを忘れずに。

こんな風にしてPCゲームからインスタンスの外部IPを入力したらサーバーにはいれました。わたしと気の合うフレンドでマルチプレイするために立てたサーバーなので、サーバーの公開(パブリック化)はするつもりはありません。不特定多数の人に公開すると、サーバー管理が大変になってきそうなので。

なにか問題があれば加筆・修正するかもしれません。


7 days to die サーバー管理メモ
7dtd.sh instances create…インスタンス作成
7dtd.sh start <instancename>…開始
7dtd.sh kill <instancename>…終了

--/home/sdtd/instances/以下にMAPデータ・ログが保存される




≫ NEXT_LOG GCPでウェブサーバ構築チャレンジ・10【閑話休題】(5 photos)

≪ PREV_LOG GCPでウェブサーバ構築チャレンジ・8【Debian MEMO】(1 photos)

PAGE UP

Google+

スタジオムーンリーフ(2005年1月開設/Since 2005)
代表者:野口 卓洋(Takuhiro Noguchi)
Add:356-0006 埼玉県ふじみ野市霞ヶ丘3-1-22-504

Twitter:@StudioMoonLeaf
Facebook:facebook.com/noguchi.takuhiro


©2017 STUDIO MOON LEAF ALL RIGHTS RESERVED.