サーバレス版KubernetesでNextCloudによるAWS、AlibabaCloudのマルチクラウド運用を実現してみる※構築手順付き

2022年06月17日掲載

キービジュアル

はじめに

5月27日に、Alibaba Cloudの技術Meetupである、Alibaba Cloud Developers Meetup #21 が開催されました。まずはご参加・ご視聴頂いた皆さま、および登壇者や関係者、運営に携わっていただいた皆さま、ありがとうございました。
さて、ここにてイベントレポートというかプレゼン内容を振り返って、blogにて残しつつ、微力ながらNextCloudの取り組みについて情報発信してみます。

NextCloud はクラウドやオンプレミスなどのサーバにデータを暗号化しながら保存することができる無料のオープンソースです。NextCloudはDropbox、Google Drive、OneDriveといったクラウドストレージの代替品で、2016年にクラウドベースのSaaSソフトウェアであるOwncloudのフォークとして最初にリリースされています。今回、Alibaba Cloudのサーバレス版Kubernetesを使って、NextCloudをデプロイ、および Amazon Web Servicesとの連携をしてみます。

目次

NextCloudとは

冒頭に述べた通り、NextCloudは、企業や個人向けにクラウドベースのオンラインストレージを構築することができるオープンソースソフトウェアです。NextCloudはクラウドベースなので、Windows/Mac/iPhone/Androidなど複数のオペレーションで利用することが出来ます。元々はownCloud開発者がプラットフォームを開発しましたが、政治的事情など諸事情により、オープンソースへフォーク、2016年6月にリリースしたという経緯があります。

NextCloudは現在日本国内でもポピュラーなので、ここでNextCloudに関する説明は割愛しますが、気になる方はネットで色々調べてみるとよいでしょう。

img-nextcloud-on-severless-k8s-for-multicloud-20220613-01.png

NextCloud運用における価格・コストについて

NextCloudの土台となるクラウドサービスのランニングコストについて説明します。
NextCloudはオープンソースかつGNU AGPLv3ライセンスなので、ソフトウェア代は不要です。

NextCloudは大抵はAlibaba Cloud ECSやAWS EC2、オンプレミスのサーバなどに構築しますが、今回はServerless Kubernetes (ASK)およびRDS、OSSを使います。NextCloud関連の設定ファイルはCloud Diskという永続ボリュームに保存、およびCloud DiskはスナップショットでBackupを取得します。NextCloudの要であるファイルストレージは外部ストレージのOSS(Object Storage Service)に保存します。そのため、例えばNextCloudが壊れた場合でも、保存ファイルに影響を与えずに済みます。そのため、全体的なランニングコストはかなり安く済むことができます。

以下は、例えば10人を超えるユーザが月7TBを超えるデータを保存したりあれこれ処理したりする場合でも、総計で1ヵ月5万円(1USD=120円)で済みます。通常は毎月20、30万円いきますので、それと比べたら結構お得ですね。

img-nextcloud-on-severless-k8s-for-multicloud-20220613-02.png

それでは、構築のデモをご覧ください。

構築Demo内容(1:30)

さて、本日プレゼンの目玉の一つである、KubernetesによるNextCloudデプロイのデモンストレーション動画を流します。構築内容と環境は次の図の通りです。

img-nextcloud-on-severless-k8s-for-multicloud-20220613-03.png

以下のデモンストレーション動画をご覧下さい。

Alibaba Cloud OSS、実はS3とAPI互換性があるんです

このDemoなどでお気づきかもしれませんが、NextCloudの外部ストレージ接続先でAlibaba Cloud OSSは「AWS S3接続先」として接続しています。AlibabaCloud のOSS(Object Storage Service)は、AWS S3のAPIと互換性があります。そのため、NextCloudでAWS S3接続先パスがあったとしても、Alibaba Cloud OSSとして接続することが出来ます。

img-nextcloud-on-severless-k8s-for-multicloud-20220613-05.png

