はじめに
OCIのオブジェクト・ストレージにAWS S3互換APIでアクセスする方法を確認します。
参考資料
前提
以下の設定ができていることとします。
- OCIのテナンシー(アカウント)作成
- 利用ユーザの作成
- コンパートメント作成
- AWS CLIのインストール
証明書の作成
- 「アイデンティティ」→「ユーザー」→「ユーザーの詳細」に行く。
- 左の「リソース」メニューの「顧客秘密キー」を選択
- 「秘密キーの生成」をクリックし、任意の名称を付けて秘密キーを作成する
- 生成された「秘密キー」と「アクセスキー」をTextファイルなどにメモしておく。
- 秘密キーはこの時しか表示されないので、メモするのを忘れたら作成し直す。
- 左の「リソース」メニューの「顧客秘密キー」を選択
テナンシー/コンパートメントの確認、設定
- 「管理」→「Tenancy details」に行く。
- 「テナンシ情報」タブの以下2つの情報を確認する
- Amazon S3互換APIで指定されたコンパートメント
- オブジェクト・ストレージ・ネームスペース
- 「テナンシ情報」タブの以下2つの情報を確認する
利用するコンパートメントについて
- AWSにはコンパートメントの概念がないので、使用するコンパートメントはあらかじめ一つにしないといけない。
- 変更する場合は、「オブジェクト・ストレージ設定の編集」で変更する。
バケットの作成
- 上記で確認した「Amazon S3互換APIで指定されたコンパートメント」を指定して、バケットを作成する
- テスト用に任意のオブジェクトを作成したバケットにアップロードする
aws cliの設定
- aws cliをインストールした端末にログインする
- ここでは、OCIのコンピュートインスタンス(Oracle Linux)を使用
$ aws --version
aws-cli/2.3.4 Python/3.8.8 Linux/5.4.17-2102.206.1.el7uek.x86_64 exe/x86_64.oracle.7 prompt/off
秘密キー、アクセスキーの登録
$ aws configure
AWS Access Key ID [None]: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX4f45b # アクセスキーを貼り付け
AWS Secret Access Key [None]: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX8HA= # 秘密キーを貼り付け
Default region name [None]: # 任意(後述)
Default output format [None]: # 設定しない
アクセスの確認
- 書式
$ aws s3 --region <リージョン> --endpoint-url https://<オブジェクトストレージ・ネームスペース>.compat.objectstorage.<リージョン>.oraclecloud.com ls s3://<バケット名>
$ aws s3 --region us-phoenix-1 --endpoint-url https://mytenancy.compat.objectstorage.us-phoenix-1.oraclecloud.com ls s3://test01/
2021-11-08 07:50:30 23994 oci.jpg
2021-11-08 07:20:31 7466 oralogo.jpg
オブジェクトの移動(標準層からアーカイブストレージ)
$ aws s3 --region us-phoenix-1 --endpoint-url https://mytenancy.compat.objectstorage.us-phoenix-1.oraclecloud.com mv s3://standard-bucket-01/oci.jpg s3://archive-bucket-01
move: s3://standard-bucket-01/oci.jpg to s3://archive-bucket-01/oci.jpg
リージョンの指定について
- ホームリージョンのバケットにアクセスする場合、
--region
オプションの指定は不要 - ホームリージョン以外のバケットにアクセスする場合、以下のいずれかで指定する。
- aws s3 コマンドの
--region
オプションで指定する - aws configureコマンドのDefault region nameで指定する
- aws s3 コマンドの