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

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 プラグミニとか?