Bluemix Cloud Object Storage（S3 API互換） を試してみる

本稿ではBluemix Infrastructure（旧SoftLayer）で提供しているCloud Object Storageサービス（~~現在オープントライアル~~→12月よりGAとなったようです）について取り上げてみたいと思います。
## Cloud Object Storage（COS）って？
Bluemix Infrastructureでは既にOpenStack SwiftベースのObject Storageが提供されていますが、加えてS3 API互換のIBM Cloud Object Storageが利用できるようになりました。2016年10月からオープントライアル（無料期間は12月31日まで※）、12月よりGA（Generally Available）となっています。

※オープントライアルは11月末までにオーダーした場合となり、既に新規の受付は終了しています。代わりに、サインアップから12ヶ月の間、一定容量（25GB）・一定回数のAPIコールが無料となるプロモーションが行われています。詳しくはこちらのリンクを参照ください。
https://www.ibm.com/cloud-computing/bluemix/cloud-object-storage

## COSの特徴
今までのObject Storageと較べ、COSには以下のような違いがあります。

#### **S3 API互換**
従来のObject StorageはOpenstack Swift APIベースとなりますが、IBM COSはS3 API互換のため既存のS3クライアントやAWS CLIを使用してアクセスすることが可能です。
#### **クロスリージョン間データ分散配置**
既存のObject Storageと異なり、保存されるファイルは標準で複数リージョンに断片化、自動分散配置されます。特定のリージョンが全面ダウンした場合でも残りのリージョンで稼働が可能なため、ディザスタリカバリなどの用途にも活用することが可能です。現時点ではUSの3リージョン（Dallas, San Jose, Washington DC）で運用されています。
#### **データ暗号化**
ユーザーからのアクセス経路、リージョン間のデータ複製、Storage内のデータまでEnd-to-Endで暗号化されており、セキュリティ性能が大きく向上しています。
## ポータルからCOS新規オーダー

### ポータル画面より確認
Bluemix Infrastructureのポータル（ https://control.bluemix.net/ ）より確認してみます。画面左のメニューを開き[ストレージ]->[オブジェクト・ストレージ]と進みます。オブジェクト・ストレージアカウントのAPI Typeの項で"SWIFT"が既存のObject Storage、"S3"がIBM COSのアカウントとなります。
<img width="628" alt="Screen Shot 2016-11-30 at 18.14.14.png" src="https://qiita-image-store.s3.amazonaws.com/0/108147/4ce04d0c-29e6-a1e7-6292-9cac46c7cc60.png">
### 新規オーダー
[オブジェクト・ストレージの注文]からオーダー画面に移ります。
<img width="1013" alt="Screen Shot 2016-11-30 at 18.24.21.png" src="https://qiita-image-store.s3.amazonaws.com/0/108147/5f674ccc-16dd-7e7d-bb97-91ab4387063b.png">

ストレージ・タイプは[S3 API]を選択します。料金については、ストレージ容量、アウトバウンド帯域使用料、APIコール回数で課金される体系となっています。
<img width="648" alt="Screen Shot 2016-12-06 at 15.35.20.png" src="https://qiita-image-store.s3.amazonaws.com/0/108147/3bb7f991-426d-928c-f8c6-fba1ebb79e19.png">


最終確認画面で、MSAに同意の上、オーダーを完了します。
<img width="649" alt="Screen Shot 2016-11-30 at 18.23.03.png" src="https://qiita-image-store.s3.amazonaws.com/0/108147/02798fba-af73-81bf-de89-a4094f454d82.png">

オーダー完了後、新規のCOSアカウントが作成されているのを確認できます。
<img width="479" alt="Screen Shot 2016-12-01 at 11.30.52.png" src="https://qiita-image-store.s3.amazonaws.com/0/108147/50628333-8400-f938-c175-e8c8a1e2c700.png">

アカウントの中をのぞいてみると、こんな感じです。容量、帯域利用状況、APIコール回数が一目で確認できるようになっています。
<img width="1177" alt="Screen Shot 2016-12-01 at 11.35.33.png" src="https://qiita-image-store.s3.amazonaws.com/0/108147/a2ff5cc3-e145-14aa-5201-b42adc40354e.png">

