「クラウドコンピューティング」、略して「クラウド」という言葉が一般的になってから久しいですが、昨今では様々な課題が浮き彫りになってきました。「オンプレミス回帰」や「脱クラウド」という言葉が世間でささやかれるようになった一方、オンプレミスとクラウドを組み合わせた「ハイブリッドクラウド」という利用法も増えてきました。

そこで今回はクラウドとオンプレミス環境を同期させたハイブリッドクラウドを構築してみました!クラウドに障害が発生して接続できない状況を想定してオンプレミス環境からデータを取り出せるかどうか、障害復旧後にオンプレミス環境のデータがクラウドへ同期されるかどうかを実験して確かめてみました!

オンプレミスとは
情報システムを運用するにあたり、自社内設備に機材を設置し、ソフトウェアを運用する形態のことをオンプレミスと呼びます。インターネット上にあるコンピューティングリソースを使って運用するクラウドコンピューティングと対比した形で使われています。

 

目次
1 構築するハイブリッドクラウドの概要
2 オンプレミス環境の構築
3 クラウドからオンプレミス環境への同期
4 クラウドにトラブル発生!
5 オンプレミス環境からクラウドへの同期
6 結果と考察
7 オンプレミス向け小規模サーバに最適なPOWERSTEP 1U
8 まとめ

1 構築するハイブリッドクラウドの概要

構築するハイブリッドクラウドのイメージ

今回の実験にはオンプレミスのサーバとしてUbuntu 20.04 LTSをインストールしたマシンを、クラウドとしてはオンラインストレージサービスのOneDriveを使用しました。想定されるOneDriveのクライアントとしてAndroidスマホ、Windows10のノートパソコンを使用しました。

にゃんこ

こちらのにゃんこを業務に関わる重要なデータに見立てて共有してみます。まずはにゃんこにスマホからOneDriveへ移動してもらいます(厳密に言えば分身に近いですね)。

Androidスマホにいるにゃんこ

OneDriveでくつろぐにゃんこ

にゃんこがスマホからOneDriveへ移動しました。これから、このにゃんこを迎えるオンプレミス環境を構築していきます。

2 オンプレミス環境の構築

OneDrive Client for Linuxのインストール

UbuntuマシンでOneDriveを利用するために「OneDrive Client for Linux」をインストールします。このソフトを利用することでLinuxでもWindows10とほぼ同じ感覚でOneDriveを使うことができます。

1.OneDrive Client for Linuxに必要なソフトのインストール
 Ubuntuマシンで端末を開き以下のコマンドを実行します。

$ sudo apt install build-essential
$ sudo apt install libcurl4-openssl-dev
$ sudo apt install libsqlite3-dev
$ sudo apt install pkg-config
$ sudo apt install git
$ sudo apt install curl
$ sudo apt install libnotify-dev
$ curl -fsS https://dlang.org/install.sh | bash -s dmd

curlコマンドを実行した後、以下のような表示が出るため、「Run」のあとに書かれたコマンドをコピーします。このコマンドはDコンパイラのバージョンによって異なります。

Run `source ~/dlang/dmd-2.094.2/activate` in your shell to use dmd-2.094.2.
This will setup PATH, LIBRARY_PATH, LD_LIBRARY_PATH, DMD, DC, and PS1.
Run `deactivate` later on to restore your environment.

2.OneDrive Client for Linuxのインストール
 上でコピーしたコマンドを実行し、OneDriveをコンパイルしていきます。

source ~/dlang/dmd-2.094.2/activate
git clone https://github.com/abraunegg/onedrive.git
cd onedrive
./configure
make clean; make;
sudo make install
deactivate

3.設定ファイルのコピー
 設定ファイルを、設定ファイル用のディレクトリにコピーします。ここのconfigファイルから同期先のディレクトリを変更できます。デフォルトではホームディレクトリに「OneDrive」というディレクトリが作成され、そこが同期先ディレクトリとなります。

$ mkdir -p ~/.config/onedrive
$ cp ./config ~/.config/onedrive/config

4.サービスの起動
 OneDriveのサービスを起動します。

$ systemctl --user enable onedrive
$ systemctl --user start onedrive

OneDriveと同期

ここからクラウドのOneDriveとUbuntuマシンのOneDriveディレクトリを同期させていきます。Microsoftアカウントは予め作っておきます。

1.アプリケーションの承認
 初めてonedriveコマンドを実行すると、Microsoftアカウントでアプリケーションを承認するように要求されます。

$ onedrive 

Authorize this app visiting:

https://.....

Enter the response uri: 

表示されたURLにアクセスし、Microsoftアカウントでログインすると白紙のページにリダイレクトされます。この白紙ページのURLをコピーし、上記の「Enter the response uri: 」にペーストし、以下のように表示されれば完了です。

Application has been successfully authorised, however no additional command switches were provided.

Please use --help for further assistance in regards to running this application.

2.同期の開始
 同期はデフォルトで5分間隔に行われますが、すぐに同期したい場合はコマンドで同期させることもできます。

onedrive --synchronize

3 クラウドからオンプレミス環境への同期

同期が正しくできていれば、OneDriveまでやってきたにゃんこは間もなくUbuntuマシンに移動します。果たして同期先ディレクトリまでたどり着けているのでしょうか?心配です。ホームディレクトリにあるOneDriveディレクトリを開いてみると…

同期先ディレクトリでお留守番をするにゃんこ

ちゃんとOneDriveディレクトリにたどり着けていました!おりこうさんですね。本当に利口なのはOneDrive Client for Linuxの開発者の方々です。ありがとうございます。

