TrueNAS SCALE には、アプリを追加する機能が存在します。これは、Synology や QNAP などの NAS OS にも搭載されている機能に似たものです。今回は、この素敵な機能の概要と、アプリの選択範囲を拡張する方法、アプリのパフォーマンスなどについて解説してみます。
TrueNAS SCALE のアプリの実態
アプリの正体は、Dockerコンテナです。これならば、少ないデータ量で大量のアプリをサポートするのに向いています。
標準ツリーで用意されているアプリだけでもメジャーなものが相当数がリスト化されており、これを選択してセットアップするだけで簡単にインスタンスとしてデプロイすることができるようになっています。

物足りない人は、独自のDockerコンテナを追加することすら可能です。ただ、Dockerのお作法を知らない人でも気軽にいろんなコンテナを試すことができるのがこの機能のいいところです。
アプリの数を追加するのも管理するのも簡単
標準ツリーにはメジャーなアプリが揃っていますが、多少のリスクを承知で面白そうなアプリをリストするツリーをユーザーの意思で追加することができます。

拡張ツリー Truecharts の追加
やり方は簡単です。
App -> Manage Catalog
この画面で [ Add Catalog ] をクリックして、カタログのURLを追加するだけです。

Charts が標準ツリー、Truecharts が拡張ツリーです。
[ Launch Docker Image ] からは、独自のコンテナを召喚することもできます。
これらのDockerイメージをGUIで管理することができるのもポイントです。

至れり尽くせり、ですね。
Web GUI から インスタンスへシェルにアクセス
それぞれのインスタンスのシェルには TrueNAS の Web UI からアクセスでき、SSHクライアントすら不要です。 協調動作するDBMなどのインスタンスも同様ですので、大変便利です。
UNIXシェルの選択もでき、私はbash
インストールもアップデートもここからできる!
これは、charts にある WordPress のアイコンです。ここからインストールするだけで簡単にデプロイができるのですが、スゴイのは、アップデートもここで行うことができるのです。この画面ではインストールが行われていませんが、インストールされたアプリでは、”up to date” という表示がされて、最新版であることが視認できます。アップデートが来ていたら、それも知らせてくれるのです。

上のバージョンを見てください。Wordpress6.3は、公式リリースが2023年8月8日です。今日は8月17日ですから、これ以前にアップデートの準備ができていたことを意味します。

私が好んで利用するXサーバーが WordPress6.3 に対応したのは8月17日ですので、商用サービスに負けるとも劣らないスピード対応がなされていることになります。
実際に WordPress のバージョンアップをここでやりたいとは思いませんが、先日紹介したNextcloudのアップデートなど厄介なものにも対応してくれているのが偉いところです。
実際にアプリをインストールしてパフォーマンステスト
実際に、Wordpress6.3 をインストールしてみました。標準ツリーの charts のほうです。Wordpress は 拡張ツリーの Truecharts にもリストされており、より新しいバージョンが設定されていました。
インストールボタンを押すと、設定画面が現れましたが、何も設定せずに進みます。程なく、インストールが完了して、自動的にデプロイが開始され、ACTIVE と表示されました。

[ Admin ] と表示されているボタンを押すと、見慣れた WordPress のセットアップ画面が開きました。以降、Wordpressのダッシュボードへのアクセスもここからいけます。

セットアップを済ませると、Wordpress6.3 の環境の出来上がりです。ここまでの所要時間は、ものの数分です。

このインスタンスの性能をチェックしておきましょう。
Server info というプラグインでシステム情報を表示してみます。

OSの表示は Linux 5.15.107+truenas x86_64 となっています。
シェルで確認すると以下のようでした。
www-data@wordpress-56c8789544-8w7nv:~/html$ uname -a
Linux wordpress-56c8789544-8w7nv 5.15.107+truenas #1 SMP Tue Jul 4 16:27:21 UTC 2023 x86_64 GNU/Linux
ロケールなどの設定もちゃんとやってくれています。
www-data@wordpress-56c8789544-8w7nv:~/html$ date
Thu Aug 17 22:02:19 UTC 2023
各ミドルウェアのバージョンは手堅い構成となっていました。
| Webサーバー | Apache2.4.56(Debian) |
| DBM | 10.6.14-MariaDB-1:10.6.14+maria~ubu2004 |
| PHP | 8.0.30 |
最近のレンタルサーバー界隈で流行りの LightSpeed やら Nginx など、速度が売りのチョイスでなく、大御所 Apache を選定しています。
MariaDBの最新バージョンは 11.0.3、PHPの最新バージョンは 8.29 ですが、こちらも安定感を重視した構成になっていました。 試してはいませんが、Truecharts のほうは、もう少し攻めた構成となっているのかもしれません。
驚いたのは、HTTPプロトコルが HTTP/3 はおろか、HTTP/2 にも対応していなかったことです。
この構成で、どのレベルのパフォーマンスが出るのか、Lighthouse で確認してみます。