クレデンシャル情報およびエンドポイントの情報も確認できます。共通URLおよび各リージョンのURLも確認できます。
<img width="825" alt="Screen Shot 2016-12-01 at 11.36.25.png" src="https://qiita-image-store.s3.amazonaws.com/0/108147/6bfded89-e675-567e-fb08-502cc6cd1c41.png">

### Bucket作成、ファイルのアップロード
ファイルをアップロードするため、Bucketを作成します。
<img width="1203" alt="Screen Shot 2016-12-01 at 11.37.03.png" src="https://qiita-image-store.s3.amazonaws.com/0/108147/c03b9906-37f6-78d4-478c-93b5c5d9c6f3.png">

Bucket名を入力し、追加。
<img width="1175" alt="Screen Shot 2016-12-01 at 11.37.37.png" src="https://qiita-image-store.s3.amazonaws.com/0/108147/e2be33b7-7986-2468-6912-e73837240489.png">


作成完了。ファイルを上げてみます。
<img width="851" alt="Screen Shot 2016-12-01 at 11.37.59.png" src="https://qiita-image-store.s3.amazonaws.com/0/108147/9b44cd01-4e5a-dc16-671b-233941712164.png">
<img width="851" alt="Screen Shot 2016-12-01 at 11.38.28.png" src="https://qiita-image-store.s3.amazonaws.com/0/108147/7edd4e88-12b0-88a6-3df3-e57e347d3b65.png">


ローカルのファイルを選択して追加するとアップロードが開始します。ポータルからだとファイルあたり最大20MBの制限があるようです。（S3クライアントからは20MB以上の容量でもOKです）
<img width="1169" alt="Screen Shot 2016-12-01 at 11.40.51.png" src="https://qiita-image-store.s3.amazonaws.com/0/108147/52432876-709e-6753-c980-a2494b7d143f.png">

アップロード完了。
<img width="1165" alt="Screen Shot 2016-12-01 at 11.41.49.png" src="https://qiita-image-store.s3.amazonaws.com/0/108147/0d327361-89ab-8a59-e860-0b064d032678.png">

### ファイルの確認、ダウンロード
Cyberduckを使ってファイルの確認、ダウンロードをしてみます。APIのタイプはS3を選択し、ポータルで確認したエンドポイントURLとクレデンシャル情報を指定します。Geo共通のもの、各リージョン毎のURLいずれにもアクセス可能です。
<img width="661" alt="Screen Shot 2016-12-01 at 15.32.43.png" src="https://qiita-image-store.s3.amazonaws.com/0/108147/9509af35-c6c5-1cb9-c5ae-e59eca8b1be4.png">


ファイルの確認ができました。もちろんダウンロードもできます。
<img width="666" alt="Screen Shot 2016-12-01 at 11.47.02.png" src="https://qiita-image-store.s3.amazonaws.com/0/108147/c88ce72b-6725-f602-22b5-9dfeb74310fd.png">


おまけに。。確認に使用したファイルです。日没のグランドキャニオンの光景ですが、幻想的で美しかったです。
<img width="284" alt="Screen Shot 2016-12-01 at 11.47.55.png" src="https://qiita-image-store.s3.amazonaws.com/0/108147/bbba2076-7d5a-7078-6667-740521e62f7d.png">

## まとめ
基本的な動作を確認してみましたが、標準でクロスリージョンでデータ分散させてくれるのは嬉しいですね。また、一度格納したファイルはどのエンドポイントからもアクセス可能なので、最寄りのエンドポイントを選択することで転送速度の向上が見込めます。現在はUSリージョンでのみの提供となっていますが、今後他のエリアにも展開されるのが待ち遠しいです。

なお、詳細情報については、こちらも参考になります。
https://ibm-public-cos.github.io/crs-docs/
http://blog.softlayer.com/2016/ibm-cloud-object-storage-open-trial-now-available