木村祐太Yuta Kimura ·科目ガイドCourse guide
researchmap

Course Guide

知能情報実験実習1

ゲームサーバを、自分の手で建てて動かし続ける。

オープンソースのマルチプレイゲーム Luanti(旧称 Minetest)のサーバを題材に、自分専用のゲームサーバを構築し、公開し、運用しながら、Linuxサーバの構築と運用管理の基本を学ぶ実習です。このページは、この科目で木村が担当する「サーバ構築・運用実習」で扱う内容と、その学びの流れを紹介する案内です。

この教材は日本語のみで提供しています This learning material is available in Japanese only.

実習の考え方The idea

ゲームサーバも、多くの人が接続する本物のサーバ

Luantiのゲームサーバは、Webサービスと同じように、多数の利用者が接続する本物のサーバです。サーバを構築し、サービスとして常時稼働させ、接続してくるプレイヤーを管理し、負荷を監視し、ログを調べ、バックアップと復旧を行い、コンテナでモダンに運用する。この実習で扱う内容は、実際のインフラエンジニアが日常的に行っている業務そのものです。

自分専用のゲームサーバを、遊びながら手を動かして育てていくうちに、ひとりで簡単なサーバの構築や運用管理ができるようになることを目指します。わからないことは、まずエラーメッセージを読み、自分で調べて解決する。この「調べて解決する力」そのものが、本実習でいちばん身につけてほしい力です。

テーマ一覧The five themes

サーバを建て、運用し、作り直すまでの5テーマ

各テーマの主題と、そこで扱う主なトピックを通し番号で紹介します。前のテーマで身につけた技術が次のテーマの土台になるように並んでおり、素のLinuxからはじめて、最後は同じサーバをコンテナで作り直せるところまで進みます。

01

OSの導入とLinuxの基本操作

OSの導入、SSHによる遠隔接続、ディレクトリ構造とパス、基本コマンド、viエディタ。手元のPCから操作できるLinuxサーバを立ち上げるところから始めます。

02

サーバの構築とサービス化

パッケージ管理(apt)、Luantiサーバの導入と設定、systemdによるサービス化、ファイアウォール。OS起動時に自動で立ち上がる常時稼働のサーバに仕立てます。

03

ユーザ管理と監視

パーミッション、ユーザ管理とsudo、サービスの非root化、サーバの監視、ログ解析、公開鍵認証。安全に運用しながら、サーバの状態を読み取れるようになります。

04

バックアップと自動化

バックアップの考え方、tarによるアーカイブ、シェルスクリプト、cronによる自動化、リストア訓練、障害対応演習。壊れても立て直せるサーバにします。

05

Dockerによる再構築とWeb監視

コンテナの考え方、Dockerの基本操作、サーバのコンテナ化、Web監視ページの公開。同じサーバをコンテナで作り直し、状態をWebから見られるようにします。

補足資料Companion reading

手順書と、背景を語る読み物の2本立て

実習は、実際に手を動かすための手順書(指導書)と、その技術の背景や「なぜそうするのか」を説明する読み物「Linuxサーバ構築・運用の基礎知識」の2本立てで進みます。読み物は全11章と付録からなり、実習で触れた事柄を落ち着いて掘り下げたいときの出発点になります。章の構成は次のとおりです。

第1章

OSとLinux

第2章

ファイルシステムとディレクトリ構造

第3章

シェルとコマンドライン

第4章

テキストエディタ(vi/Vim)

第5章

ユーザ・グループとパーミッション

第6章

プロセスとサービス管理

第7章

ネットワークの基礎

第8章

サーバ運用の基礎

第9章

シェルスクリプト入門

第10章

仮想化とコンテナ

第11章

Luantiサーバの技術

付録

さらに学ぶために

補足資料は授業の中で配布します。指導書で手を動かした後の復習や、疑問点を調べる読み物として活用してください。 The companion reading is handed out in class. Use it to review after working through the handbook, or as a starting point for looking things up.

手を動かして学ぶLearn by doing

自分のサーバに、自分のPCから実際に接続する

この実習の中心にあるのは、教科書を読むことではなく、自分のサーバを実際に建てて動かすことです。構築したサーバには、全員が自分のPCから本当に接続して確かめられます。

遊びながら学ぶPlay as you learn

クライアントもサーバも無料のLuantiで、遊びながら運用する

題材のLuanti(旧称Minetest)は、Minecraftによく似たボクセル型のサンドボックスゲームで、クライアントもサーバもオープンソースとして無料で利用できます。だからこそ、全員が自分のPCから自分のサーバに実際に接続し、友だちのサーバを訪ね合いながら、遊びの延長でサーバ運用を身につけていけます。設定を変え、サービスを再起動し、接続して動作を確かめる。この繰り返しが、そのままサーバ運用の基本サイクルになります。