>100 Views
July 25, 26
スライド概要
Raspberry Pi(SSD取り付け) + Docker + playitでminecraftサーバーを立てて公開する方法です
アニメ、ラノベ、きららが好きです 競技プログラミング、電子工作、フロントエンド、バックエンド、BAAS、データエンジニアリングに興味があります
uriboooooon
863
初心者がRaspberry Piで minecraftサーバーを立てる 私が鯖主になれるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
目次 • 自己紹介 • 成果物 • サーバー用PCは? • SBCについて • サーバーを立ててどうする? • (事前準備)ストレージをSSDに • マイクラサーバ導入 • 今後の展望
自己紹介 • 最近自作ブログその4を生やそうとしている • JamStackが良いらしい • PaperMod(Hugo) + Sveltia CMS + Netlify ← 結論 • 詳しくは https://jamstack.org/ • とかいいつつフロントエンド、電子工作、サーバーサイド、仮 想化技術、低レイヤ、マイクラについて無知
情報技術者なら おうちサーバしたい したくない. . .?
サーバーに必要なものがない • 機材もねぇ • 住所(グローバルIP)もねぇ • サーバ公開したことねぇ • お金もねぇ • ドメインねぇ
なんもねぇ ©にゃんにゃんファクトリー・講談社/ヤニねこ製作委員会
足りないものは知識とサービスのフリープランで埋める。 これも技術のうち。
サーバー用PCは docker.ioからイメージをpullできないんですけど(自責) サーバーを早くするには 楽に環境構築する方法は? メモリ上限は? 設定ファイルの使い方は? コマンドあっている? ユーザ何人まで ホワイトリストが入ってないやん 知識がないならLLMに聞けばいいじゃない バージョン1.21からいきなり26.2になったのなんで サーバーへのSSD取り付けに必要な機材は? SDカードばいばいなーん スマホから SSHしたい 運用方法は? 外部からサーバーを操作する方法は? 外部への公開方法は? Cloudflare でいい?
以下LLMに聞いたこと、 自分で調べたことに 基づいた内容となります
サーバー用PCは? • ノートPCは論外 • 理由は怖いから • バッテリーが死ぬ • 発火の恐れ • 秋葉でジャンクPC買ってなんとか • でもデスクトップ常時起動は電気代高そう • 最近だとミニPCとかProxmoxとか流行っているらしいけど、そ こまで手間(?)とお金はかけないつもり
サーバー用PCは? • ノートPCは論外 • 理由は怖いから • バッテリーが死ぬ • 発火の恐れ SBCを使う • 秋葉でジャンクPC買ってなんとか • でもデスクトップ常時起動は電気代高そう • 最近だとミニPCとかProxmoxとか流行っているらしいけど、そ こまで手間(?)とお金はかけないつもり
SBCについて • Single Board Computer(SBC) 整形は関係ない • 一つの基盤にCPUや入出力がある • 電子工作に使用されることが多い • 消費電力が少ない! • 秋月電子、千石電商、シリコンハウスで買えます • 秋葉原、でんでんタウンに行こう!
種類を紹介
Raspberry Pi • 電子工作と言ったらこれ? • Raspberry Piシリーズ • 無印 • 基本シリーズ • 専用OSがある • Compute Module • 工業用 • Zeroシリーズ • 基本シリーズをさらにシンプルにしたもの • 一応Webサーバーとかできる • https://speakerdeck.com/arkw/1500yuan-deshi-meruzi-zhai-uebusaba • Picoシリーズ • OSはない • マイコン
Orange Pi • Raspberry Piのパチモン競合候補 • 割とコスパはいい • アリエクで買いましょう • モデル • 無印 • Plus • PRO • MAX • Ultra • Zero
その他 • Banana Pi • Rock • NanoPi • Libre Computer • Pine64 • NVIDIA Jetson • Google Coral Dev Board • SiFive HiFive
サーバーを立ててどうする? • そもそも静的サイトならNetlify、Vercelとかあるし立てる必要 ある? • こだわりがあるならWebサイトもOK • 通常ならお金のかかるものを(ほぼ)無料にしたいかつ、自分が やりたいことを考えてみる
ゲームしたい...
やりましょう!!!
ちょっとその前に
SDカードは書き込みが遅いので不適 • Raspberry Piは基本的にmicroSDカードで起動をするが、 microSDカードだと10~30MB/s • 頻繁な読み書きは想定されていない • 多分壊れやすい素材なのであまり使いたくない
(事前準備)ストレージをSSDに • 買ったもの • SSD(USB接続ではない生の) • SSD HAT • 金属ケース • ヒートシンク • 手順 • SDカードのOSからSSDを認識させる • マウント • OS ImagerでSSD書き込み
ここから本篇
マイクラサーバー導入 • 公式が提供しているVanillaではなく機能が改良された PaperMCを使う • クライアント側でライセンスにお金はいるけどサーバーはなん と無料 • もし課金する場合だとReamsがよく使われる • 3人 $3.99 bedrock • 11人 $7.99 bedrock・java • MODが使える!←重要
仮想化で実施 • ローカルを汚したくないのでDockerを使用する • コンテナは二つ • マイクラサーバ • 外部公開用ツールplayitのエージェント 構成図 Docker compose minecraft playit agent © playit サーバー
サーバーのイメージ • itzg/minecraft-server • めっちゃ管理されているマイクラサーバのdockerイメージ • docker-compose.ymlの環境変数を設定するだけでいい感じに • メモリ上限 • 最大プレイヤー • ワールド難易度 docker-compose.yml
公開ツールのエージェント • playit • アクセスキーを取得してエージェントとトンネルを作成 仕組み クライアント © playit サーバー
Les’s 起動!!
動いた!
外からSSHできるように設定しよう • トラブルがあったときに、外部からコンテナの再起動などを行 えるようにしたい • 方法 • 鍵を作成、転送 • Tailscale設定 SSH サーバー インターネット 外部端末
鍵を作成、転送 • 鍵を作る • PC • クライアントでkey作成 • Scpとかで、ホスト名やローカルIP指定して転送 • スマートフォン • termiusをインストール • キーを作成する項目から作成 • パスフレーズなし • メールとかで転送 あとはPCと同じ termius
Tailscale設定 • Tailscaleインストールと起動 • Rasberry pi • PC • スマートフォン • TailscaleからIPを確認 • IPやホスト名を指定してSSH! サーバー 外部端末
まとめ • SBCとは • Raspberry PiのSSD設定 • Dockerによるマイクラサーバ公開 • マイクラサーバ外部公開 • 外部からSSH
今後の展望 • NASに定期バックアップ • Raid0+1が欲しい • PCle2 -> PCle3 • 有線接続 • VLANでネットワーク分割 or TailscaleでACL設定 • サーバー、NASを隔離したい! • Raspberry Pi OS Liteで運用 • VNCやraspberry Pi Connectで外部から接続できるように • 外部からの物理再起動設備 • Switch bot プラグミニとか?