創掘祭のサーバまわりの細々したおはなし。

えちからどっとねっと

創掘祭のサーバまわりの細々したおはなし。

ふと、書きたいという気持ちが出てきたのでまとめていきたいと思います。でもとても長いお話なので、覚悟してお付き合いください。

第1回:暫定製作サーバを練習用サーバ兼用に転換

2017年4月に創掘祭のプロジェクトはたった3人のメンバーで立ち上がったわけですが(「創掘祭」という名前すらありませんでしたが)、そのころ自分はwebサーバ兼自分専用のマイクラ製作サーバみたいなことをVPSで運用していました。その製作サーバをとりあえず製作用に当てよう、という感じが始まりです。まあプロジェクトに関わる以上、自分の製作はちょっと落ち着くまでできなくなるし、ならいいか、という感じ。

このときのVPSサーバ、結構長い間借りていたんですが今年の4月くらいに解約しています。というのは近年Minecraftサーバの運用で必要なスペックが高くなってきて、ちょっと金銭的に合わないなぁとなってきたからです。このあたりの話は、また後ろの方で。

本番用サーバはマルチイベントで実績のあるNekonekoさんとのつながりがあったため、そのつながりでサーバをお借りしました。

ただ練習はどうしても夜勤などで時間が合わない人もいるので、個人練習用のサーバが欲しい。一方で本番サーバをずっと動かしておくのは管理上あまりよくない。それを補完するため製作サーバを複数ワールド構成に変更。24時間運用する製作サーバを個人練習用としても解放する形としています。

このころは複数ワールド構成かつDynmapといった比較的重めのプラグイン入れても、2GB(マイクラ割り当て1.5GB)でぎりぎり20人入れたんですよね…。

自宅サーバで起こりやすい「回線の相性」

自宅サーバのメリットは、スペックに対する投資が基本残ることだと思います。なので一度高性能なサーバを導入すれば、あとは壊れない限り使いまわせますよね。ただ見落としがちなのが「回線の相性」です。

詳しいことはネットワークインフラの話になってしまうので割愛しますが、意外とインターネット回線には相性があるみたいです。なので、特定の人の接続がすぐに切れてしまう現象が起こったりします。自宅サーバでマルチイベントを開く方は、事前に接続テストをしてもらわないと大変なことになりかねませんね。

第1回に関しては競技者にその問題が起こったので、Nekonekoさんにお願いしVPSで専用プロキシサーバを立ててもらい、相性が悪いプレイヤーにはそちらで接続してもらうという対策を取りました。ただこの点踏まえると、マルチイベントを開催する場合はVPSやクラウド構成でサーバを立てたほうがよいかな、というのが個人的意見です。

第1回創掘祭・サーバ構成

製作サーバ構成:さくらのVPS(v3)石狩第一2GB

本番サーバ構成:Nekonekoさんからの善意により自宅サーバをお借りしました。

第2回:webサーバ兼将来の製作用サーバを確保しよう

第2回の企画は立ち上げメンバー以外から上がってきた形で、企画主導も同様です。なので製作・本番環境に関してはあまり語れる部分はない感じですね。製作サーバに関しては私に対して引き続き使えないかの依頼があったり、無料のサーバを暫定的に使っていた時期もあるようですが、最終的には製作サーバ・練習サーバ・本番サーバともNekonekoさんからお借りしていました。

とはいっても自分は第1回のワールドを配布できる形に改良しなきゃとか、運営視点作らなきゃ(結局作れていないですが)とか、色々たまっていてあまり関われていないのですが…。

そのなかでweb制作を本業にしているこくてんさんが入ってきたんですよね。一度5月くらいに創掘祭のドメインを取って、ちゃんとページ作らないかというお話になり。ただドメインを取るとなると創掘祭を続けていく覚悟が必要になるし、固定費としてドメイン取得・更新費用やサーバ代がかかってくる。そのあたりを考慮して、一度見送ってもらった感じです。

ただ開催が近づいてくるにあたり、やはりwebサイトをしっかり作りたいというお話になり。ただお金がかかるお話なのでその点は運営のなかでも中核に近い自分が、将来的なメンテナンスも引き受ける覚悟でドメインを取得、web用のサーバも借りました。

今後のための製作サーバを確保したいという気持ちからVPS選択に

このとき「将来的な製作サーバの確保もしたい」、というのが頭にありました。「第3回をやりたい」となったとき、すぐに使えるサーバを創掘祭専用に用意したかったんです。そのためwebサーバにはさくらVPSを新規契約して投入、メインはWordpressということでKUSANAGIのOS構成を選択しています。

そして第2回創掘祭が終わった後、みんなでクリエ建築がしたいという提案があったときうってつけのサーバとなったのです。ただ第3回製作サーバとしての使用はやや遅れる形となりましたが…。

第2回創掘祭・サーバ構成

製作・練習・本番サーバ:Nekonekoさんからの善意により自宅サーバをお借りし、ふらみんさんが共同で運用。