AWS S3 – Alibaba OSS連携Demo内容(2:00)

今度は、AWS S3とAlibaba Cloud OSS連携Demoをします。流れとしては次の通りです。

 

①NextCloudの設定を確認

②AWS S3にファイルをアップロード

③ファイルアップロードした内容がNextCloudで反映されてることを確認

④NextCloud画面で、AWS S3にあるファイルをAlibabaCloud OSSへ移動

⑤Alibaba Cloud OSSで移動したファイルがあることを確認

img-nextcloud-on-severless-k8s-for-multicloud-20220613-06.png

しかし、、

上記Demo通り、KubernetesでNextCloudによるAWS S3 - Alibaba Cloud OSS連携が出来ました。これであれば、既にAWSなどを使っている場合でも、Alibaba CloudとNextCloudによる連携がすぐに実現できます。

しかし、課題がいくつかあります。Alibaba Cloud KubernetesによるNextCloudで、AWS S3からファイルをアップロードしても、NextCloudのシステム構造的な話、オブジェクトスキャン処理の周期からすぐには反映されない課題がありました。
著者は最初、うまく接続できてないかな、と思い、調査してみました。設定周辺を点検しつつ、Chrome DevToolにあるHARファイルからログを確認すると、AWS S3からのファイルアップロードは無事済んでいることが確認できました。さらにNextCloudのソースコードであるphp/javascriptを追って解析したところ、ファイルをアップロードしてもオブジェクトスキャンのタイミング次第では、Webコンソール側で遅れて表示されることが判明しました。

この問題に対し、今回はchromeブラウザのCORS(Closs Origin Resource Sharing)を緩和しつつ、強制再スキャンすることで、AWS S3からのアップロードをすぐ反映するように対処してみました。
ただ、これは美しくないやり方なので、php/javascriptソースコード上で改修が必要そうです。改修する場合、NextCloudのライセンスとしてオープンソースへコミットする必要もあるので、慎重に確認中です。

その他、ファイルアップロードする際、ファイルのサイズが大きいほど、アップロードがうまくいかない、大きなファイルの削除がしにくいなどの課題もありますので、私たちのチームが日々技術的検証中です。乞うご期待。

img-nextcloud-on-severless-k8s-for-multicloud-20220613-08.png

さいごに

NextCloudはオフィス版ITとして非常に便利です。さらに、安価であるAlibaba Cloudで構築することで、ランニングコストの抑制もできますし、NextCloudを通じてAWSなどとのマルチクラウドも実現できます。最終的にはクラウドベンダーロックインの脱却として、AlibabaCloud以外、例えばAWSとAzure連携にも使えるようにしたいとは願っています。

Special thanks to lin/bob/nancy.

img-nextcloud-on-severless-k8s-for-multicloud-20220613-09.png

構築手順

具体的なACKによるNextCloudの構築手順については、後編記事にてまとめていますので、是非ご覧下さい。

関連サービス

Amazon Web Services (AWS)

ソフトバンクはAWS アドバンストティアサービスパートナーです

「はじめてのAWS導入」から大規模なサービス基盤や基幹システムの構築まで、お客さまのご要望にあわせて最適なAWS環境の導入を支援します。

Microsoft Azure

Microsoft Azureは、Microsoftが提供するパブリッククラウドプラットフォームです。コンピューティングからデータ保存、アプリケーションなどのリソースを、必要な時に必要な量だけ従量課金で利用することができます。

Google Cloud

Google サービスを支える、信頼性に富んだクラウドサービスです。お客さまのニーズにあわせて利用可能なコンピューティングサービスに始まり、データから価値を導き出す情報分析や、最先端の機械学習技術が搭載されています。

Alibaba Cloud

Alibaba Cloudは中国国内でのクラウド利用はもちろん、日本-中国間のネットワークの不安定さの解消、中国サイバーセキュリティ法への対策など、中国進出に際する課題を解消できるパブリッククラウドサービスです。

おすすめの記事

条件に該当するページがございません