4 クラウドにトラブル発生!

MicrosoftのサーバがシステムダウンしてOneDriveに接続できなくなった!という場合を想定して、Ubuntuマシンの同期先ディレクトリからファイルをダウンロードしてみます。

OneDriveからWindowsマシンまでの道がないため、こっちに来れないにゃんこ

OneDriveにいるにゃんこをWindowsマシンにおいでおいでしたところ、道がなくなっているため来られませんでした。代わりにUbuntuマシンにいるにゃんこにWindowsマシンまで来てもらいましょう。

OneDriveと接続できなくても平気なUbuntuマシンのにゃんこ

本格的に運用する場合はUbuntuでSambaサーバを建て、そこにクラウドからの同期先ディレクトリを作っておいたほうがスムーズですが、今回はscpコマンドを使用してダウンロードします。scpコマンドを使用するにはsshで接続できる必要があるため、このUbuntuマシンではsshサーバが建ててあります。

Windowsマシンのコマンドプロンプトで以下のコマンドを実行します。
userはUbuntuマシンのユーザ名、remotehostはUbuntuマシンのIPアドレスを入力します。

>scp user@remotehost:/home/miyake/OneDrive/ネコ.jpg Pictures
user@remotehost's password:
ネコ.jpg                                             100%  372KB   8.3MB/s   00:00

UbuntuマシンからWindowsマシンへやってきたにゃんこ

Ubuntuマシンでお留守番してもらっていたおかげで、OneDriveに接続できなくてもにゃんこに会うことができました!

5 オンプレミス環境からクラウドへの同期

同期していればUbuntuマシンのファイルがOneDriveにアップロードされ、他のマシンでダウンロードできる

同期と言うとダウンロードだけでなくアップロードも含まれます。OneDriveに接続できない間にUbuntuマシンへアップロードしたファイルが、OneDriveに接続できるようになってからアップロードされる必要があります。
そこで、実際にUbuntuマシンのOneDriveディレクトリに入れたファイルがクラウドのOneDriveへアップロードされるのかどうかを確認しました。イメージとしては上の図のように、①UbuntuマシンのファイルがOneDriveに同期され、②Windowsマシンからファイルが見られるかどうか確認します。
使用するのはこちらのファイルです。

わんこ

こちらのわんこを業務に関わる重要なデータに見立ててUbuntuマシンのOneDriveディレクトリへ入れます。

OneDriveディレクトリ内で並ぶにゃんことわんこ

同期が正しくできていれば、わんこは間もなくOneDriveへ移動するはずです。確認のためWindowsマシンでOneDriveフォルダを見てみます。わんこはOneDriveまでたどり着けているでしょうか…

OneDriveでおすましするにゃんことわんこ

OneDriveにわんこがいました!おりこうさんです。本当に利口なのはOneDrive Client for Linuxの開発者の方々です。ありがとうございます。

6 結果と考察

単体でも便利なクラウドもハイブリッドクラウドでより快適に

にゃんことわんこのおかげで「OneDriveからUbuntuマシンへのデータ同期」「UbuntuマシンからWindowsマシンへのデータ共有」「UbuntuマシンからOneDriveへのデータ同期」が出来ることが分かりました。オンプレミス環境がクラウドの役割を担うことで、OneDriveとscpコマンドという異なったサービスではありますが可用性が向上したと言えます。実験のため簡素なシステムでしたが、UbuntuマシンでSambaサーバを建てたり定期的なバックアップを取れば立派なハイブリッドクラウドとして運用できるのではないでしょうか。

ハイブリッドクラウドは利便性が高いため、今回のようなバックアップ以外にも様々な形での利用が考えられます。例えば、通常時はオンプレミスのサーバを利用し、負荷が高くなったときだけ従量課金制のクラウドサービスを利用して負荷分散することで、最小限のコストで最大限のパフォーマンスを維持することもできます。また、テスト環境として一時的にクラウドを利用してオンプレミスの本番環境へ移行する、ディザスタリカバリとしてデータの保管場所を分けるといった利用法もあります。今後は信頼性の高いオンプレミスと新技術を取り入れたクラウドを連携させたハイブリッドクラウドが普及していくと考えられます。

7 オンプレミス向け小規模サーバに最適なPOWERSTEP 1U

上記の実験ではUbuntuマシンでSSHサーバを建ててファイルのやり取りを行いました。業務でサーバを運用する場合は小規模でも専用のサーバ機器を導入したいところです。

POWERSTEP 1U

POWERSTEP 1Uはオンプレミスの小規模サーバとしておすすめな1Uラックマウントサーバです。OS、プロセッサ、メモリ容量、ストレージ容量などの構成を変えることで様々な用途に幅広く対応できます。

本製品のマザーボードはサーバやワークステーションの製造メーカとして信頼性の高いASUS製のものを使用しています。このマザーボードを搭載したサーバは、すでに弊社で納入実績があるため自信を持っておすすめいたします。

POWERSTEP 1Uの内部

8 まとめ

今回はOneDriveとOneDrive Client for LinuxをインストールしたUbuntuマシンで簡易的なハイブリッドクラウドを構築してみました。クラウドもオンプレミスもいつ障害に見舞われるのか分からないのは同じことなので、両方を上手く利用することが可用性を高めるには重要です。そして、ハードウェアの候補として、ぜひPOWERSTEP 1Uをご検討ください。

POWERSTEP 1U 製品ページ / 見積依頼ページ