全6267文字
PR

長く使い続けたいサーバーのOSには、5年間の長期サポート版である「Ubuntu Server 22.04 LTS」が向いている。これからサーバーを構築したい人や勉強したい人のために、OSのインストール方法や基本的なサーバー構築の方法などを紹介する。

 多数のコンテナーが稼働する大規模なシステムでは、コンテナー管理ツール「Kubernetes」の利用が広がっています。ただし、Kubernetesは構成が複雑で導入が非常に面倒なため、Kubenetesの環境を簡単に、1台のUbuntu Serverに構築できる「MicroK8s」が登場しました。

 サーバー上でサービスを提供する際、システムから隔離された「コンテナー」を活用するのが一般的になりました。これにより、システムのOSに依存しない任意のバージョンのソフトウエアを動かせます。システムから隔離されているため、安全性も高まります。さらに、うまく使えばコンテナーインスタンス一式を別のサーバーに移動することで、障害時の対応も楽になります。

 このサーバー向けのコンテナーシステムとしての定番ツールが「Docker」です。Linuxカーネルのコンテナー関連機能(「cgroups」や「名前空間」)を活用し、手軽にコンテナーを構築・運用できます。「Dockerfile」と呼ぶ設定ファイルを使えば、コンテナーイメージの構築手順をドキュメント化できます。「DockerHub」などのイメージレジストリーサービスを使えば、ほかの人が作った構築済みのイメージを流用することも可能です。ひと昔前までは大変だった「任意のサービスの構築」が、OSを問わず簡単になったのです。

 ただし、Dockerで作ったコンテナーインスタンスは、原則として「1個のプロセス」しか動かせません*1。例えばHTTPサーバーとデータベースを使ってWebサービスを提供する場合、少なくともコンテナーが2個必要になります。このように複数のコンテナーを扱うことが増えてきた中で出てきたのが、「コンテナーオーケストレーション」という概念です。複数のコンテナーを良い感じに調整して運用する仕組みです。

*1 Dockerfileをうまく記述すれば複数のプロセスを動かすことも可能ですが、本来のDockerのデザインからは外れます。

 最もシンプルな具体例は、「Docker Compose」でしょう。YAMLファイルに設定を書いておくことで、複数のコンテナーを連携し運用できます。個人で使うのであればDocker Composeでも十分ですが、より大規模なサービスとなるとユーザーやリソースの管理、複数のサーバー間の連携なども考える必要があります。そこで登場したのが、米Google社が開発し、現在は米Cloud Native Computing Foundationがメンテナンスする「Kubernetes」です*2

*2 文字数から「K8s」とよく略されます。クラウド上でコンテナーを運用できる米Amazon Web Services社の「EKS」や米Google社の「GKE」、セルフホストする米Red Hat社の「OpenShift」も、K8sベースのサービスです。よってK8sを学べば、これらのサービスも活用できるようになります。

 残念ながら、Kubernetesはそれ自体が多種多様なコンポーネントで構成しているため、導入には非常に手間がかかります。今回は、そんな複雑怪奇なKubernetes環境をコマンド一つで構築できる「MicroK8s」を紹介します。低スペックなUbuntu ServerのPCが1台あれば始められるので、ぜひ試してみてください。

動作に必要なPCの最小スペック

 MicroK8s*3は、英Canonical社が開発しているKubernetes環境構築ツールです。簡単に構築できることはもちろんのこと、プラグインによる機能追加やマルチノード対応など、中規模なプロダクション用途であれば十分に実用に耐える機能を持っています。

*3 https://microk8s.io/

 最低限、次のスペックを満たすPCが1台あれば試せます。メモリー容量は「540Mバイト以上、できれば4Gバイト以上」、ストレージの空き容量は「20Gバイト以上」です。またインターネットに接続できる環境が必要です。CPUのコアは多ければ多いほどよいし、機械学習を動かしたければ計算用のGPUもあった方がよいでしょう。ただし、ちょっと試すだけなら、CPUは4コアほど、GPUはなしでも問題ありません。

 小型PCボード「Raspberry Pi」(ラズパイ)でも動作します。性能的に「Raspberry Pi 3B」以上のモデルであれば動きますが、メモリー容量を考えると「Raspberry Pi 4」が無難です。複数台のクラスタリングを安価に実現したいなら、ラズパイも選択肢に入るでしょう。