初心者がRaspberry Piでminecraftサーバーを立てる

>100 Views

July 25, 26

スライド概要

Raspberry Pi(SSD取り付け) + Docker + playitでminecraftサーバーを立てて公開する方法です

profile-image

アニメ、ラノベ、きららが好きです 競技プログラミング、電子工作、フロントエンド、バックエンド、BAAS、データエンジニアリングに興味があります

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

Raspberry Piで minecraftサーバーを立てる 私が鯖主になれるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)

2.

目次 • 自己紹介 • 成果物 • サーバー用PCは? • SBCについて • サーバーを立ててどうする? • (事前準備)ストレージをSSDに • マイクラサーバ導入 • 今後の展望

3.

自己紹介 • 最近自作ブログその4を生やそうとしている • JamStackが良いらしい • PaperMod(Hugo) + Sveltia CMS + Netlify ← 結論 • 詳しくは https://jamstack.org/ • とかいいつつフロントエンド、電子工作、サーバーサイド、仮 想化技術、低レイヤ、マイクラについて無知

4.

情報技術者なら おうちサーバしたい したくない. . .?

5.

サーバーに必要なものがない • 機材もねぇ • 住所(グローバルIP)もねぇ • サーバ公開したことねぇ • お金もねぇ • ドメインねぇ

6.

なんもねぇ ©にゃんにゃんファクトリー・講談社/ヤニねこ製作委員会

7.

足りないものは知識とサービスのフリープランで埋める。 これも技術のうち。

8.

サーバー用PCは docker.ioからイメージをpullできないんですけど(自責:updateしてなかった) サーバーを早くするには 楽に環境構築する方法は? メモリ上限は? ユーザ何人まで 設定ファイルの使い方は? コマンドあっている? ホワイトリストが入ってないやん 知識がないならLLMに聞けばいいじゃない バージョン1.21からいきなり26.2になったのなんで サーバーへのSSD取り付けに必要な機材は? SDカードばいばいなーん 運用方法は? 外部からサーバーを操作する方法は? 外部への公開方法は? Cloudflare でいい? オーバーヘッドがデカすぎます!! スマホから SSHしたい

9.

以下LLMに聞いたこと、 自分で調べたことに 基づいた内容となります

10.

サーバー用PCは? • ノートPCは論外 • 理由は怖いから • バッテリーが死ぬ • 発火の恐れ • 秋葉でジャンクPC買ってなんとか • でもデスクトップ常時起動は電気代高そう • 最近だとミニPCとかProxmoxとか流行っているらしいけど、そ こまで手間(?)とお金はかけないつもり

11.

サーバー用PCは? • ノートPCは論外 • 理由は怖いから • バッテリーが死ぬ • 発火の恐れ SBCを使う • 秋葉でジャンクPC買ってなんとか • でもデスクトップ常時起動は電気代高そう • 最近だとミニPCとかProxmoxとか流行っているらしいけど、そ こまで手間(?)とお金はかけないつもり

12.

SBCについて • Single Board Computer(SBC) 整形は関係ない • 一つの基盤にCPUや入出力がある • 電子工作に使用されることが多い • 消費電力が少ない! • 秋月電子、千石電商、シリコンハウスで買えます • 秋葉原、でんでんタウンに行こう!

13.

種類を紹介

14.

Raspberry Pi • 電子工作と言ったらこれ? • Raspberry Piシリーズ • 無印 • 基本シリーズ • 専用OSがある • Compute Module • 工業用 • Zeroシリーズ • 基本シリーズをさらにシンプルにしたもの • 一応Webサーバーとかできる • https://speakerdeck.com/arkw/1500yuan-deshi-meruzi-zhai-uebusaba • Picoシリーズ • OSはない • マイコン

15.

Orange Pi • Raspberry Piのパチモン競合候補 • 割とコスパはいい • アリエクで買いましょう • モデル • 無印 • Plus • PRO • MAX • Ultra • Zero

16.

その他 • Banana Pi • Rock • NanoPi • Libre Computer • Pine64 • NVIDIA Jetson • Google Coral Dev Board • SiFive HiFive

17.

サーバーを立ててどうする? • そもそも静的サイトならNetlify、Vercelとかあるし立てる必要 ある? • こだわりがあるならWebサイトもOK • 通常ならお金のかかるものを(ほぼ)無料にしたいかつ、自分が やりたいことを考えてみる

18.

ゲームしたい...

19.

やりましょう!!!

20.

ちょっとその前に

21.

SDカードは書き込みが遅いので不適 • Raspberry Piは基本的にmicroSDカードで起動をするが、 microSDカードだと10~30MB/s • 頻繁な読み書きは想定されていない • 多分壊れやすい素材なのであまり使いたくない

22.

(事前準備)ストレージをSSDに • 買ったもの • SSD(USB接続ではない生の) • SSD HAT • 金属ケース • ヒートシンク • 手順 • SDカードのOSからSSDを認識させる • マウント • OS ImagerでSSD書き込み

23.

ここから本篇

24.

マイクラサーバー導入 • 公式が提供しているVanillaではなく機能が改良された PaperMCを使う • クライアント側でライセンスにお金はいるけどサーバーはなん と無料 • もし課金する場合だとReamsがよく使われる • 3人 $3.99 bedrock • 11人 $7.99 bedrock・java • MODが使える!←重要

25.

仮想化で実施 • ローカルを汚したくないのでDockerを使用する • コンテナは二つ • マイクラサーバ • 外部公開用ツールplayitのエージェント 構成図 Docker compose minecraft playit agent © playit サーバー

26.

サーバーのイメージ • itzg/minecraft-server • めっちゃ管理されているマイクラサーバのdockerイメージ • docker-compose.ymlの環境変数を設定するだけでいい感じに • メモリ上限 • 最大プレイヤー • ワールド難易度 docker-compose.yml

27.

公開ツールのエージェント • playit • アクセスキーを取得してエージェントとトンネルを作成 仕組み クライアント © playit サーバー

28.

Les’s 起動!!

29.

動いた!

30.

外からSSHできるように設定しよう • トラブルがあったときに、外部からコンテナの再起動などを行 えるようにしたい • 方法 • 鍵を作成、転送 • Tailscale設定 SSH サーバー インターネット 外部端末

31.

鍵を作成、転送 • 鍵を作る • PC • クライアントでkey作成 • Scpとかで、ホスト名やローカルIP指定して転送 • スマートフォン • termiusをインストール • キーを作成する項目から作成 • パスフレーズなし • メールとかで転送 あとはPCと同じ termius

32.

Tailscale設定 • Tailscaleインストールと起動 • Rasberry pi • PC • スマートフォン • TailscaleからIPを確認 • IPやホスト名を指定してSSH! サーバー 外部端末

33.

まとめ • SBCとは • Raspberry PiのSSD設定 • Dockerによるマイクラサーバ公開 • マイクラサーバ外部公開 • 外部からSSH

34.

今後の展望 • NASに定期バックアップ • Raid0+1が欲しい • PCle2 -> PCle3 • 有線接続 • VLANでネットワーク分割 or TailscaleでACL設定 • サーバー、NASを隔離したい! • Raspberry Pi OS Liteで運用 • VNCやraspberry Pi Connectで外部から接続できるように • 外部からの物理再起動設備 • Switch bot プラグミニとか?