LoginSignup
3
2

More than 5 years have passed since last update.

IBM Cloud Object StorageにCLIでバックアップ・リストアしてみる

Last updated at Posted at 2018-09-06

やりたいこと

ローカルストレージにあるデータをサクッとオブジェクトストレージにバックアップ取りたい。
そして、もしローカルのデータを間違えて消したり、消えてしまったときにはICOSのデータを使ってリストアしたい。

IBM Cloud Object Storage(ICOS)とは?

IBM Cloud上で提供しているオブジェクトストレージです。
AWSのs3互換のためs3 cliやs3fsなどが使えます。
サービス内容や料金に関しては、以下サイトを確認ください。
https://console.bluemix.net/catalog/services/cloud-object-storage
https://www.ibm.com/cloud-computing/jp-ja/products/storage/object-storage/

今回の流れと前提条件

  1. IBM CloudにログインしてIBM Cloud Object Storageを作成
  2. アクセスするための資格情報の発行  <ここが一番ハマるとこ
  3. awscliでアクセス
  4. バックアップ
  5. リストア
  6. まとめ
  7. お片付け
  • 前提条件
    • IBM Cloudのアカウントがあること
    • awscliが入ってること

1. IBM CloudにログインしてIBM Cloud Object Storageを作成

  1. IBM Cloudにログインします
  2. カタログ>ストレージ>オブジェクトストレージの順に選択しサービスの詳細画面を開きます。
  3. サービス名はそのままでOKで、価格プランから無料のライトプランを選択し作成します image.png

2. アクセスするための資格情報の発行

  1. 作成が完了すると、ICOSの画面が表示されるので、左のメニューからサービス資格情報を選択
  2. 新規資格情報をクリック
  3. 重要!インラインの構成パラメーターの追加に {"HMAC":true} と入力する
  4. 追加を行う image.png
  5. access_key_id と secret_access_key をメモします。
    ※3で行ったパラメーター追加を行わないとこのIDとKeyは表示されません! image.png

3. awscliでアクセス。

1.aws configure を実行し先程メモしたIDとKEY、あと利用するICOSのリージョンを設定します

  • 今回はUSリージョンを利用します。
  • その他のリージョンに関してはこちらを確認ください。
$ aws configure
AWS Access Key ID []: ****************
AWS Secret Access Key []: ****************
Default region name []: us-standard
Default output format []: json

2.AWSCLIのエンドポイントの設定

  • 毎回打つのが面倒なので、今回は環境変数に設定しています。
  • USリージョン以外のエンドポイントはこちらを確認ください。
$ export S3_ENDPOINT=https://s3-api.us-geo.objectstorage.softlayer.net

3.接続確認
まだbucketを作成していないので、空行が帰ってくると思いますが、エラーにならなければOKです

$ aws s3 ls --endpoint-url ${S3_ENDPOINT}

4.ICOSにbucketを作成し、確認

重要! bucket名はICOSのURLになるため他のユーザー含め一意になる名前を設定してください。

$ aws s3 mb s3://buckup-data --endpoint-url ${S3_ENDPOINT}
make_bucket: buckup-data

$ aws s3 ls --endpoint-url ${S3_ENDPOINT}
2018-09-06 16:19:39 buckup-data

4. バックアップ

バックアップ・リストアに利用するのはs3 sync コマンドです。
ソースとターゲットを指定することで、バックアップにも、リストアにも使えてます。
また、特定の拡張子のものだけsyncしたり、不要な重たいファイルを除外したりもできます。
aws s3 sync <SOURCE> <TARGET>

今回は、以下のフォルダを使ってバックアップ、リストアします

data
├── db.dump
└── visual-recognition
    └── TrainingImages
        ├── hdmi_male.zip
        ├── thunderbolt_male.zip
        ├── usb_male.zip
        └── vga_male.zip

1.バックアップの実行

$ aws s3 sync data s3://buckup-data/ --endpoint-url ${S3_ENDPOINT}
upload: data/.DS_Store to s3://buckup-data/.DS_Store
upload: data/visual-recognition/TrainingImages/hdmi_male.zip to s3://buckup-data/visual-recognition/TrainingImages/hdmi_male.zip
upload: data/visual-recognition/TrainingImages/usb_male.zip to s3://buckup-data/visual-recognition/TrainingImages/usb_male.zip
upload: data/visual-recognition/TrainingImages/thunderbolt_male.zip to s3://buckup-data/visual-recognition/TrainingImages/thunderbolt_male.zip
upload: data/visual-recognition/TrainingImages/vga_male.zip to s3://buckup-data/visual-recognition/TrainingImages/vga_male.zip
upload: data/db.dump to s3://buckup-data/db.dump

2.Upできたか確認

$ aws s3 ls s3://data-buckup/ --endpoint-url ${S3_ENDPOINT}
                           PRE visual-recognition/
2018-09-06 16:32:29    1270762 db.dump

$ aws s3 ls s3://buckup-data/visual-recognition/TrainingImages/ --endpoint-url ${S3_ENDPOINT}
2018-09-06 16:32:27     897022 hdmi_male.zip
2018-09-06 16:32:28    1103811 thunderbolt_male.zip
2018-09-06 16:32:28    1071072 usb_male.zip
2018-09-06 16:32:28     599661 vga_male.zip

ちなみに、GUIでも確認してみます。
image.png

5. リストア

Upしたデータをdata-restoreフォルダにリストアしてみます。
syncコマンドのSOURCEとTARGETを入れ替えてコマンドを実行します。

$  aws s3 sync s3://buckup-data/ data2 --endpoint-url ${S3_ENDPOINT}
download: s3://buckup-data/.DS_Store to data2/.DS_Store
download: s3://buckup-data/visual-recognition/TrainingImages/vga_male.zip to data2/visual-recognition/TrainingImages/vga_male.zip
download: s3://buckup-data/visual-recognition/TrainingImages/hdmi_male.zip to data2/visual-recognition/TrainingImages/hdmi_male.zip
download: s3://buckup-data/db.dump to data2/db.dump
download: s3://buckup-data/visual-recognition/TrainingImages/thunderbolt_male.zip to data2/visual-recognition/TrainingImages/thunderbolt_male.zip
download: s3://buckup-data/visual-recognition/TrainingImages/usb_male.zip to data2/visual-recognition/TrainingImages/usb_male.zip

6. まとめ

かなり簡単にObjectStorageにデータをSyncできました。
一番の難関はやはり資格情報を発行する際のオプション指定!
aws s3 にIDやKEYを設定したあとは、s3コマンドを実行するだけなのでsync以外にもいろいろとできるので試してみてください

s3 — AWS CLI 1.16.8 Command Reference
https://docs.aws.amazon.com/cli/latest/reference/s3/index.html

7. お片付け

IBM Cloudのダッシュボードよりサービスの削除する。
image.png

参考情報

3
2
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
2