NextCloudをロリポップサーバーとAWS S3を利用して構築する
クラウドサービスを契約するよりは自分で構築したほうが安いと考えて、NexClouudの構築を検討した。
結果として、ロリポップサーバーとAWS S3の組み合わせが安そうなので検証してみた。
事前注意
NextClouudにてインストールするアドオンは以下の2点となる。
- Flow Upload
- Preview Generator
.htaccessの一番下に以下を記入する
php_value upload_max_filesize 10G php_value post_max_size 10G
ただし、弱点としてNextCloudで動画のサムネイルを作成する場合「ffmpeg」が必要となる。
ロリポップサーバーでは、yumやaptが使用でき無い点や、「/usr/local/bin」などの制御もできないため、現状ffmpegが使用できないことから動画のサムネイルを作成できない問題がある。
ロリポップサーバーについて
ロリポップサーバーにて、NextCloudを構築する上で一番安いライトプランで実装してみた結果、画像は問題ないが動画が再生されないことがわかっているので、事前にお伝えする。
動画を扱うためには、ハイスピードプランを契約する必要があり、S3料金も月に500円以上かかることを踏まえると月々1000円以上の出費となる。
そのため、Google DriveやiCloudなどのサービスが1200円ほどで2TBであることから、2TBを下回る利用の場合は既存のサービスのほうがコストパフォマンスが良いと思われる。
無制限で1000円ほどでクラウドがほしいという方向けの記事となるため、ここは注意してほしい。
AWS S3の設定
AWSにて、まずはAMIを作成し、S3へのフルアクセスを許可します。
その後、アクセスキーを控えておきましょう。
S3にてバケットを作成し、パブリックアクセスを許可しないように設定しましょう。
S3へのアクセスは、AMIのみ許可する形とし、セキュリティをあげます。
S3の設定は、AMIとS3バケットくらいですので、これで完了です。
サーバー設定
それでは、本題のサーバー設定を記録する。
NextCloudは、セットアップファイルを配下に置き、ページにアクセスするだけで設定を完了させることができる。
以下、サイトより「Web Installer 」を選択し「nextcloud.php」をロリポップサーバーへアップロードし、「https://{domain}/nextcloud.php」へアクセスし、インストールを開始することでサーバーの設定を行うことができます。
その後、ロリポップサーバーにてデータベースを作成し、後ほどNextCloudの設定画面にて必要な設定を記録しておきましょう。
セットアップ完了
これでいよいよ準備が完了しますが、NextCloudにてS3を利用できるような設定を行います。
NextCloudのインストールにて生成された「config/config.php」へ以下を記述いたします。
<?php
// config/config.php
$CONFIG = array (
'objectstore' => array(
'class' => 'OC\\Files\\ObjectStore\\S3',
'arguments' => array(
'bucket' => '<S3バケット名>',
'autocreate' => true,
'region' => '<S3のリージョン>',
'key' => '<20文字の大文字英数字のアクセスキー>',
'secret' => '<40文字の英数字記号のシークレットキー>',
'use_ssl' => false,
'use_path_style'=> false,
),
),
);
この状態で、いよいよNexCloudの設定画面へ遷移し、管理者ユーザーとデーターベースの情報を入力し、セットアップを完了させます。
セットアップの完了後、S3バケットへファイルが格納されていたら、無事にセットアップが完了となります。
あと書き
セットアップしてわかったが、エントリープランでは、動画がスムーズに再生されないため、最低でもハイスピードプランを選択する必要がある。
また、冒頭にも書いたとおり、NextCloudにてサムネイルを作成することができないため、「ffmpeg」を使用したいが、サーバー側にてaptやyumが利用できないため、「ffmpeg」をインストールすることができない。
手動で「ffmpeg」をインストールしたが、サーバー側で「PATH」の設定や「/usr/bin」などへの権限がないことから、動かすことができなかった。
そのため、NextCloudをロリポップサーバーで利用するには少し不便にも思われ、画像だけの保管であれば、Amazon PrimeであればPrime Photoが無料であるため、NextCloudの必要性がなくなる。
さくらVPNやAWSにてEC2をセービングスプランなどで購入することでコストを抑えられるが、サクラVPNでやってしまうとWEBサーバーとデータベースサーバーが一緒になってしまうため、運用面で懸念点がある。
AWSにてEC2とRDSで運用しようとしてもtシリーズを使用しても月々3000円以上の費用がかかる計算となってしまう。
それであれば、Google CloudやiCloudの月額1300円で2TBのプランで充分ではないか?と感じられる。
費用面で最も効果的と思われるのが、やはり家にRaspberry Pi 4にてNexCloudをSSDボリュームで起動し、S3と連携した方が良いように思われる。
ただし、ドメイン問題なども浮上するため、やるとしたらローカルでの運用となるでしょう。
Wi-FiルーターのダイレクトDNSなどで外部からアクセスすることができるが、私が利用しているIIj光とBuffaloのルーターですと、なぜか外部アクセスができない問題がある。
おそらくPPPoE関連の設定であり、DS-Lite接続やIP6v接続などが原因ではないか?と思われる。
っというわけで、色々と構築から費用面で検証してみた結果、既存のクラウドサービスが以下にコスパがいいかが感じられる結果となった。
不知道说啥,开心快乐每一天吧!