IBM Cloud Object StorageのArchive機能を利用する

#はじめに

IBM Cloudでは、[IBM Cloud Object Storage](https://www.ibm.com/jp-ja/marketplace/cloud-object-storage-system)(ICOS)という非構造化データストレージが利用できます。
保管コストを削減することができ、無制限で拡張することが可能です。一度使うと普通のストレージには戻ることができません。

さて、ICOSでは、課金体系として取り出し頻度ごとにStandard、Vault、Cold Vault、Flexという種類をバケットごとに選ぶことができます。

この記事では新しく登場した**Archive**という機能を利用してみたいと思います。

ICOSの基本的な使い方や課金体系の詳細については下記の記事をご確認ください。
[IBM Cloud Object Storage（ICOS）へのファイルアップロードをAsperaで高速化！](https://qiita.com/y_tama/items/11de90d72b0eede9ac85)
[IBM Cloud Object StorageにCLIでバックアップ・リストアしてみる](https://qiita.com/satokota/items/9d108f0bd3f7cf147f18)
[IBM Cloud Object Storageを使ってみた](https://qiita.com/satorubz/items/eba9bf9909b158a5d73c)


#Archive機能とは？

ICOSにはStandard、Vault、Cold Vault、Flexという4つの課金体系があり、取り出し頻度に応じて選択することが可能でした。
(例えば、あまりアクセスしない場合は保管コストの安いCold Vaultを選択。アクセス頻度が高い場合は取り出しコストの安いStandardを選択、等といった具合)

Archive機能は、これらの4つの課金体系とはまた別に、データを滅多に取り出さない場合にファイルをアーカイブしておくことで、非常に安いコストでデータを格納しておける機能です。

2018年9月現在東京DCで利用することはできませんが、すぐに日本展開されるはずですので、今のうちに使い方を予習しておきましょう！！

#どのくらい安くなるの？

[こちらのページ](https://www.ibm.com/cloud-computing/bluemix/pricing-object-storage)に価格が掲載されています。

例えばアメリカ東部のRegional StandardではArchiveにすることで10分の1程度の価格で保管することが可能です。1TB格納しても200円程度です！！安い！
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/0dd839f6-3a83-847a-c61f-7f28a24e14a7.png)


#利用方法の確認

それでは早速利用方法を確認したいと思います。


##ICOSのアカウント作成

まずはICOSのアカウントを作成します。
[管理ポータル](https://control.softlayer.com/)のメニューから「ストレージ」->「オブジェクト・ストレージ」を選択します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/cbbfb8d7-774f-0684-8eb7-9314b206bd00.png)


画面右上の「オブジェクト・ストレージの注文」を選択し、ICOSを注文します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/c66d72ac-37dc-403f-287c-01a20288085c.png)

IBM Cloudでは2種類のオブジェクトストレージを選ぶことができます。OpenStackのSwiftベースのものと、CleversafeベースのS3 API互換のものがあります。ICOSは後者ですので、「Cloud Object Storage - S3 API」を選択し、「続行」をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/de6c9a33-5a56-c10a-a332-ab87e325bac1.png)

MSAに同意し、注文します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/8fe804aa-e8d2-0622-3a85-5603c83e8468.png)


##バケットの作成とアーカイブポリシーの設定

注文が完了したらオブジェクトストレージのアカウント名をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/a4d5b47e-d295-8147-5f1f-7693583bd3c4.png)

右側の「＋」マークを選択し、バケットを作成します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/9da07154-6185-a948-300a-4dc308408e96.png)

2018年9月現在アーカイブ機能が利用できるレジリエンシーは「Region」になります。ストレージクラスは何を選んでもアーカイブすることが可能です。そのため、例えば**取り出しコストを抑えたいからStandardを選択しておき、1ヶ月利用しなければアーカイブして安く保管する**といったような柔軟な利用方法が可能になりました！

ここで「Create an Archive Policy for this bucket」にチェックを入れることでアーカイブのポリシーを設定することが可能です。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/04b0cb7d-423c-b223-f995-fad153b09382.png)

ポリシーはファイルがアップロードされてからどのくらいでアーカイブされるかを指定することができます。
例えば10 Weeksに設定すると、ファイルをアップロードしてから70日後にアーカイブされます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/3b08e7e8-be3c-6797-fcfc-4e1c8308fe6c.png)
また、ポリシーを0 daysにすることでアップロードした瞬間にアーカイブすることができます。

今回は0 daysに設定してみました。

##Archive機能の確認

ではArchive機能を確認します。先ほど作成したバケット名をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/961c9f6f-32b8-cfbf-afbc-427600fb465b.png)

画面右側の「＋」マークからオブジェクトを追加します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/358ac146-6108-d671-fbea-1b12197afd92.png)

ファイルを選択し、追加します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/9bc33278-93c3-aa43-a9a8-7e5ef693614a.png)

アップロードされました。StateがArchiveになっています！(通常は「Active」です)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/b6888506-9893-07f7-eea4-18f1af069938.png)

詳細を見ると、変更が行われると同時にポリシーによってアーカイブされていることがわかります。(ポリシーが0 Daysのため、すぐにアーカイブされています。)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/a1990675-c8d0-a8df-2965-d79ae0102422.png)


##オブジェクトのリストア

Archive機能は非常に安く保管できるのですが、この状態のままでは利用することができないため、一度リストアを行う必要があります。

例えば、2種類のファイルを用意しました。「test.txt」はアーカイブされており、「test_2.txt」はアーカイブされていません。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/42313c02-3829-9d0c-b2ff-d1ca18035575.png)

これを外部のサーバーから見ると、このようになっています。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/bec4507b-2f55-9717-3a4b-f85d4de023b2.png)

アーカイブされているファイルはストレージクラスが「Glacier」になっていることが確認できます。
例えばこのファイルをサーバーのローカルにダウンロードしようとすると、
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/6bb7ae0e-8999-d286-84cd-9dcfab1a4654.png)

このようなエラーでダウンロードすることができません。
つまり、**Archive機能を使った場合、オブジェクトのタイプが別の形式になっているため、そのままでは利用することができません。**

ではアーカイブされたオブジェクトを「利用できる状態」にリストアしてみます。操作は非常に簡単です。

ポータルから該当のオブジェクトの「Archive Options」を選択します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/4dd7bd29-b71a-2cd4-b54a-09e8058d5026.png)

利用できる状態を何日間維持するか設定して、「Restore」をクリックします。これだけで利用できる状態になります。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/e2b764c4-5b93-3e7f-f02b-decf43d2e192.png)
注意すべき点は、リストアには12 - 15時間かかるということです。利用する前に余裕を持ってリストアしておく必要があります。

リストアされるのを待ちます・・・
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/4a6a1dfb-e5af-316e-3956-6d6b73fc6b07.png)


リストアされました！10時間程度でリストアすることができました。ちなみに、リストアされてもstateはなぜか「Archive」のままなので、「Object Details」を参照し、リストアされていることを確認してください。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/f21a1690-2f9c-3031-2c67-47adef8daa82.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/8c82ef65-2ab0-3a3f-a3d7-2db697c7b97f.png)



もちろん、リストアされた状態であればサーバーのローカルにダウンロードすることもできます。つまり、外部から利用することができる状態になります。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/103277/7aff1f19-ba8b-56f9-9306-5537d05dc025.png)



#まとめ

この記事ではIBM Cloud Object StorageのArchive機能を確認しました。
利用できる状態に変換するのに少し時間はかかりますが、**もともと安いのにさらに劇的にコストを抑えることが可能です！！**
ユースケースに合わせてうまく活用してみてください！！