このページの本文へ

プリンストンが販売する高機能ストレージ「Drobo」を活用しよう 第46回

Drobo自体でAmazon Web Servicesにアクセス!

Droboに「AWS CLI」を入れ、Amazon S3にデータバックアップ

2019年03月26日 11時00分更新

文● 山口優、編集 ●金子/ASCII.jp

提供: プリンストン

  • この記事をはてなブックマークに追加
  • 本文印刷

Drobo上のファイルをS3にコピーする

 これでようやく、DroboのデータをS3にバックアップするための準備が整った。試しに、Drobo上のファイルをS3にコピーしてみよう。

 まず、WindowsのエクスプローラーでDroboの共有フォルダ「Public」の中に「memo」フォルダを作成。適当なファイルを保存しておく。ここでは「01.jpg」という画像ファイルを保存しておいた。

エクスプローラーでDroboの共有フォルダ「Public」の中に「memo」フォルダを作成し、「01.jpg」という画像ファイルを保存した

 続いて、Tera Termでそのファイルが保存されているディレクトリに移動する。

$ cd /mnt/DroboFS/Shares/Public/memo

Tera Termで画像ファイルが保存されているディレクトリに移動する

 なおNAS型Droboの場合、Adminユーザーのホームディレクトリは以前からなぜか「DroboFS」となっている(Drobo FSは2世代前の製品)。「Drobo5n」や「Drobo5n2」ではないので注意しよう。

 次に、カレントディレクトリ(現在いるディレクトリのこと。ここでは「memo」フォルダ)にあるファイルを実際にS3にコピーする。

$ aws s3 cp {ファイルパス} s3://{バケット名}

上記のファイルパスにコピーしたいファイル名を、バケット名にコピー先のバケットの名前を入れて実行だ。今回の例ではDrobo用に「drobo01.backup」というバケットを作成しているので次のようになる(drobo01.backup部分は自分のバケット名に置き換えてほしい)。

$ aws s3 cp 01.jpg s3://drobo01.backup

ファイルをS3上のバケットにコピーしたところ。「01.jpg」がアップロードされたのがわかる

 これで、「memo」フォルダ上の画像「01.jpg」がAWS S3上の「drobo01.backup」バケットにコピーされた。ちゃんとファイルがS3のバケットにコピーされているか確かめてみよう。

$ aws s3 ls s3://drobo01.backup

 すると、バケットの内容が表示される。「01.jpg」が含まれていればコピー成功だ! ここまでの方法を使えば、ファイル単位でのバックアップが可能になる。5TB未満なら大きな容量のファイルも問題なくコピーできるので(ただし無料枠は5GBまで)、複数のファイルを取り扱いたい場合はZIPなどにまとめてからバックアップすると効率的だ。

 もちろん、フォルダ同期など、より高度なバックアップも行うことができる。

念のため、S3のバケットの内容を一覧表示させてみると、ちゃんと「01.jpg」が存在しているのがわかる

特定のフォルダの内容をS3上のフォルダと同期

 S3の場合、WindowsやMacのようなフォルダ階層がなく、すべてのオブジェクトがバケット内の同じ階層に保存される。しかし、それではユーザーにとって分かりづらいため、オブジェクトに共通の名前(プレフィックス)をつけて、便宜的にフォルダに見せかけている。

 たとえば、「memo」フォルダに「01.jpg」というファイルを保存すると、S3の場合はバケット内に「memo/01.jpg」という名前のオブジェクトが格納されることになる。この「memo/」部分をプレフィックスと呼ぶ。言ってみればグループ名のようなものだが、実用上はディレクトリのパスと似たようなものなので、通常はユーザー側であまり意識する必要はない

 ただし、AWS CLIでS3のバケットに新しくフォルダを作成したい場合などは注意が必要。LINUXでよく使う「mkdir」コマンドではフォルダを作成できないからだ。代わりに、次のようなコマンドを実行する。

$ aws s3api put-object --bucket バケット名 --key "フォルダ名/"

 今回の場合は、drobo01.backupというバケット内に「memo」フォルダを作成したいので、次のようになる。

$ aws s3api put-object --bucket drobo01.backup --key "memo/"

バケット内に「memo」フォルダを作成したところ。このようなETagが表示されたらフォルダの作成はうまくいっているはず

 なお、フォルダ名の末尾のスラッシュをつけ忘れるとフォルダではなくファイルが生成されるので注意。ちゃんとフォルダが作成されたか確認したい場合は、

$ aws s3 ls s3://drobo01.backup

とコマンドを実行する。「PRE memo/」のように「PRE」に続いてフォルダ名が表示されたら、ちゃんとフォルダが作成されている証拠だ。

フォルダが作成されていると「PRE memo/」のようにフォルダ名が表示される

 フォルダが作成できたら、Drobo内のフォルダと同期する設定を行おう。まず、次のコマンドを実行してDroboの共有フォルダ「Public」に移動する。

$ cd /mnt/DroboFS/Shares/Public

Droboの共有フォルダ「Public」に移動する

 続いて、Drobo上の「memo」フォルダと、S3上の「memo」フォルダを同期する設定を行う。

$ aws s3 sync memo s3://drobo01.backup/memo

DroboとS3の「memo」フォルダを同期すると、Drobo上の「memo」フォルダにあったファイルがS3の「memo」フォルダにアップロードされる

 これで、双方の「memo」フォルダを同期できる。あとは必要なタイミングで上記コマンドを実行すれば、その都度同期が実行され、差分をバックアップできる。

Droboの「memo」フォルダにファイルを追加したあとで、再び同期のコマンドを実行すると、差分のみS3にアップロードされる

 もちろん、これらはあくまでも参考例で、フォルダ名やバケット名が異なっていても問題ない。上記コマンド内の「memo」と、バケット名「drobo01.backup」を自分の環境に合わせて変更して試してみてほしい。


 

(次ページ、「AWSのアカウントを作成する」に続く)

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

ピックアップ