webサーバ:さくらVPS(v4) 石狩第一2GB(KUSANAGIのOS構成)

第1回同窓会:プロキシ構成を借りてわかった、ゲームならではの弊害

第1回同窓会は綾瀞さんのツイートがきっかけで、それに合わせて準備が始まったんです。ただ当初、製作サーバは自分用のVPSを切り回したものの、本番用サーバに関しては決まっていませんでした。

ただちょうどそのとき、ゆかりカフェ(Mastdonという、Twitterに似たプラットフォームで構成されたSNS)の管理人さんと直接お話しする機会がありました。そのとき、ゆかりカフェ用に借りている専用サーバのスペックに余裕があるから、Minecraftのサーバを動かしてみたいという話になったんですよね。

大人数が入る同窓会は、マルチ運用をテストする絶好の機会。ということで話を持ち掛け快諾していただき、本番サーバが用意できたのです。

プロキシを通したことが原因?移動のラグ問題

Minecraftに限らずサーバ管理で頭を悩ませるのが近年多いDDoSの対策。ゆかりカフェの管理人さんは最適なサーバ構成について趣味で研究していらっしゃり、その実験もかねて

玄関となるサーバを用意し、そちらから本体のサーバへつなぐ

要するにプロキシを導入したのが第1回同窓会の本番サーバ構成です。万が一DDoSが発生した場合でも玄関となるサーバのアクセスが遮断される形なので、本体の影響は比較的小さくなります。

ただ同窓会の本番サーバ環境では、運営している観点ではややラグが大きかったと感じられました。とくにアイスボートレースに関してはプレイヤーのテレポート現象も多発していたという印象です。どうしてもサーバをひとつ経由する処理が入るため、その点ラグが大きかったというゲーム系サーバ特有の問題といえますね。webサーバなら多少ラグがあっても、影響は感じられませんから…。

ただVPSの外部ネットワーク回線は100Mbpsのところも多いので、その範囲を超えるようならこういうプロキシ構成も必要になってくるでしょうね。

第1回同窓会のサーバ構成

製作サーバ:さくらのVPS(v4) 石狩第一2GB(KUSANAGI構成)

本番サーバ:ゆかりカフェの管理人さんからお借りしました。サーバ本体はさくらの専用サーバ(石狩第二・インスタンスで切り分けて一部を使用)、プロキシサーバとしてVPS2台(さくらVPS石狩第一・ABLENET VPS大阪)を別途用意。

第3回創掘祭:サーバの必要スペックが高く。それとは別に起こったチャンク読み込みバグ問題

第3回の創掘祭に関しては、サーバ関係をVPSで用意する前提で準備を進めました。ゆかりカフェの管理人さんから費用が抑えられるサービスの紹介を受けたことも大きかったです。

一方で製作サーバに関しては第1回同窓会前から第3回の企画は進んでおり、クリエサーバの運用中だったので当初はえちからが管理しているVPSを切り回しつつ運用しています。最終的には当初の想定通り創掘祭用に確保したさくらVPSを製作に充てましたが、その途中でwebサーバ機能の切り離しをおこなっています(創掘祭のweb関係はさくらのレンタルサーバへ移行)。

製作サーバのスペック問題

Minecraftは1.13から、チャンク関係の仕様が大きく変わっています。それとともにサーバ運用面では、必要スペックが高くなったように感じられる機会が多くなってきました。

前述のとおり、製作サーバとしては事前に確保していた「さくらのVPS」の2GBプランを充てました。ただ、2GBだとどうやらメモリやCPUの使用率が跳ね上がり、運用が難しくなったように感じられるのが実際の感触です。3GB、余裕を持つなら4GBは最低限必要なのではないでしょうか。

そのため用意した製作サーバでは、第1回創掘祭のような製作・練習サーバを兼ねる形は到底難しいという判断をおこないました。そのため練習用のサーバが別途必要となり、最終的にはその後の運用計画(当時)を踏まえ、さらに本番用サーバを別途追加する構成としています。

サーバテストの実施

2020年4月に最初の告知をおこない、その後急ピッチで建築・コマンドに分かれ準備を進めていたのですが、とある企画を見ていて「これ、サーバを一度テストしたほうがよいかも」という話になりました。一応DDoS対策もうたっていたので、その辺りも一度試してみたかったんです。そのため4GBのVPSを借りたのが5月くらいにおこなったサーバテストのときでした。

ただDDoS対策については「全通信を遮断」するらしく、実際にDDoS攻撃が発生したときにはダウンしたため急いで新しいサーバ借りて設定をおこなうという芸当をやりました。そしてこのサーバはデバッグ用に維持し、その後練習用サーバとして運用しています。

ただ第3回で想定される人数を入れても問題ない点、第3回で予定されていた4チーム対戦のシミュレーションができた点など、大きな収穫が得られたことは確か。