なんと!? パフォーマンスで99ポイントをマークしています。これには驚きました!HTTP/2に対応していれば、満点を取れるかもしれないレベルです。仮想マシンでストレージがHDDのサーバー上で動いているものなのかと目を疑いました。ちなみに、CPUは Xeon E3-1220 V6 と、4コア4スレッドの老兵です。テーマの「Twenty Twenty-Three」が優秀なのもあるでしょうが、やはり、このスコアは素直にすごいと感心させられるレベルでした。
もちろん、この環境を公開した場合に、ネットワーク環境などの影響でこれだけのスコアが出るとは思いませんが、テスト環境として評価するならばそのパフォーマンスはパーフェクトと言えます。
アプリはネイティブに近いパフォーマンス
このように、アプリを使うにあたっては、仮想環境であることのオーバーヘッドを気にする必要がないことがわかりました。おそらく、かなり注意を払ってチューニングもされていることでしょう。
Nextcloud アプリなどでは、パフォーマンス向上に欠かせない Redis というキャッシュサーバーが同時に最適化されてデプロイされたりします。素人がチューニングをするよりも、よりより環境をボタン1つで提供してくれるのです。安心して使っていいでしょう。
アプリの管理もらくらく
いくらお手軽にサーバーをデプロイできる仕組みがあるとはいえ、実際に何かをテストしたり、運用するとなると、シェル上での操作は欠かせません。
アプリからデプロイされるインスタンスは、Kubernetes により管理され、Pod 単位でアクセスができます。しかも、Web GUI 上でシェル操作が行えて、コードのコピー&ペースト( CTRL + INSERT / SHIFT + INSERT )もサポートされるという便利っぷりです。
まず、[ 点3つのボタン ] をクリックして [ シェル ] をクリックします。

すると、Podを選択する画面がポップします。Wordpressのアプリでは、WebサーバーとMariaDBの2つが選択できますので、Pods のリストから Webサーバー側を選択します。

ここで、Commands とある中に /bin/sh とありますが、ここは bashを指定可能です。私は bash のぬるま湯で育った口なので、sh は厳しすぎるので大助かりです。

シェルの動作スピードは、Web GUI 上で動作しているとは思えない快適さで、何のストレスも感じませんでした。
同様に、各インスタンスのログにもここからアクセスできるのです。つまり、TrueNAS SCALE にさえアクセスできる環境があれば、Kubernetes 上にあるインスタンスの管理がすべて行えるということです。通常必要なSSHの設定や証明書の発行などの手続きも不要、ログインに認証を求められることもありません。まさにストレスフリーな感じです。
TrueNAS SCALE のアプリはこんな人におすすめ
- docker-compose.yml の作法がよく分からない人
- Dockerイメージの管理が面倒な人
- UNIXシェルが苦手な人
- とにかくお手軽にいろんなアプリを試してみたい人
- アプリのアップデートが面倒な人
ともかく、いろいろな人におすすめできます。TrueNAS SCALE をインストールしたら、ぜひお試しください。Docker Desktop ほど多彩な機能を有してはいませんが、十分実用に足るものです。
サーバー1台でいろいろなことをやらせようとすると、どこかに歪みがきて、無理な運用を強いられることがありますが、Dockerベースならば、必要な時にデプロイするだけですし、アプリケーション同士の干渉を気にする必要がありませんので気が楽です。
アプリをたくさん起動すると、当然メモリをガバガバ喰いますが、昨今のメモリ相場ならば、必要なだけ搭載してあげればよいのです。先の WordPress アプリを上げた状態でのメモリ使用量は 3.7GiB 程度で、アプリをオフロードした状態なら3.4GiBであったので、大したものではありません。ただ、メモリをケチると、ZFSのキャッシュにシワ寄せがいくので、パフォーマンスへの影響は覚悟しておきましょう。
Nextcloud アプリを数週間運用してみましたが、安定性にはまったく問題がありません。Nextcloud を TrueNAS 上で運用するのを特におすすめする理由は、Collabora や Redis との連携設定が容易であることです。これだけのパフォーマンスが出て、安定しているとなれば、スモールビジネスのツールとして十分に機能させることができるはずです。
ちなみに、SAMBAやOpenVPNなどのインフラサービスはTrueNAS SCALE がネイティブにサポートしていますので、アプリを持ち出す必要はありませんので、ご心配なく。
ディストロをインストールして楽しみたい向きには、ちゃんと KVMベースのバーチャルマシン環境も用意されています。別の機会に、面白そうな OS をインストールして、その手順をご紹介できればと思っています。

