CloudBerryでOracle Cloud InfrastructureのObject Storageにアクセスする

# 1. はじめに

Oracle Cloud InfrastructureのObject StorageにGUIツールでアクセスしたいことがある。もっとも有名なのはCloudBerry Explorer for Amazon S3だ。Qiitaにも以下の記事はあるが、2020年の現在では変わっていることが多い。

* [Oracle Cloud Infrastructure(OCI) のObject StorageにCloudBerry Explorer for Amazon S3でアクセスしてみた](https://qiita.com/kaohas/items/898efe9e5aa35f2a1402)

編集リクエストも検討したが変更点が多すぎるので、上記の記事をベースにしながら変更点をいくつか補足することにした。

# 2. Object StorageのGUIツール事情

Oracle Cloud InfrastructureのObject Storageは次の3つのAPIをサポートしている。

- ネイティブAPI
- Amazon S3互換API
- OpenStack Swift互換API

Oracle Cloud Infrastructureの機能をフル活用するにはネイティブAPIを利用したOCI CLIが一番だが、慣れないと使いづらい。大きくない数個のファイルをアップロード／ダウンロードする程度ならば管理コンソールも使える。しかし、大量のファイルやリトライなどを考えるとGUIツールに圧倒的軍配が上がる。

OCIネイティブAPIに対応したGUIツールはないので、現在の選択肢はS3互換のツールだ。そして一番使われているのは次の2つだろう。

* MSP360(CloudBerry) Explorer for Amazon S3
* CyberDuck

CyberDuckはWindowsとLinuxに対応していてよいのだが、品質面に問題があるので推奨しない。また、他にもいろいろあるらしい→[5 Best Amazon S3 User Interface Tools 2020](https://proprivacy.com/cloud/comparison/amazon-s3-user-interface-tools)

そして

**MSP360って？**

思った人もいるかもしれない。**CloudBerry**は2019年7月に**MSP360**という名前に変わったようだ（「[CloudBerry Lab Becomes MSP360 Under New Leadership](https://www.msp360.com/resources/blog/cloudberry-lab-becomes-msp360-under-new-leadership/)」）。

さらに調べると、いろいろなことを発見。CloudBerry Backup（Explorerではない）の日本代理店クライム社の[Webページ](https://www.climb.co.jp/soft/cloudberry/cloud/)には以下のように書かれている。

> 開発元のCloudBerry Lab社はサポートするクラウド・サービスを
Amazon S3 とGlacier, Windows Azure,
Google Cloud Storage (Driveは除外), Wasabi
に集約しました。


MSP360のWebサイトを見るとOracleの文字が一掃。サポート対象からもハズレたようだ。Freeware版は自己責任なので何の問題もないが…。
https://www.msp360.com/solutions/cloud-storage.aspx
![cloudberry10.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266049/f9bb6a1d-0a5d-9efe-92f3-c00df917aa65.png)

<font color="blue">**結局のところOracle Cloud Infrastructure Object StorageのGUIツールは「MSP360(CloudBerry) Explorer for Amazon S3」一択という状況に変わりはない。**</font>

次に以前からの変更点や注意事項を説明する。

# 3. CloudBerry Explorerを使う

冒頭で説明したとおり「[Oracle Cloud Infrastructure(OCI) のObject StorageにCloudBerry Explorer for Amazon S3でアクセスしてみた](https://qiita.com/kaohas/items/898efe9e5aa35f2a1402)」で古くなっている部分を補足する。


### 3-1. CloudBerry Explorerの制限事項

CloudBerry固有の制限事項があるので覚えておくこと。

* アクセスできるのはホームリージョンに限られる
* バケットは作成できないので、管理コンソールやCLIで作成する
* コンパートメントを認識しないので、rootコンパートメントにバケットを作成する。厳密には微妙に違うのだが、複雑になるのでとりあえずその理解にする

### 3-2. Amazon S3互換API用クレデンシャルの設定

Amazon S3互換APIを使用するには、ユーザーごとに**シークレットキー**と**アクセスキー**を設定する必要がある。手順は以下のとおり。

1. 管理コンソールのナビゲーションメニューから「アイデンティティ（Identity）」-「ーザー（Users）」を選択する。表示されたユーザーリストから、使用するユーザーを選択して「ユーザー詳細（User Details）」ページを表示する。
2. 左下の「顧客秘密キー（Customer Secret Keys）]を選択し、「秘密キーの生成（Generate Secret Key）」をクリックする。
![cloudberry15.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266049/bb89a4b9-3279-8a95-8374-8afad88e65c0.png)
3. キーを識別する適当な名前を入力して「秘密キーの生成（Generate Secret Key）」をクリックする。
![cloudberry17.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266049/4eea6ad3-ce9f-18b5-b211-847a7a650466.png)
4. コピーをクリックしてテキストファイルなどに保存する。生成したシークレットキーは、これを逃すと参照できないので注意する。
![cloudberry18.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266049/8b331535-2a70-1994-5295-a2f48d40a5c4.png)
5. 作成したシークレットキーが表示されるので、アクセスキーもコピーしておく。
![cloudberry19.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266049/93a112ff-34dd-aa1d-ccf5-718a30444684.png)

### 3-3. ネームスペースの確認

Amazon S3互換APIのエンドポイントは次のようになっている。そのため、事前にネームスペースを確認する。

**古いテナント**
`<テナント名>.compat.objectstorage.<リージョン>.oraclecloud.com`

**現在のテナント**
`<オブジェクト・ストレージ・ネームスペース>.compat.objectstorage.<リージョン>.oraclecloud.com`

1. 管理コンソールのナビゲーションメニューから[管理（Administration）]-[テナンシ詳細（Tenancy Details）]を選択する。
2. ここで表示された「Object Storage Namespace」をメモしておく。
![cloudberry20.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266049/f1de37e3-d9f2-b9cc-6004-f12e20e0d13d.png)

このあたりは意外に深いので興味がある方は以下のマニュアルをどうぞ。

* [オブジェクト・ストレージ・ネームスペースの理解](https://docs.oracle.com/cd/E97706_01/Content/Object/Tasks/understandingnamespaces.htm)
* [Amazon S3互換性およびSwift APIに対してコンパートメントを指定](https://docs.oracle.com/cd/E97706_01/Content/Object/Tasks/designatingcompartments.htm)

### 3-4. CloudBerryでアカウントを追加

1. CloudBerryを起動して「S3 Compatible」でアカウントを追加する。
2. 設定画面には次のように入力する。
![cloudberry02.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266049/0684c12b-f5af-c230-fe55-695649fde0a0.png)

　- Display name: 設定を区別する名前。別に何でもいい
　- Service point: **<ネームスペース>**.compat.objectstorage.**<リージョン>**.oraclecloud.com
　- Access key: **生成したアクスキー**
　- Secrete key: **生成したシークレットキー**
　- Signiture version: **4**

3.「Test Connection」がOKになったら「OK」をクリックして設定を保存する。以上で終了だ。

# 4. おわりに

CloudBerryの制限事項は多いが、現時点では最良の選択肢だろう。Oracle Cloud Infrastructureのシェアが劇的に上がらないかぎり、ネイティブAPIに対応したGUIツールは出ないだろうしね。

GUIツールではないけれど、本格的に業務で使うならば、機能と性能に優れたOCI CLIをマスターしたい。以前オンプレミス⇔クラウドでファイル転送のベンチマークをしたところ、パラレル転送できるOCI CLIは優秀だった。転送先がブロックストレージならば、bbcpやGridFTPがオススメ。ただし特性は理解する必要はある。

今回IAMまわりに言及していないけれど、あまり悩みたくないならばAdministratorsグループのユーザーを使用した方がいいだろう。