ちなみに本番用サーバは余裕を持って2倍の大きさを借りているので、スペック面では大きな問題は感じられませんでした。ただ、次に取り上げるチャンク読み込みバグ、これに苦しめられました。

1.13から特有の問題、チャンク読み込みバグ

1.13からチャンク関係の仕様が大きく変わっており、サーバ必要スペックが高くなる原因となっているのですが、それとともに感じられるようになったのが特定チャンクの読み込みバグ問題です。

エラーを起こしたある特定のチャンクに入ると、そのときマイクラが一瞬止まるようになるんですよね。一応そのチャンクを特定・再生成すれば修正可能ということは今となっては知り得る情報ですが、当時は謎の現象という認識でした。

もちろんチャンクを再生成するという手段も頭にはあったのですが、チャンクを消した後の復帰が懸念点でした。WorldEditというプラグインを使い「事前にエラーチャンクの建築をコピーし保存」「再生成後保存したデータを貼り付け」ってやれば難しくはないのですが、その作業で「エラー部分がコピーされない」という確証がなかったためです。

その結果エラーチャンクを避ける形で第5競技に関しては場所を移し設営しているのですが、こうした判断が正しかったのか、今となってはなんとも言えますが…。

その後の運用計画を踏まえたVPS3台構成

VPSは仮想サーバということで、上位プランへのスペックアップができるサービスも多いです。ただ一度上位プランに上げてしまうと、その後はもとに戻せません。プラス、製作サーバがたまにクリティカル通知を出すくらいギリギリだったこともあり、第3回終了後は製作サーバの運用を見直す必要がありました。

また、スペックアップはサーバ初期化を伴うため、準備を進めるにあたっては「サーバを止める時間」を設ける必要が出てきます。さらに各種設定を「開始直前の準備が忙しいタイミング」におこなうのも大変で、加えて「テストもせず本番に投入」という、リスクが高い条件がそろうことになります。

リスクマネジメントとして考えられる最悪の事態としては本番サーバがDDoS攻撃に遭い、停止することも否定できません(本番用サーバのアドレスを知るのは運営・競技者・応援者に限られるため、考えにくい想定ではあります)。

この点を踏まえ、練習用サーバとして確保した4GB VPSを第4回以降の製作サーバへ転用する想定で維持し、本番用の8GB VPSを追加で借りるというサーバ構成になりました。製作サーバを加えるとVPS3台による運用です。

結果的に本番サーバに関しては以下のグラフのようにかなり余裕を持った形になり、サーバ運用面では大きな問題は発生しませんでした。

ネットワーク
メモリ使用
読み込み平均
CPU使用率

グラフを見ても余裕があるので、これが最適解か、少々オーバースペックだったかなと感じています。ただ、8GBのサーバ借りると月4,000円以上かかったので、どうしても短期前提にはなりますね。

第3回創掘祭・サーバ構成

(別の機会で作成した資料より引用)

かくれんぼ・おにごっこ企画:第3回本番環境前提からの転換

私自身が創掘祭の第4回開催に関して消極的になってしまったので、当時考えていたサーバ運用計画というのはなし、解約予定だった2GB・8GBとともに4GBに関しても同様に月末で解約する流れとなりました。かくれんぼ・おにごっこ企画も最初は事前に仕込んでおくつもりで、その後は本番終了後いそいで準備をする予定で、本番用サーバをそのまま使いたかったんですけどね。

という感じでサーバがないため企画が宙ずり状態になったんですが、たまたま年末の時期、第1回同窓会のときのサーバでお世話になったゆかりカフェの管理人さんから魅力的な話をいただきました。というのもDDoS対策をうたったサーバを借りたので、テストしてみてほしいと。

その点サーバアドレスを公開する初詣枠だったり、その後の参加型企画である「かくれんぼ・おにごっこ」はよい実験の場になると思い、企画の方を進めていきました。じつは初詣枠と「かくれんぼ・おにごっこ」は別のサーバだったりしますが…。

まとめ:どうしても突き当たるサーバ問題

創掘祭はマルチプレイの企画である以上、サーバ選びと無縁ではいられません。一応自分なりの考えこそまとめていますが、それが最適解であるとは限りませんし。そのうえで自分の考えを提示するとすれば、以下の通りです。

  • 回線の相性問題が少ない、データセンター収容のVPSやクラウドでサーバを確保したほうがよい?
  • 現在のMinecraftだと2GBのVPSは性能不足。最低でも4GB以上は確保する必要あり。
  • 基本的にはVPSおすすめだが、金に糸目を付けなければクラウドで一時的強化も選択肢
  • 参加型企画をおこなう場合はDDoS対策必須。対策済みサーバでも比較検討する必要あり

結果、サーバ関係で結構出費を強いられますけどね…。そうなると金銭的負担はどうなるかとか、さらに色んな問題が出てきてしまうのが難しいところ。

このあたりのこと、どうやって解決するか悩んでますが・・・、その話はまた別の機会に。

 

Leave a Reply

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください