NextCloudをwasabiに接続し格安の制限無しストレージにする

##NextCloudは無料で使用できる便利なクラウドストレージ
NextCloudは、DropBoxやEverNoteのようなクラウドストレージを構築できる、オープンソースのアプリケーションです。
DropBoxやEverNoteも愛用していましたが、有料化の流れが激しく、無料版には容量の制限や接続台数の制限があり、使い勝手が悪くなったので、NextCloudを構築して徐々に乗り換えました。スマホやタブレットのアプリも無料でありがたいです。
テレワークの時代になり、業務で導入しNextCloudの活躍の場が広がりました。社内ユーザー同士のファイル共有が便利です。今まで社内LANに接続されたネットワークHDDからNextCloudへと、流れが加速しています。
さらに、パスワード付きZIPファイルが非推奨の流れになり、NextCloudのパスワード・期限付き共有URL機能が、セキュリティ的にも有効に使わせてもらっています。

##使えば使うほど問題が
便利なNextCloudですが、使えば使うほど問題が出てきます。
そうです。ディスクの容量です。
個人で使うならともかく、社内使用で数十人が使用すると、すぐに容量が逼迫します。
１人最大１TBとしたら、数十テラバイトが必要な計算となります。半分だとしても・・・
現在でも２回ほどストレージの拡張をしてきました。
でも通常のブロックストレージでは限界がありますよね・・・！！
そうです！ブロックストレージではなくオブジェクトストレージならばどうでしょう。
NextCloudではAmazon S3のオブジェクトストレージにも対応しており、これならば容量に限界はありません！
しかし、S3って意外と高いんですよね。。。AWSはトラフィックにも課金されるのでいくらかかるのか予想も困難です。

##わさび？
wasabiという格安のオブジェクトストレージのサービスを見つけました。

https://wasabi.com/
![image1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59033/70a61023-b322-275d-80be-39243c0c9fdb.jpeg)

トラフィック課金がなく、１TBあたり$5.99と格安で、さらにトラフィック課金がありません。
下記はコスト計算のページです。10TBで設定してもみました。
![image1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59033/525f21b6-7716-c552-4cbf-c4eaec163434.jpeg)
AWS等と比較すると激安なのが見てわかります。

しかし、トラフィック課金が無しで大丈夫かな～と思っちゃいます。
だってアダルト系とかのダウンロードサイトに使われたら運営していけるのかと余計な心配をしてしまいます。

さらに運営元が潰れたり、あるいは突然値上げされたりすると、代わりの行き場がなくて困りますよね。

運営元は、Wasabi technologies。このサービスのために設立された会社のようです。
NTTグループも一部出資しているようですし、グループでサービスとして取り扱っているようです。
https://ecl.ntt.com/service-introduction/wasabi/
https://web.arena.ne.jp/wasabi/

エンタープライズクラウドとして扱っているようなサービスなので、すぐに潰れることは無いだろうと思い、NextCloudのストレージとして試してみることにします。

※注：NTTグループだからといえ安心ではありません。「クラウドn」のように全廃されたサービスもありますし。

#まずはトライアル
wasabiのサイトでは1TBまで30日間の無料トライアルサービスがあります。
日本のNTTグループのサイトでは無料トライアルが無い様なので、オリジナルサイトでトライアルしてみます。
![image1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59033/ce56aea0-cf26-34fc-e0dd-5cbd0a9de337.jpeg)
必要事項を入力すると、以下のようなメールが送られてきます。
![image1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59033/c54bd685-bdd2-784e-1857-761649349bd6.jpeg)
このメールにも書かれていますが、ログインして支払い方法を登録するとトライアルがスキップされるようです。
リンクをクリックしてアカウント作成を続行します。
![image1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59033/45c22144-4ce0-9677-3e4b-af0b43699005.jpeg)
パスワードを設定して完了です。
管理画面にログインした状態になります。
![image1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59033/62f169c3-86bb-771a-0b93-cd8a966ee3d6.jpeg)

#オブジェクトバケットの作成
早速「CREATE BUCKET」ボタンを押して、バケット(ルートフォルダーのようなもの)を作成します。
![image1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59033/2d828e9a-1fa8-7ce6-a1ff-9063995280a0.jpeg)
ここで戸惑ったのが、バケット名「Bucket Name」です。
なんだか他の人が使っている名前は使えないようで、一意の識別子(他と重ならない名前)にしなくてはならないようです。
リージョン(サーバーセンターの場所)も日本は無く、地理的に近いと(感じられる)US-WEST-1にしました。
確認すると、下記のようにNTT経由でないと東京リージョンは使えないようです。

https://wasabi-support.zendesk.com/hc/en-us/articles/360039372392-How-do-I-access-the-Wasabi-Tokyo-ap-northeast-1-storage-region-

「Next」ボタンを押して次に進みます。
![image1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59033/afd5ed2f-a3c7-bae5-c8c2-5b4a991c76c7.jpeg)
今度はバージョニングとロギングをONにするボタンです。バージョニングONでは、更新ごとのファイルが残り容量が増えますし、ログは今回は不要かなと思い、両方ともデフォルトOFFのままで「Next」ボタンを押します。
![image1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59033/f698b782-49b6-06a4-a464-9caaebaa3017.jpeg)
最終確認で「CREATE BUCKET」ボタンを押します。
![image1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59033/587415a4-e197-c83e-0cef-7fc483309e4f.jpeg)
これでバケットが作成され、データをアップする準備ができました。

