Nextcloud を Storage Server と連携する:容量、ユーザーごとの容量制限、共有
Nextcloud はユーザー管理、容量制限、共有を備え、Storage Server は容量を提供します。組み合わせれば、小さなサーバー 1 台で足り、テラバイト級のデータは別の場所に置ける自前のクラウドができます。
Nextcloud は、Storage Server にできないことをすべてこなします。ユーザーを管理し、それぞれに専用の容量を割り当て、フォルダーを共有し、パスワードと有効期限を付けたリンクを発行し、ファイルを HTTPS でブラウザーに配信します。一方、Nextcloud を高くつかせるのは容量です。その容量はサーバーの NVMe SSD の上にあるからです。
この 2 つを組み合わせると、実務で定着した構成になります。Nextcloud は小さなサーバーで動かし、ファイルは Storage Server に置くという形です。本記事では設定方法を 2 通り示し、どちらがどんなときに向くかを説明し、必ずつまずくポイントも挙げます。
この組み合わせがよく合う理由
| Nextcloud が提供するもの | Storage Server が提供するもの |
|---|---|
| パスワードと二要素認証付きのユーザーアカウント | 容量、1 TB から 20 TB |
| ユーザーごとの容量制限 | 2 段目のバックアップとしてのスナップショット |
| パスワードと有効期限付きの共有リンク | サーバーとは別のロケーション |
| ログインを伴う HTTPS での配信 | テラバイトあたり数分の 1 のコスト |
| バージョン管理とごみ箱 | 用途を分けられる 100 個のサブアカウント |
多くのプロジェクトで決め手になるのは、この点です。Storage Server にはサブアカウントごとの容量制限がありません。サブアカウントは自分のディレクトリの中にとどまりますが、その中からプラン全体を埋め尽くせます。Nextcloud はまさにそこを解決します。Nextcloud では、ユーザー全員に厳格な容量制限が付くからです。
2 通りの方法と、どちらが優れているか
方法 A:Nextcloud が内蔵の SMB ドライバーまたは SFTP ドライバーで、ストレージに自分で接続します。OS 側に手を入れる必要はありません。
方法 B:ストレージを OS 側でディレクトリとしてマウントし、Nextcloud ではそのディレクトリを指す「ローカル」型の外部ストレージを設定します。
root 権限があるなら、方法 B を選んでください。ファイルシステムを経由するほうが Nextcloud の SFTP ドライバーより体感できるほど速く、とくに小さなファイルが多い場合に差が出ます。ネットワークの一時的な不調にも強いです。方法 A は、OS に手を入れられない、あるいは入れたくない場合の答えになります。
準備:専用のサブアカウント
カスタマーエリアで Nextcloud 専用のサブアカウントを作成し、専用のホームディレクトリ、たとえば /nextcloud を指定します。実際に使うプロトコルだけを許可してください。あわせて「アクセス設定」で外部からの到達可能性がオンになっているかを確認します。オフのままだと、サーバーからストレージに届きません。
本記事の例では次の値を使っていますので、ご自身の値に置き換えてください。
| 項目 | 値の例 |
|---|---|
| ホスト名 | u123456.storage.kernelhost.net |
| サブアカウント | u123456-sub1 |
| 共有名(SMB) | backup |
| SMB のポート | 445 |
| SFTP のポート | 23 |
方法 B:マウントしてローカルストレージとして使う
まずマウントです。Debian と Ubuntu では次のとおりです。
apt install -y cifs-utils
mkdir -p /mnt/storage
printf 'username=u123456-sub1\npassword=YOUR_PASSWORD\n' > /etc/samba/storage.cred
chmod 600 /etc/samba/storage.cred
続いて /etc/fstab への登録です。これで再起動後もマウントが残ります。
//u123456.storage.kernelhost.net/backup /mnt/storage cifs credentials=/etc/samba/storage.cred,uid=www-data,gid=www-data,file_mode=0660,dir_mode=0770,seal,_netdev,nofail 0 0
重要なオプションは 3 つです。uid=www-data はウェブサーバーに書き込みを許可し、seal は SMB 3 で通信を暗号化し、_netdev と nofail は、ストレージがたまたま応答しないときにサーバーの起動が途中で止まるのを防ぎます。
mount -a
sudo -u www-data touch /mnt/storage/test && echo "書き込みは問題ありません"
そのあと Nextcloud でアプリ「外部ストレージサポート」を有効にし、ストレージを登録します。画面から行う場合は「管理」の「外部ストレージ」で、コマンドラインから行う場合は次のとおりです。
sudo -u www-data php occ app:enable files_external
sudo -u www-data php occ files_external:create データ local null::null -c datadir=/mnt/storage
sudo -u www-data php occ files_external:list
これで「データ」フォルダーが、許可したユーザーに表示されます。許可はユーザー単位またはグループ単位で設定できるので、全員に全部を見せる必要はありません。
方法 A:Nextcloud に直接外部ストレージを登録する
root 権限がなくても、マウントせずに実現できます。SMB を使うには、対応する PHP 拡張が必要です。
apt install -y smbclient php-smbclient
systemctl restart php8.3-fpm
そのうえで「管理」の「外部ストレージ」に項目を追加します。
| 項目 | 値 |
|---|---|
| フォルダー名 | データ |
| 外部ストレージ | SMB / CIFS |
| ホスト | u123456.storage.kernelhost.net |
| 共有 | backup |
| リモートサブフォルダー | nextcloud |
| ユーザー名 | u123456-sub1 |
| パスワード | サブアカウントのパスワード |
SFTP を使う場合は、代わりに種類として「SFTP」を選び、ホストに u123456.storage.kernelhost.net、ポートに 23 を入力します。この方法で最も多いつまずきがここです。Nextcloud は 22 を提案しますが、当社のストレージが待ち受けるのは 23 です。
ユーザーごとに容量制限を割り当てる
ここからが、この構成すべての理由になる部分です。「管理」の「ユーザー」で、アカウントごとに容量、たとえば 50 GB を入力します。コマンドラインから行う場合は次のとおりです。
sudo -u www-data php occ user:setting photographer1 files quota "50 GB"
Nextcloud はこの値に、バージョンとごみ箱の分も含めて計算します。それが正しい挙動ではあるのですが、意外に思われがちです。50 GB を割り当てられて 50 GB をアップロードした人は、古いバージョンのせいで思ったより早く上限に近づきます。追加より差し替えが多いアカウントでは、バージョンの保持期間を制限しておくと効果があります。
自分のウェブサイト向けの共有リンク
Nextcloud から見れば、外部ストレージはほかのフォルダーと変わらないので、共有もそのまま機能します。パスワードと有効期限を付けたリンクは 3 回のクリックで作成でき、ファイルはストレージから直接ではなく Nextcloud 経由で配信されます。つまり、ストレージの認証情報がサーバーの外に出ることはありません。
これこそ、Storage Server だけでは足りない部品です。ダウンロードページのあるウェブサイトを運営しているなら、ユーザー管理、権限、配信をまとめて手に入れられます。自分でプログラムを書く必要はありません。Nextcloud を使わない場合にどうなるかは、Storage Server を自分のウェブサイトで使うで解説しています。
必ずつまずく 4 つのポイント
- データディレクトリはストレージに置かないでください。技術的には可能ですが、実務では危険です。Nextcloud はそこにロックファイルや中間データも書き込むため、ネットワークが一瞬途切れるだけでインスタンス全体が止まります。外部ストレージなら、障害の影響はそのフォルダー 1 つだけにとどまります。
- データベースはローカルに残します。これは例外なしです。ストレージに置くのはファイルであって、それ以外は置きません。
- Redis を設定してください。ファイルロック用のキャッシュがないと、外部ストレージを使う Nextcloud は体感できるほど遅くなります。ロックのたびにデータベースを経由するからです。
- ポートは 22 ではなく 23 です。SFTP では Nextcloud が 22 を提案します。当社のストレージが待ち受けるのは 23 で、このときのエラーメッセージはあまり役に立ちません。
どのサーバーとどのプランを選ぶか
Nextcloud 自体には小さなマシンで十分です。ファイルは別の場所にあり、サーバーは管理だけを担います。数人から数十人程度のアクティブユーザーなら、Redis が動いていてバックグラウンド実行が設定済みであれば、RAM 4 GB から 8 GB で足ります。その手順は Nextcloud を自分のサーバーにインストールするで解説しています。
ストレージ側は、必要な容量で選びます。
| プラン | 容量 | スナップショット | 料金 |
|---|---|---|---|
| Storage-1 | 1 TB | 手動 10 個と自動 10 個 | 9.99 EUR |
| Storage-2 | 5 TB | 手動 20 個と自動 20 個 | 29.99 EUR |
| Storage-3 | 10 TB | 手動 30 個と自動 30 個 | 39.99 EUR |
| Storage-4 | 20 TB | 手動 40 個と自動 40 個 | 69.99 EUR |
すべての Storage Server はドイツに設置されており、SMB、SFTP、WebDAV などに対応し、サブアカウントを 100 個まで作成でき、スナップショットも備えています。初期費用なし、プリペイド方式、最低契約期間なしです。必要な容量が増えたら、データに手を触れずに上位プランへ移行できます。
よくあるご質問
大きなディスクを積んだサーバー 1 台で済ませては駄目なのですか?
SMB と SFTP のどちらを使うべきですか?
ユーザーごとに容量を割り当てられますか?
外部ストレージにせず、データを直接ストレージに置けますか?
ストレージ上のファイルでも共有リンクは使えますか?
速度はどのくらいですか?
ストレージに一時的に到達できなくなったら、どうなりますか?
ストレージ上にデータベースは必要ですか?
小さなサーバーで何人のユーザーをさばけますか?
この組み合わせの費用はどのくらいですか?
2026 KernelHost GmbH。無断複写・転載を禁じます。本ガイドは著作権により保護されております。他のウェブサイトへの掲載は、一部のみの場合や編集を加えた場合であっても、当社の書面による同意なしには認められません。出典の明記とリンクを添えた引用は歓迎いたします。

