$30 off During Our Annual Pro Sale. View Details »

Minecraft のサーバーを サクッと準備したい

Minecraft のサーバーを サクッと準備したい

OSC Kyoto 2022 の LT 大会で話した内容です

以下のブログの中身を凝縮した感じです:
* 身内向けマイクラ鯖をDockerで構築する | Simple is Best https://oldbigbuddha.dev/posts/my-server-for-minecraft
* ひとつのIPアドレス、ひとつのポートで複数のマイクラ鯖をホストする | Simple is Best https://oldbigbuddha.dev/posts/host-multi-minecraft-one-ip-address-one-port

Big Buddha

July 30, 2022
Tweet

More Decks by Big Buddha

Other Decks in Technology

Transcript

  1. Minecraft のサーバーを
    サクッと準備したい
    OSC Kyoto 2022

    View Slide

  2. 自己紹介
    名前: OJI(おじい)
    最近: 放送大学生 兼 インターンでバックエンドエンジニア

    View Slide

  3. 本題

    View Slide

  4. 実現したいこと
    A:「マイクラ一緒にしたいな~」
    わい: 「ええやん、準備するわ」
    ~10分後~
    わい:「でけた、mc.example.com にどうぞ~」

    View Slide

  5. 実現したいこと
    A:「マイクラ一緒にしたいな~」
    わい: 「ええやん、準備するわ」
    ~10分後~
    わい:「でけた、mc.example.com にどうぞ~」
    もちろん
    オンプレミス

    View Slide

  6. 結論:できた

    View Slide

  7. How?

    View Slide

  8. 物理的準備
    とりあえずメモリいっぱいな PC を準備

    View Slide

  9. 物理的準備
    とりあえずメモリいっぱいな PC を準備
    何故か寝室にある大昔の Dell 製 1U ラックサーバー
    今回は64GBほど準備しました

    View Slide

  10. ハード

    View Slide

  11. 論理的準備
    Proxmox をインストールしておく

    View Slide

  12. Proxmox is 何
    OSS 製の仮想基盤

    View Slide

  13. Proxmox is 何
    OSS 製の仮想基盤
    VM・コンテナが
    建て放題

    View Slide

  14. Proxmox is 何
    OSS 製の仮想基盤
    逸般の誤家庭が憧れる
    プライベートクラウド
    (当然可用性等々は自己責任)

    View Slide

  15. ソフト

    View Slide

  16. あとは細々と

    View Slide

  17. テンプレ用 VM or LXC を作る
    ● 最新の Ubuntu Server VM or LXC をひとつ作る
    ○ 注意: PVEの機能にあるテンプレート化を適用すると更新が困難
    ● Minecraft の実行環境を構築
    ● バックアップスクリプトを書き書き
    ● Systemd で Minecraft の常駐化するための設定
    ● Systemd Timer でバックアップをスケジュールするため
    の設定

    View Slide

  18. コピペ&コンフィグ書き換え
    1. テンプレをコピペ
    2. 認証情報更新
    3. コンフィグ書き換え
    4. sudo systemctl start minecraft.service
    5. sudo systemctl enable minecraft.service
    6. sudo systemctl enable minecraft-backup.timer

    View Slide

  19. Ready to play!

    View Slide

  20. とはならず……

    View Slide

  21. 公開方法

    View Slide

  22. 外部への公開方法
    よくある手法:
    サーバーごとにポートの開放

    View Slide

  23. 外部への公開方法
    よくある手法:
    サーバーごとにポートの開放
    _人人人人_
    > 面倒 <
     ̄Y^Y^Y^ ̄

    View Slide

  24. 外部への公開方法
    サーバーごとにポート開放は面倒
    ● サーバーの数だけポートを管理
    ● RTX830 をいじるのは手間
    やっぱり何故か寝室に転がってる
    YAMAHA RTX830 =>

    View Slide

  25. 外部への公開方法
    解決策: マイクラ用リバプロ(OSS)を挟む
    itzg/mc-router: Routes Minecraft client connections to backend servers based upon the requested server address
    https://github.com/itzg/mc-router

    View Slide

  26. 外部への公開方法
    出典: https://github.com/itzg/mc-router/blob/master/docs/compose-diagram.png

    View Slide

  27. 公開

    View Slide

  28. 実現できたこと
    A:「マイクラ一緒にしたいな~」
    わい: 「ええやん、準備するわ」
    ~10分後~
    わい:「でけた、mc.example.com にどうぞ~」

    View Slide

  29. 実現できたこと
    A:「マイクラ一緒にしたいな~」
    わい: 「ええやん、準備するわ」
    ~10分後~
    わい:「でけた、mc.example.com にどうぞ~」
    gg

    View Slide