LinodeでNextcloudを構築して格安で大容量のオンラインストレージを手に入れよう

# Linodeとは

Linode (https://www.linode.com/) は Akamaiが提供するIaaS (Infrastructure as a Service) プラットフォームプロバイダーのサービスです。リノードと発音します。
Akamaiは2022年2月にLinode社の買収を発表しました。
https://www.akamai.com/ja/newsroom/press-release/akamai-to-acquire-linode
クラウドコンピューティングをよりシンプルに、手頃な価格で、誰もが利用できるようにすることで、イノベーションを加速することができます。
https://www.linode.com/ja/alternative-cloud-provider/

# Linode Object Storage とは

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/cd7e77ba-cc88-036a-0a94-96f5cc55dff2.png)

Linode Object Storageは様々なリージョンで利用可能なS3互換の低価格なAkamai Cloud Computing Serviceのストレージソリューションです。
ストレージはNVMe SSDにて動作しており、HDDに比べて高いパフォーマンスと低レイテンシーなアクセスを実現することができます。
データ量は250GBから100TB(※1)まで拡張することができ、オブジェクトはリージョン内でレプリケートされており冗長性が担保されています。
インバウンド転送無料、アウトバウンド1TBまでの転送が標準の価格に含まれており、追加の転送料金は1GBあたり0.005ドルとかなり低コストなのが特徴です(※1)。
今後のアップデートではデータ量が最大1PB、オブジェクト数は最大10億に対応する予定があります。

- [Linode Object Storage](https://www.linode.com/ja/products/object-storage/)
- [Enhancing Object Storage Performance](https://www.linode.com/blog/cloud-storage/nvme-object-storage-enhanced-performance/)
- [Akamai Cloud Computing Services(Linode)とは何かをわかりやすく解説](https://qiita.com/isss802/items/5313c7a6da1d9ed50a38)

※1 リージョンによって制限や価格が異なります、詳しくは[こちら](https://www.linode.com/docs/products/storage/object-storage/#specifications)を参照ください。


# Nextcloudとは

Nextcloudは、ownCloudからフォーク（派生）されたオープンソースのオンラインストレージです。
オンプレミスやプライベートクラウドにシステムを構築することが可能なため、低価格なプラットフォームを選択してオンラインストレージを作成することができます。

https://nextcloud.com/

# LinodeでNextcloudを構築して格安で大容量のオンラインストレージを手に入れよう

LinodeにはNextcloudの構築に必要なコンピューティングリソースとオブジェクトストレージがあります。
今回は、2つを組み合わせて大容量で低コストのオブジェクトストレージを構築します。
この構成では月額15ドル程度から利用を始めていくことができます。

## サーバーとオブジェクトストレージの選定

今回は、メモリ4GB CPU2コアの共有サーバーを選択します。
Linodeのサーバーは時間単位で課金され、今回のサーバーは月額は20ドルとなります。
この20ドルのサーバー費用の中には、SSDが80GB、ネットワーク転送料が4TBが含まれています。
この範囲内であれば追加費用なしで運用していくことができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/613c113f-dc98-7b34-4f64-7b42cc09acd0.png)

付与されている80GBのディスクでは大容量のストレージは確保できないため、今回はLinodeのオブジェクトストレージを活用します。
Linodeのオブジェクトストレージは月額5ドルから利用でき、価格には1TBの転送料が含まれています。
S3互換ストレージソリューションとなり、データ量は250GBから50TBまで拡張することができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/4989e1f1-7166-b85b-a2da-498833172b19.png)

今回の構成ではNextcloudを**月額25ドル**で構築、運用していくことができます。
低いプランのサーバーを選択すれば、さらに安く構築することも可能です。

## Linodeサーバーの構築
### Linode Marketplaceの活用
今回、Nextcloudの構築はLinodeのMarketplaceを活用して、構築の手間を省きます。

Linode Marketplaceはサーバー構築時にアプリケーションも一緒にインストールしてくれるサービスです。

MarketplaceにはWordPress/GitLab/Grafanaなど様々なアプリがあります。

https://www.linode.com/ja/marketplace/apps/

### サーバーの起動

Linodeのコンソールからサーバーを起動する際に、Marketplaceをタブに移動し、Nextcloudを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/e3b62528-0e43-561d-9cfe-30c0accb2ddd.png)

Nextcloudのセットアップに必要な情報を以下の画面を参考に入力します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/e54fb455-3f12-78d7-6f6c-fb53ab47d549.png)

MarketplaceのNextcloudで起動するOSはUbuntu 22.04 LTSです。
今回のリージョンはオブジェクトストレージが存在する、シンガポールリージョンを選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/fcc317ff-ee62-be33-104e-9f9aa6b2813b.png)

今回、Linodeのサーバープランでは4GBメモリ2コアCPUを選択しましたが、大人数での利用を想定する場合はさらに大きなプランを選択することが可能です。

