3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OSSのクラウドストレージのNextcloudとS3の連携をやってみた

Last updated at Posted at 2025-09-10

はじめに

こんにちは!社会人一年目?のタレカツです!

今回はOSSでオンラインのストレージ環境を構築できるNextcloudと、S3の連携を行いました。普段は自宅のサーバでNextcloudを動かしているのですが、今回はクラウド上のEC2上で動作させています。一度Jawsの栃木支部でLTさせていただいたのですが、その時にシステムの説明はある程度省略したので、連携の設定について書きたいと思います。

Nextcloudとは

OSSのオンラインのクラウドストレージで、Webブラウザや専用のアプリなどのインターフェースを提供します。オンプレやクラウド上に構築可能です。今回はNextcloudの構築の際の説明はしませんが、今回はAWS上のEC2のUbuntu22.04上で構築しています。

nextcloudとは

nextcloud installについて

とりあえずパラメータなど意識せず構築したいときは、以下のサイトを参考にすることが多いです

システム構成

システム構成は以下のものになっています。EC2上で構築したNextcloudから外部ストレージと呼ばれる機能を用いて、S3を外部ストレージを対象として設定を行っています

名称未設定ファイル.png

設定手順(S3との連携)

以下の手順で作業を行いました。

  1. AWS側の設定(S3やIAMユーザの作成)
  2. Nextcloud側の外部ストレージの設定
  3. 実際の使用画面

AWS側の設定(S3やIAMユーザの作成)

S3の作成

S3は汎用バケットから、デフォルトの設定で作成しています。特にパブリックアクセスなど設定せずに作成しました。

スクリーンショット 2025-09-10 17.49.49.png

IAMユーザの作成とpolicyの作成

Nextcloudの外部ストレージ連携において、IAMユーザのアクセスキーを使用しなくても設定は可能ですが、今回はユーザのアクセスキーを用いて連携を行いました。オンプレサーバだとこの設定を使用するべきですが、今回はEC2上で動いているのでアクセスキーを使わず、EC2などにロールなどを設定して制御もできるとは思います(少しうる覚えなのですが、前回のLTの際は、こちらを採用していた気がします)。

今回作成したユーザ

スクリーンショット 2025-09-10 15.47.17.png

ユーザにアタッチしたポリシー

Actionの設定部分でワイルドカードを使ってますが、いらない権限もあるので注意してください。

スクリーンショット 2025-09-10 15.56.03.png

スクリーンショット 2025-09-10 13.59.53.png

Nextcloud側の外部ストレージの設定

Nextcloud側での設定はWebブラウザ上から行いました。今回はEC2上で構築したNextcloudを構築しているので、セキュリティグループなどの設定は行なっていることを前提としています。

以下がNextcloudログイン画面になります。この際にNextcloud上で登録された、管理者のユーザを使用してログインすることが必要になります。

ログイン画面
図1.png

ログインができたら右上のユーザアイコンから、アプリを選択してください。

ログイン後画面

スクリーンショット 2025-09-10 11.16.24.png

アプリ設定から無効なアプリを選択して、External strage supportを有効にするを押すと、画面から表示されなくなりアクティブなアプリの画面に表示されます。

アプリ設定画面
スクリーンショット 2025-09-10 11.18.20.png

無効なアプリ画面
スクリーンショット 2025-09-10 11.18.33.png

アクティブなアプリ画面
スクリーンショット 2025-09-10 11.19.09.png

次に管理者設定を開き、右側で外部ストレージを選択します。この時に管理者の個人設定の外部ストレージの部分もあるので、気をつけてください。フォルダ名はNextcloudのユーザに対する設定名なので自由に設定できます。外部ストレージではAmazon S3を選択してください。

外部ストレージ設定画面
スクリーンショット 2025-09-10 16.29.10.png

今回S3の設定に必要な項目を入れた後の画面が以下になります。

  1. 認証なしかアクセスキーを選択
  2. バケット名の入力
  3. リージョンの入力
  4. IAMユーザのアクセスキーとシークレットアクセスキーの入力
  5. Nextclouのユーザで外部ストレージを使用できるユーザの選択(今回は管理者ユーザのみ)

その他ホスト名やポートについてですが、こちらはS3互換のオブジェクトストレージを選択する際に設定します。

外部ストレージ設定完了画面
図1.png

実際の使用画面

実際にファイル操作の画面から、ファイルのアップロードとS3側でファイルの確認をした画面になります。

Nextcloudファイル操作画面
スクリーンショット 2025-09-10 13.58.26.png

Nextcloud外部ストレージファイル作成画面
スクリーンショット 2025-09-10 13.59.13.png

S3バケット内オブジェクト確認画面
スクリーンショット 2025-09-10 17.59.52.png

Nextcloud側の外部ストレージの仕組み

Nextcloudは主にphpで書かれており、おそらく以下の部分で外部ストレージの処理が記述されています。私は余りphpが詳しくないので、確認したい方がいましたら、githubのページなどで確認してください。

apps/files_external/lib/Lib/Storage/AmazonS3.php
lib/private/Files/ObjectStore/S3.php

終わりに

今回はS3との連携を行いましたが、外部ストレージでの連携でSMBがあるので、Amazon FSx for Windows File Serverとの連携と、こちらは外部ストレージ連携はないですが、EFSを用いてEC2上にマウントしてストレージとして使用することをやってみようと思います。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?