目次
はじめに
みなさん、こんにちは。
Oracle Cloud Infrastructure検証チームです。
今回は、Oracle Cloud Infrastructure(OCI)のオブジェクト・ストレージ・サービスについて、
ご紹介したいと思います。
オブジェクト・ストレージ・サービスとは
オブジェクト・ストレージ・サービスは、
高い信頼性と高い費用対効果を両立するスケーラブルなクラウドストレージです。
データ容量制限はなく、インターネットやクラウド・プラットフォーム内から直接データをアップロード/ダウンロードすることができます。
OCIのオブジェクト・ストレージ・サービスには、以下の3つのタイプがあり、用途に合わせて利用することができます。
標準
データへのアクセス頻度が高い場合に最適です。
データを瞬時にアップロード/ダウンロードすることができます。
頻度の低いアクセス
データへのアクセス頻度が低いが、必要な際には即座にアクセスする必要があるデータに最適です。
標準よりもストレージ単価が安く、後述するアーカイブのようにデータを「リストア」する必要がありません。
アーカイブ
データへのアクセス頻度が低く、長期間データを保存する場合に最適です。
低コストで利用できますが、データをダウンロードする際は、データを「リストア」する必要がある為、
瞬時にデータをダウンロードすることができません。
それでは、実際にオブジェクト・ストレージ・サービスを使用してみたいと思います。
今回は標準のオブジェクト・ストレージを使用して、オブジェクトのアップロード/ダウンロードを試してみます。
バケットの作成
まずは、コンソールからバケットを作成していきます。
バケットは、オブジェクト・ストレージ・サービスにおいて、オブジェクト(データ)を格納する箱として機能します。
コンソールメニューから[ストレージ] – [オブジェクト・ストレージとアーカイブ・ストレージ]を選択し、[バケットの作成]ボタンを押します。
バケットの作成ウィンドウが立ち上がりますので、任意のバケット名を指定してバケットを作成します。
また、デフォルト・ストレージ層は「標準」として作成します。
入力や選択が完了したら、[作成]ボタンを押します。
「自動階層化を有効化」を選択すると、データ・アクセス・パターンに基づいて標準ストレージ層と低頻度アクセス・ストレージ層の間でオブジェクトが自動的に移動するようになります。また、後述のオブジェクトのアップロード時にデフォルト以外のストレージ層を選択する際に「頻度の低いアクセス」を選択して、オブジェクトをアップロードすることも出来ます。
バケットの作成が完了し、コンソールに作成したバケットが表示されていることを確認します。
これで、バケットの作成は完了です。
次に、作成したバケットに対して、オブジェクトのアップロードやダウンロードを試してみましょう。
オブジェクトのアップロード/ダウンロード (コンソール)
コンソール上から作成したバケットのリンクをクリックし、バケットの詳細を表示します。
[アップロード]ボタンを押し、オブジェクトのアップロードウィンドウを立ち上げます。
アップロードするファイルをドロップまたは選択し、[アップロード]ボタンを押します。
今回はテスト用のテキストファイルをアップロードしてみます。
必要に応じて、オブジェクト名の接頭辞を入力できます。
バケットの詳細画面からアップロードしたファイルが表示されていることを確認します。
これでアップロードは完了です。
続いて、アップロードしたファイルをダウンロードしてみます。
アップロードしたファイルの右側にある縦の「・・・」をクリックしてメニューを表示し、[ダウンロード]ボタンを押します。
ダウンロードする場所を選択し、ダウンロードしたファイルが保存されていれば完了です。
コンソール上でのオブジェクトのアップロード/ダウンロードは以上となります。
オブジェクトのアップロード/ダウンロード (OCI CLI)
最後に、OCI CLIを使用してComputeインスタンスからオブジェクト・ストレージに対して、オブジェクトのアップロード/ダウンロードを試してみます。
まずは現在のバケットの内容を確認してみます。
コマンド例)
$ oci os object list –namespace <ネームスペース> –bucket-name <バケット名>
※ネームスペースは、コンソールのバケット詳細から確認できます。
[opc@instance]$ oci os object list --namespace xxxx --bucket-name test-bucket
{
"data": [
{
"archival-state": null,
"etag": "xxxx",
"md5": "xxxx",
"name": "test-file1.txt",
"size": 4,
"storage-tier": "Standard",
"time-created": "2022-06-09T06:40:26.826000+00:00",
"time-modified": "2022-06-09T06:40:26.826000+00:00"
}
],
"prefixes": []
}
コマンドを実行してみると、コンソール上からアップロードしたテキストファイル(test-file1.txt)が確認できました。
続いて、コンソールの時と同様にテスト用のテキストファイルをアップロードしてみます。
コマンド例)
$ oci os object put –namespace <ネームスペース> –bucket-name <バケット名> –file <アップロードするファイル名>
[opc@instance]$ ls -l test-file2.txt -rw-rw-r--. 1 opc opc 5 Jun 9 07:53 test-file2.txt [opc@instance]$ [opc@instance]$ oci os object put --namespace xxxx --bucket-name test-bucket --file test-file2.txt { "etag": "xxxx", "last-modified": "Thu, 09 Jun 2022 08:10:44 GMT", "opc-content-md5": "xxxx" }
ここでもう一度、現在のバケットの内容を確認してみます。
[opc@instance]$ oci os object list –-namespace xxxx --bucket-name test-bucket
{
"data": [
{
"archival-state": null,
"etag": "xxxx",
"md5": "xxxx",
"name": "test-file1.txt",
"size": 4,
"storage-tier": "Standard",
"time-created": "2022-06-09T06:40:26.826000+00:00",
"time-modified": "2022-06-09T06:40:26.826000+00:00"
},
{
"archival-state": null,
"etag": "xxxx",
"md5": "xxxx",
"name": "test-file2.txt",
"size": 5,
"storage-tier": "Standard",
"time-created": "2022-06-09T08:10:44.745000+00:00",
"time-modified": "2022-06-09T08:10:44.745000+00:00"
}
],
"prefixes": []
}
アップロードしたテスト用のテキストファイル(test-file2.txt)が確認できました。
次に、コンソール上でアップロードしたテスト用のテキストファイル(test-file1.txt)をインスタンス上へダウンロードしてみます。
コマンド例)
oci os object get –namespace <ネームスペース> –bucket-name <バケット名> –name <バケット上のオブジェクト名> –file <ダウンロードするファイル名>
[opc@instance]$ ls -l test-file1.txt ls: cannot access 'test-file1.txt': No such file or directory [opc@instance]$ [opc@instance]$ oci os object get --namespace xxxx --bucket-name test-bucket --name test-file1.txt --file ./test-file1.txt [opc@instance]$ [opc@instance]$ ls -l test-file1.txt -rw-rw-r--. 1 opc opc 4 Jun 9 08:14 test-file1.txt
コンソール上でアップロードしたテスト用のテキストファイル(test-file1.txt)がダウンロードできました。
おわりに
今回はオブジェクト・ストレージ・サービスのバケットの作成からオブジェクトのアップロード/ダウンロードまで試してみましたが、いかがでしたでしょうか?
コンソール上からの操作は特に難しいことはなく、簡単にバケットの作成やオブジェクトのアップロード/ダウンロードができました。
OCI CLIによるオブジェクトのアップロード/ダウンロードはコマンドをスクリプト化すれば、スケジューリングして自動実行など応用した使い方もできますね。
最後までご覧いただきありがとうございました!
Oracle Cloudをご検討の際は当社までお問い合わせください。