#ファイルのアップロードテスト
管理画面からファイルをアップロードすることもできますが、外部からファイルをアップロードしてみます。
まずはバケットにアクセスするために、アクセスキーを生成します。
![image1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59033/2824562d-db87-340b-941b-768e697c6ca7.jpeg)
左のメニューから「ACCESS KEYS」を選択し、「CREATE NEW ACCESS KEY」ボタンを押します。
![image1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59033/18132e28-6c2c-f1be-0bb4-f7b0c5066d2b.jpeg)
権限を制限したサブユーザーも作成できるようですが、今回はルートユーザー(root)を作成します。
![image1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59033/06b9ca6e-d954-39c8-ac03-9b04a78dcac7.jpeg)
これでアクセスキーとシークレットキーが作成できました。再表示できないのでダウンロードして保存しておきます。

接続のテストですが、WinSCPを使用します。
WinSCPの新しいバージョンでは、Amazon S3のアクセスキーとシークレットキーによるアクセスに対応していて、FTP/SFTPのようにファイルの送受信をすることができます。

WinSCPの「新しい接続」「新しいサイト」画面から、セッションの転送プロトコルに「Amazon S3」を選びます。
![image1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59033/0afe4323-68a5-3ec4-7ad4-fc7d1d41542b.jpeg)
ホスト名に「s3.wasabisys.com」、ポートはそのまま「443」、アクセスキーとシークレットキーは先にダウンロードしたものを入力します。
設定が終わったら念の為「保存」ボタンを教えてから「接続」ボタンを押します。
![image1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59033/8c4f7361-7902-c26d-d208-f7bc8688c598.jpeg)
エラーも無く接続され、右ウインドウにはバケット名が表示されています。
バケットフォルダに入り、ファイルをアップしたり、フォルダを作成できます。
これでテストは完了です。

#NextCloudへの接続
それではwasabiをNextCloudに接続してストレージとして設定します。
まずは、NextCloudの管理者画面の「アプリ」で「外部ストレージ」のメニューが有効になっているのを確認します。
メニューに表示されない場合は、「External Storage Suppert」が有効になっているか確認してください。
![image1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59033/74fb13c0-384a-2c7c-6a32-e8deba06924e.jpeg)

外部ストレージが有効になると、個人と管理(全体)のどちらにも「外部ストレージ」が表示されます。

NextCloudでは各個人に外部接続ストレージの接続を許可できます。
何と素敵な仕様でしょう！！各自が自分のストレージを自由に繋げられるのです。

今回はこの個人エリアにwasabiを接続し問題なく使えるのか、検証します。
全体に影響を与えないので検証には最適です。
![image1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59033/193fc1c7-7bb8-2164-4bb9-764cbffaca10.jpeg)
画面のように、「ユーザーに外部ストレージを許可する」「Amazon S3」をチェックしてください。

設定後、「個人」メニューの「外部ストレージ」を選択します。

設定方法は下記を参考にしました。
https://wasabi-support.zendesk.com/hc/en-us/articles/360029643411-How-do-I-use-NextCloud-with-Wasabi-
が、うまくいかない。アラートのアイコンが出てしまいます。

他の方の設定例を参考にして、リージョンを含めてみます。何とか次の設定でうまく接続できました。
![image1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59033/b364a336-da4f-5326-ac64-6a6c534848a2.jpeg)
フォルダ名は任意で「wasabi」、外部ストレージは「Amazon S3」、認証は「アクセスキー」です。
設定は、バケット名は設定したバケット名、ホスト名はリージョン含めたURL、ポートはブランク、リージョンはリージョン名(us-west-1)、SSLを有効にチェック、パス形式を有効とレガシー認証はチェックを外します。アクセスキーとシークレットキーは先にダウンロード保存したものを入力します。

リージョンのURLを下記を参考にしました。WinSCPで接続できた「s3.wasabisys.com」ではなぜか接続できませんでした。
https://wasabi-support.zendesk.com/hc/en-us/articles/360015106031-What-are-the-service-URLs-for-Wasabi-s-different-regions-

#無限のストレージが使えるようになった
接続が成功すると、個人用のファイルダッシュボードに「wasabi」という名前で設定したフォルダが表示されます。
WEB画面からwasabiフォルダを選択し、写真をアップロードしてみます。
![image1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59033/b787a171-0fa9-0376-c57c-1611c5e9b53b.jpeg)

別の端末でのダウンロードやURL共有など、他のフォルダと同様に扱えました。

ただ、デスクトップアプリのフォルダー同期、エクスプローラー上でのフォルダ表示には、タスクバーアイコンをクリックして現れるNextCloudの設定メニューでの操作が必要です。

最後に、アップロードした写真ファイルを、wasabiの管理画面から確認してみます。
![image1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59033/838ad787-956a-e634-8ec9-3c9a53f1368f.jpeg)
暗号化設定していないので、そのままのファイル名で表示されています。
使い方によっては、NextCloudでファイルをアップしてWEB更新みたいなこともできそうです。

速度は当然ローカルストレージより遅くなるでしょう。

ACLも細かく設定できるようなので、セキュリティを考慮してNextCloudサーバーからのみ接続できるようにしなくてはならないですね。

しばらく使ってみて問題なければトライアルから本採用に変更してみるつもりです！