NextCloudと無料サーバー + AWS S3で、無限に拡張できる専用クラウドストレージを格安で構築する
オープンソースのNextCloudとスターサーバー フリー、AWS S3、Cloudflareで、なるべく0円に近いくらいの格安ではじめられる、無限に拡張できる専用クラウドストレージを構築します。
今回の狙い
NextCloudのセットアップは、GCPの無料プランを使ったり、大容量のレンタルサーバーを使ったり、他にも方法はたくさんありますが、今回は、
- ストレージ容量にだけコストをかける
- ストレージは将来的に簡単に拡張できる
- 最初はほぼ無料でできる
という点を重要視しました。
「料金は多少かかっても良いから簡単にインストールしたい」という方は、Nextcloudのアプリケーションイメージが用意されているVPSサーバーがおすすめ。管理画面からクリックしてVPSインスタンスを作成するだけで、Nextcloudサーバーが一発で作成できます。
【2025年版】クラウド・ストレージOSS「Nextcloud」を簡単構築できるVPSサービスを徹底比較!
大手クラウドストレージよりも自由があり、使い方次第でコストを数分の一まで削減できるクラウド・ストレージOSS「Nextcloud」。構築が意外と手間ですが、「秒で構築」も可能なVPSサービスを比較します。
NextCloudとは
Dropboxのようなオンラインストレージサイトを自前で構築できるOSSです。PHP + MYSQL or SQLiteがあれば構築できるので、レンタルサーバーなどでも使えるのが大きなメリットです。
Dropboxなどと同様に、Windows、Mac、iOS、Android向けのアプリも用意されていて、複数端末での同期も簡単です。
また、ノートやカレンダーなどのアプリを追加することで、クラウドストレージ以外の機能を追加することもできるため、企業のオンラインツールとしても有用です。
今回使うサービス
スターサーバー フリー PHP+MYSQLプラン
ネットオウルの展開するスターサーバーのフリープランです。
ネットオウルが運営するスターサーバーの無料版。プランによって広告挿入があったりメール機能がないものの、無料サーバーとしては十分なレンタルサーバーになっています。
容量が2GBと低容量ですが、PHP 7系とMYSQLが無料で使えます。無料なので、いくつか制限もあります。
- スマホ・タブレットからのアクセスで広告が入る
- 半年ごとに更新ボタンを押さないと契約が切れる
- 独自ドメインが一個しか登録できない
- 独自ドメインでSSLが使えない
具体的には、このような制限がありますが、個人や大規模な会社でない限りは問題ないでしょう。
広告については、NextCloudはスマホアプリが用意されているので、モバイル環境ではスマホアプリを使えば広告とは無縁になります。
独自ドメインでSSLが使えない件については、今回はCloudflareのプロキシで対応します。
AWS S3
とはいえ、継続的に使うとなると2GBストレージでは心もとないので、将来的にストレージを拡張することを念頭に、NextCloudで使えるクラウドストレージを利用します。
NextCloudのプライマリーストレージには、Amazon Web Service(AWS)のクラウドストレージサービス・S3が設定できるので、こちらを使います。
S3は使用した分だけコストが請求される仕組みなので、小さく始めるのに最適です。
今回は、ドキュメント主体で大きなファイルを保存しない予定なので、1GB程度の容量で転送も1GB程度と見積もると、月額0.06ドル(7円くらい)でした。
これくらいであれば、将来的に従業員が増えたとしても、一人1GBであればひとりあたり10円未満で運用ができます。
なお、完全無料で構築するのであれば、AWS S3互換で無料枠があるCloudflare R2 Storageを使うのがオススメです。
NextcloudでCloudflare R2 Storageを外部ストレージとして使う方法
AWS S3互換で完全無料で使うことも出来るクラウド・オブジェクトストレージ「Cloudflare R2 Storage」をNextcloudの外部ストレージとして使う方法をまとめました。
Cloudflare
上記の通り、スターサーバーのフリープランではSSLが使えないので、SSL化はCDNのCloudflareで行います。
データはCloudflare経由にすることで、Cloudflareの発行したSSLが使えます。
実際に構築する
!! 作業前に !!
- 独自ドメインでNextCloud使う場合には、予め用意してスターサーバーで使えるように設定しておいてください
- データベースにMYSQLを使う場合は、予め設定しておいてください
- DNSにはCloudflareを使うので、登録の上DNSレコードを追加してプロキシ(雲マーク)をオンにしておいてください。
NextCloudのWebインストーラーを入手する
NextCloudにはWeb上でインストール&設定ができるWebインストーラーが用意されているので、そちらを使います。
こちらのページから「Download for server」をクリックして、「Web Installer」タブをクリック、「Right-click here and save the file to your computer」のリンクを右クリックして、リンク先のファイルをローカルに保存します。
setup-nextcloud.phpというファイルが取得できればOKです。
スターサーバー フリーにNextCloudをインストールする
先程の「setup-nextcloud.php」をFTPや管理画面上のWeb FTPからディレクトリルートにアップロードして、「http://ドメイン/setup-nextcloud.php」にアクセスします。
すると、ウィザードが表示されるので、ウィザードを進めてDBの設定やディレクトリ、管理ユーザーの設定などをすればOKです。
スターサーバー フリーのPHP + MYSQLプランでは、MYSQLが使えるので、データーベースはMYSQLにするのがおすすめです。
500エラーが発生したら。。。
インストールが完了すると、いきなり500エラーが発生して焦りますが、.htaccessの設定が問題なので、インストーラーが自動生成した.htaccessを下記のものに変更すればOKです。
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} DavClnt
RewriteRule ^$ /remote.php/webdav/ [L,R=302]
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteRule ^\.well-known/host-meta /public.php?service=host-meta [QSA,L]
RewriteRule ^\.well-known/host-meta\.json /public.php?service=host-meta-json [QSA,L]
RewriteRule ^\.well-known/webfinger /public.php?service=webfinger [QSA,L]
RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]
RewriteRule ^remote/(.*) remote.php [QSA,L]
RewriteRule ^(?:build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]
RewriteCond %{REQUEST_URI} !^/\.well-known/(acme-challenge|pki-validation)/.*
RewriteRule ^(?:\.|autotest|occ|issue|indie|db_|console).* - [R=404,L]
ErrorDocument 403 //
ErrorDocument 404 //
プライマリストレージをAWS S3にする
続いて、プライマリストレージをAWS S3にします。
設定方法は下記のページが詳しいので、ここでの詳しい解説は省略します。
S3をNextCloudのプライマリストレージ(データディレクトリ)に設定する方法
NextCloud絡みで重要なのは、conifg/config.phpの設定記述です。後述のSSL強制設定も同時に書いてしまいます。
'installed' => true,
// ここから
'objectstore' => array(
'class' => 'OC\\Files\\ObjectStore\\S3',
'arguments' => array(
'bucket' => '<バケット名>',
'autocreate' => true,
'region' => '<S3のリージョン>',
'key' => '<20文字の大文字英数字のアクセスキー>',
'secret' => '<40文字の英数字記号のシークレットキー>',
'use_ssl' => false,
'use_path_style'=> false,
),
),
),
'overwriteprotocol' => 'https',
// ここまでを追加
なんちゃって常時SSL化
上記の設定ファイルの最後のoverwriteprotocolは、プロキシ環境下でURLをhttpsに統一するための設定です。
今回は、CloudflareのプロキシでSSL化しているので、サイト自体は非SSLサイトで構築されています。なので、たまにNextCloud内を回遊していると非SSLなページに飛んでしまうことがあるので、それを防ぎます。
ちなみに、.htaccessを使ってSSL転送してしまうと、
- (1)アクセスするとHTTPSページにリダイレクト
- (2)Cloudflare側でHTTPページを見る
- (3)HTTPSページにリダイレクト
というリダイレクトループに陥るので利用できません。
実際に使ってみる
無料サーバーでNextCloudを使う準備ができました。
先程のログイン画面からログインをして、ファイルの追加やアプリの登録などをしてみてください。
ファイルの追加・削除ができて、AWS S3にファイルが追加されていればOKです。
無料サーバー・スターサーバー フリーとAWS S3で格安オンラインストレージを構築する方法を見てきました。
スターサーバー フリーだけでは、SSLやストレージ容量に問題がありますが、CloudflareやAWS S3使うことで、クラウドの拡張性を持った、格安でセキュアな専用クラウドストレージを構築することができました。
クラウドストレージとレンタルサーバーを使った自前クラウドストレージの比較については、下記の記事をどうぞ。
クラウドストレージ vs レンタルサーバーどっちが安い?使い勝手がいい?
オンラインストレージとして、クラウドストレージとレンタルサーバーを比較。プランごとの料金比較、コスパ比較や、機能面での比較などを、クラウドストレージを選ぶ際の参考になるようにまとめました。
この記事で紹介したサーバーサービス
ネットオウルが運営するスターサーバーの無料版。プランによって広告挿入があったりメール機能がないものの、無料サーバーとしては十分なレンタルサーバーになっています。
価格は記載がある場合を除き、すべて税込みです。
関連キーワード
クラウドサーバーの新着記事
- クラウドサーバーさくらインターネットが無料のクラウドシェルサービスをリリース 2023.5.29
- クラウドサーバーCloudflare R2 Storageのファイルを簡単にバックアップする方法 2023.2.7
- クラウドサーバーNextcloudでCloudflare R2 Storageを外部ストレージとして使う方法 2023.2.6
- クラウドサーバークラウド活用してレポジトリの自動バックアップを用意する方法 2022.5.26
- クラウドサーバー独自ドメインで使えるオフィススイート・サービスまとめ 2022.1.20
- クラウドサーバー独自ドメイン版G Suite終了へ。既存ユーザーはどうすれば良い?代替サービスは? 2022.1.20
- クラウドサーバー勝手に増えていくCloud Storageのコンテナイメージを自動で削除する 2021.2.8
- クラウドサーバーGoogle Cloud Storageでライフサイクルを設定してコストを削減する 2021.2.5