以下の記事を参考にサーバプランの選択を行ってください。

https://qiita.com/isss802/items/c53315615a7e087cc41a

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/4c90ee9e-e383-aa79-3568-6ba8c9957e42.png)

Linodeサーバー名(Label)を記入し、SSHに接続するRootのパスワード、鍵設定を行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/c8c44f0b-3b94-fde9-3f65-1ab9ea1c9d78.png)

Create Linodeを選択し、以上で入力は終了です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/9c8f836d-3523-1272-bd16-e87d664a3fb0.png)

### DNSの設定

Nextcloudに利用するDNSレコードの登録を行います。

Linodeが起動した際のPublic IPアドレスを控えます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/3544625b-00d5-f166-9516-245ed2a8483a.png)

利用しているDNSサーバーにDNSレコードの登録を行います。
今回は自動的に登録されているため、確認のみとなります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/81d7cc93-1359-dc15-728a-d8879a8dffd4.png)


## Nextcloudの初期構築

ブラウザで、DNSレコードに登録したアドレスにアクセスします。

[https://nextcloud.example.com:8443](https://nextcloud.example.com:8443)

初期セットアップ時に必要なパスワードが表示されます、パスワードは複数の単語がスペースで分かれています。
これをすべて選択し、コピーしておきます。
コピーしたらOpen Nextcloud AIO loginを選択します。

<img width="600" alt="image1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/e00bc4d5-8b4e-d1c2-4bbe-11233fe245fb.png">

先程コピーしたパスワードを入力し、Loginします。

<img width="600" alt="image1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/dfbd35f1-599f-bfde-c480-fddb73896716.png">

New AIO InstanceでNextcloudに利用するサブドメインを入力します。

<img width="600" alt="image1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/c5009785-088a-f554-b617-236966bbf669.png">

Optional addonsは今回はデフォルトのままとし、Start Containersを選択します。

<img width="600" alt="image1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/e27e10ed-5b48-7561-7be9-b745cccd1f39.png">

adminユーザーの情報が表示されますので、ユーザー名とパスワードを保存しておきます。

<img width="600" alt="image1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/f1022a15-a70b-0767-5c8b-d85b8aa76ce5.png">

すべてのサービスが「Running」状態になったら「Open your Nextcloud」を選択し、adminユーザーでログインを行います。

![image.pngk](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/90f185a1-6523-9ac2-9ea2-7dab6284b14c.png)

以上でNextcloudの初期構築は完了です。

### 日本語化

初期設定では英語の画面なので、右上のメニューからSettingsを選択し日本語表示にします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/f356d0dd-cc36-b6b0-e4d8-658de58f7825.png)

## Linode Object Storageの追加

NextcloudにLinodeの大容量のオブジェクトストレージを追加する設定を行います。

右上のメニューからAppsを選択、左側のメニューからFilesを選択、検索窓を開きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/1bb2a780-7552-dd2b-c65b-d97b1c83c360.png)

検索欄にexternalと入力します。

<img width="400" alt="image1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/cfdd8f57-5fd3-abde-1ddc-5d76eb332841.png">

「External storage support」を有効にします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/44c04dce-e0fd-4941-1398-df78c859f977.png)

右上のメニューから設定を選択、左側のメニューから外部ストレージを選択、Linode Object Storageの情報を入力します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/44090ac7-0077-5856-8035-f10663dd558c.png)


各リージョンのCluster IDは[**こちら**](https://www.linode.com/docs/products/storage/object-storage/#availability)から確認できます。


Linode Object Storageのアクセスキーは以下から発行が可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/61074b58-8f51-f826-ca18-7d31f98816db.png)

Bucket Nameはコンソールから確認が可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/4dfe4ce9-a8c2-9edb-e190-945c7027caa5.png)

登録が完了したら、ファイルに作成したオブジェクトストレージが追加されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/d67913ba-3aee-58bf-f2f4-f1003efa709f.png)

試しにファイルを作成してみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/cd1e17a6-424f-ad2c-8984-178d2924fe03.png)

コンソールからLinode Object Storageのファイルを確認しても、同様に追加されています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/49877/b63456b8-8f28-0539-e7e6-4c4717048853.png)

以上で構築は完了です。

# まとめ

LinodeのサーバーとObject Storageを組み合わせることで、低価格なクラウドストレージを構築することができました。
Marketplaceを利用することで構築の手間を省くことができ、簡単にクラウドストレージを手に入れることができます。
Linodeでは他にも様々なMarketplaceでのアプリを用意しておりますので、ぜひ活用してみてください。


# 補足

NextcloudのプライマリストレージをLinode Object Storageにしたい場合には、以下の記事を参考にしてください。
https://www.linode.com/ja/blog/devops/using-object-storage-as-the-primary-storage-for-nextcloud/


# 関連記事

アカマイ・テクノロジーズ合同会社のQiitaではLinode関連など開発者向けの記事を記載しております。

https://qiita.com/organizations/Akamai