Mais conteúdo relacionado
Semelhante a Oci object storage deep dive 20190329 ss (20)
Mais de Kenichi Sonoda (13)
Oci object storage deep dive 20190329 ss
- 1. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
2019年3月18日
日本オラクル株式会社
園田憲一
Oracle Cloud Infrastructure Tech Deep Dive
~Object Storage編~
- 2. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
アジェンダ
• Storage Serviceのラインナップ
• Object Storage Serviceの構成要素
• 各構成要素の詳細
2
- 3. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Safe Harbor Statement
The following is intended to outline our general product direction. It is intended for
information purposes only, and may not be incorporated into any contract. It is not a
commitment to deliver any material, code, or functionality, and should not be relied upon
in making purchasing decisions. The development, release, and timing of any features or
functionality described for Oracle’s products remains at the sole discretion of Oracle.
3
- 4. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
用途に応じたストレージを選択可能
Oracle Cloud Infrastructure: Storage Serviceのラインナップ
ローカルNVMe
ブロック
ボリューム
Computeインスタンスにローカル接続
された超高速ストレージ
Computeインスタンスにリモートアタッ
チされる耐久性の高い永続性の高速
ストレージ
ファイル
ストレージ
オブジェクト
ストレージ
Block
Storage
Object
Storage
File
Storage
高性能
大容量
冗長性
拡張性・可用性に優れたネットワー
ク・ファイル・システム(NFS)
大容量データの保存に適した高耐
久・低価格ストレージ
Analytics、 HPC、 レプリケーショ
ンなど
データベース、エンタープライズ
アプリケーション、ビッグデータ
など
Webアプリケーション、Dockerコ
ンテナ、並列分散処理など
バックアップ、アーカイブ、コンテ
ンツ管理、ストリーミングなど
種類 用途 概要
4
- 5. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Object Storageの可用性、セキュリティ
• Service Level Objective 99.9%、SLOを満たせなかった場合はEnterprise SLA
に則りService Creditされる
• データは、1つのリージョン内の複数アベイラビリティ・ドメインの複数スト
レージ・サーバー上に冗長的に格納される
• データ整合性はチェックサムを使用して継続的に監視され、破損したデー
タは自己修復される
• Object Storage上のデータは自動的に暗号化される
– 暗号化鍵は頻繁にローテーションされる
– AES-256でデータと暗号化鍵を暗号化
5
- 6. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• 主なクライアント
– 設定・管理
• Cloud Console、REST API、OCI-CLI
– 開発
• SDKs(Java/Python/Ruby/Go)
– 一部のPaaS、SaaS
– 3rd Party SW(アップローダー、バックアップな
ど)
• Coudberry、Netbackup、Commvault
• Object StorageへのアクセスはIAMで制
御される
– クライアントはAPIキーで認証されたIAMユー
ザー経由でObject Storageへアクセス
– IAMポリシーにより許可された処理のみが実
行可能
OCI Object Storageの構成要素
6
COMPARTMENT
Object
Storage
Policies
OCI-CLI
REST API
SDKs
3rd Paty Tools
Groups
Users
API Key
Cloud Console
etc.
PaaS, SaaS
- 7. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• オフジェクトを保持する論理的な記憶
領域の単位
• コンパートメント内に複数作成でき、
Bucketの名前はテナント内でユニーク
でなければならない
• Bucketのタイプ
– StandardもしくはArchiveのどちらかを選
• 作成後の変更は不可
– 頻繁にアクセスする必要があるデータを
格納する場合はStandardを選択
– アクセス頻度の低いデータや長期保管を
目的とする場合はArchiveを選択(Archive
Cloud Service)
Bucket
7
Bucketタイプの選択
Object Storage -> Object Storage -> Create Bucket
- 8. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Object
• 1オブジェクトの最大サイズ10TiB
• Cloud Console利用時のアップロードはオブジェクトあたり最大2GiBまで
• OCI-CLI/API利用利用時のアップロードはオブジェクトあたり最大10TiBまで
8
- 9. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• 第三者との間でデータを共有する仕
組み
• BucketかObjectレベルで設定を行う
• 有効期限の指定が可能
• Pre-Authentication設定時に発行され
るURLで対象のBucket、オブジェクトに
アクセスする
– アクセスURLは設定後は確認できないた
め必要に応じて記録する
• REST API/OCI-CLI/SDKなど専用ツール
を使わずに、ブラウザやcURLなどの
HTTPツールでアクセス可能できる
Pre-Authenticated Request(PAR)
9
BucketかObjectの選択
アクセス有効期限の設定
アクセスURLが発行される
Object Storage -> Object Storage -> Bucketを指定 -> オブジェクトの
メニューからCreate Pre-Authentication Request
- 10. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• 実行可能な処理
– Bucketの場合
• 書き込み
– Objectの場合
• 読み込み
• 書き込み
• 読み込みと書き込み
• Pre-authentication requestを作成
するIAMユーザーのpermissionに
依存する
Pre-Authenticated Request(PAR)
10
Bucketを選択した場合
Objectを選択した場合
Object Storage -> Object Storage -> Bucketを指定 -> オブジェクトの
メニューからCreate Pre-Authentication Request
- 11. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• Bucketに対して匿名アクセスを許可する場
合に設定
– Bucket作成時はPrivate Bucket、Bucket作成後に
Public Bucketに変更する
• 実行可能な処理
– オブジェクト・メタデータの取得
– オブジェクトのダウンロード
– Bucket内のオブジェクトの一覧表示(オプション)
• 同時にPre-Authenticated Requestを設定して
いる場合は、同設定が優先される
Public Bucket
11
Public Bucketはデータを広く共有するには便利な方法ですが、
匿名のデータ・アクセスが可能になるため、セキュリティとの
トレードオフとなります。設定の際は慎重かつ熟考の上で
行ってください。 Bucket内のオブジェクトの一覧表示
Public / Privateの設定
Object Storage -> Object Storage -> bucketを指定
- 12. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 12
Public BucketとPAR
Public Bucket Pre-Authentication Request
対象 Bucket BucketかObject
アクセス制御 オブジェクトのダウンロード
メタデータの取得
Bucket内のオブジェクトの一覧表示
Bucket – Write
Object – Read Only
Write Only
Read and Write
アクセス有効期間 有効期間の設定はできない。
(Publicに設定している間のみアクセス可)
Expiration Date/Timeを設定できる
特徴 ⚫ PUT処理ができない
⚫ 有効期間が設定できない
⚫ 「指定のオブジェクトのみを共有する」ということ
ができない(Bucket単位での共有)
⚫ PUT済および将来PUTされるオブジェクトも常に
共有される。
⚫ Bucket内のオブジェクトの一覧表示はできない
⚫ 事前認証されたリクエストのターゲットとアクションは、リクエストを
設定したユーザーのアクセス権をに基づく。
⚫ オジェクトを共有したいタイミングで随時設定が必要。(PUT済のオ
ブジェクトのみ共有可能。有効期間の間だけ。将来PUTされるオブ
ジェクトに対してあらかじめ共有設定することはできない)
- 13. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• アクセス頻度の低いデータを安価に
長期保管することを目的としたスト
レージサービス
– コンプライアンスや監査対象のデータ、ロ
グデータ
– 経年データかつリアルタイム性を要しない
データ(取り出しに時間的猶予があるデー
タ)
– バックアップ、二次バックアップの遠隔保
管
• Bucket作成時に「STORAGE TIER」を
「Archive」に指定する
• Bucket作成後の「Storage TIER」変更
は不可
Archive Storage Service
13
Bucketタイプの選択
Object Storage -> Object Storage -> Create Bucket
- 14. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Archive Storage Serviceの特性
14
• アップロード
– Object Storage Serviceと差異なし
• ダウンロード
– 一旦アップロードされたオブジェクトは
すぐにダウンロードすることはできない
– リストア後、Object Storageにオブジェク
トが配置され、ダウンロードができるよ
うになる
Client リストア処理実行
アップロード
ダウンロード可
Archive Bucket
ダウンロード不可
- 15. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• アップロードされたデータは”Archived”ステイタス
となり、すぐにはダウンロードできない
• ダウンロード前に事前に「リストア処理」が必要
• リストア処理を開始してからデータのダウンロー
ドができるようになるまで最大4時間を要する
• リストア後、所定の時間を経て、再びアーカイブ
ステイタスとなる
– リストア処理実行時に再アーカイブまでの時間を設定
• 1~240時間(デフォルト24時間)
– 再アーカイブされるまではArchive Storage Serviceでは
なくObject Storageのpricingで課金される
• データアップロード後、90日以内にデータを削除、
上書き、名前変更した場合、追加の課金が発生
– 全90日分のデータ格納に対するコストを日割り計算し
た金額
Archive Storage Serviceの特性
15
Client
Archived
Restored
(1~240時間)
Restoring
(最大4時間)
アップロード
ダウンロード可
再アーカイブ
Archive Bucket
- 16. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• リストア完了の確認
Archive Storage 実行例
16
• ステイタスの確認(アップロード直
後)
• リストア実行、ステイタスの確認
# oci os object restore-status -ns gse00014523 -bn ks_archive_bucket --name
dummy_1GB.dat
Archived, this object is not available for download. Use 'oci os object restore -ns
gse00014523 -bn ks_archive_bucket --name dummy_1GB.dat' command to start
restoring the object.
------- リストア実行
# oci os object restore -ns gse00014523 -bn ks_archive_bucket --name
dummy_1GB.dat
-------ステイタスの確認
# oci os object restore-status -ns gse00014523 -bn ks_archive_bucket --name
dummy_1GB.dat
Restoring, this object is being restored and will be available for download in
about 4 hours from the time you issued the restore command.
# oci os object restore-status -ns gse00014523 -bn ks_archive_bucket --name
dummy_1GB.dat
Restored. You have 22 hrs 4 mins to download the restored object before it is once
again archived.「Archived」(アーカイブ済)のステイタス
「Restoring」(リストア中)のステイタス
「Restored」(リストア
完了)のステイタス
再アーカイブまでの残り時間
- 17. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• OCIのリソースへのアクセス管理を
行うIAMの仕組み
• Object Storage Serviceの場合、
Bucketおよびオブジェクトに対する
アクセスコントロールを行う
• 所定の文法に基づき、アクセス制
御文を設定する
IAM Policy
17
アクセス制御文を記載
Identity -> Policies -> Create Policy
- 18. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
IAM Policyの構文
Allow <subject> to <verb> <resource-type> in <location> [where <condition>]
シンタックス 説明 例文
group <グループ名> グループを名称で指定 group A-Admin
group id <グループのOCID> グループをOCIDで指定
group id
ocid1.group.oc1..aaaaaaaaqjihfhvxmum...
awuc7i5xwe6s7qmnsbc6a
any-user すべてのユーザーを指定 any-user
https://docs.us-phoenix-1.oraclecloud.com/Content/Identity/Concepts/policysyntax.htm
- 19. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
IAM Policyの構文
Verb(動詞) アクセスのタイプ 対象者
Inspect
(検査)
ユーザー指定のメタデータ以外の読み取
り専用アクセス
外部監査
人
Read
(参照)
読み取り専用アクセスとユーザー指定の
メタデータを取得する
内部監査
人
Use
(利用)
読み取りと既存のリソースを処理する機
能が含まれます(アクションはリソースタ
イプによって異なります)
日常の
ユーザー
Manage
(管理)
リソースのすべてのアクセス許可が含ま
れます
管理者
集合リソースタイプ 個別リソースタイプ
all-resources
database-family
db-systems, db-nodes, db-homes,
databases
instance-family
instances, instance-images, volume-
attachments, console-histories
object-family buckets, objects
virtual-network-family vcn, subnet, route-table, more
volume-family
Volumes, volume-attachments, volume-
backups
https://docs.us-phoenix-1.oraclecloud.com/Content/Identity/Concepts/policysyntax.htm
Allow <subject> to <verb> <resource-type> in <location> [where <condition>]
- 20. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
IAM Policyの構文
シンタックス 説明 例文
tenancy テナント全体を指定 in tenancy
compartment <コンパートメント名> コンパートメントを名称で指定 in compartment Project-A
Compartment id <コンパートメントのOCID> すべてのユーザーを指定
in compartment id
ocid1.compartment.oc1..aaaaaaaayzfq...4fmameqh7
lcdlihrvur7xq
https://docs.us-phoenix-1.oraclecloud.com/Content/Identity/Concepts/policysyntax.htm
Allow <subject> to <verb> <resource-type> in <location> [where <condition>]
- 21. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
IAM Policyの構文
シンタックス 説明 例文
<変数> = <値> 一致条件 where target.gropu.name = /A-Users-*/
<変数> != <値> 不一致条件 Where target.group.name != ‘Administrators’
all {<condition>, <condition>, …} すべての条件を満たす(AND条件)
where all {target.group.name=/A-*/,target.group.name!='A-
Admins'}
any {<condition>, <condition>, …} 一部の条件を満たす(OR条件)
where any {target.group.name=/A-
Admins/,target.group.name=‘A-Users'}
Verb と resource-type の取りうる組み合わせのパターンの詳細については以下を参照
https://docs.us-phoenix-1.oraclecloud.com/Content/Identity/Reference/policyreference.htm
Allow <subject> to <verb> <resource-type> in <location> [where <condition>]
- 22. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 22
IAM Policyの設定例
許可したい処理 IAMポリシーの設定
ユーザーがテナント内の全てのBucketからオ
ブジェクトをダウンロードできるようにする
Allow group ObjectReaders to read objects in tenancy
ユーザーがコンパートメントABCのbucket内か
らオブジェクトをダウンロードできるようにする
Allow group ObjectReaders to read objects in compartment ABC
指定のBucketからのみオブジェクトをダウン
ロードできるようにする
Allow group ObjectReaders to read objects in compartment ABC where target.bucket.name='BucketA'
ユーザーがテナント内の全てのBucketからオ
ブジェクトをダウンロードできるようにする
Allow group ObjectWriters to use objects in tenancy
ユーザーがテナント内の全てのBucketのオブ
ジェクトの有無を確認できるようにする
Allow group ObjectReaders to inspect objects in tenancy
ユーザーがテナント内の全てのBucketへオブ
ジェクトをアップロードできるようにする
Allow group ObjectReaders to use objects in tenancy
ユーザーが、bucketを新規作成できるように
する
Allow group ObjectAdmins to manage buckets in tenancy
- 23. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• SDKs、3rd Partyソフトウェア、OCI-CLI
などのツールからOCI Object
Storageへアクセスするための認証
キー
• PEMフォーマットのRSAペアを作成
– 公開鍵をIAMユーザーにAPI Keyとして
登録
– 秘密鍵をクライアント側で保持
• 公開鍵を登録するIAMユーザーの
IAMポリシーでアクセスコントロー
ルを行う
OCI Object Storage API Key
23
OCI-CLI
SDKs
3rd Party SW
Object
Storage
Policies
Groups
Users
API Key
(Public)
API Key
(Private)
認証
認可
OCI
Client 識別
- 24. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
IAMユーザー
24
接続ユーザーの識別
認証(公開鍵)
認可(IAMポリシー)
クライアント
秘密鍵
IAM
Buckets
オブジェクトストレージ
Oracle Cloud Infrastructure
読み込みOK?
書き込みOK?
バケットの作成OK?
- 25. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• 鍵ペアの作成例
– 秘密鍵の作成(クライアント側に保持)
– 公開鍵の作成(作成後OCIに登録)
• OCIに公開鍵を登録
OCI Object Storage API Keyの設定
25
# openssl genrsa –out ~/.oci/oci_api_key.pem –aes128 2048
# openssl rsa -pubout -in ~/.oci/oci_api_key.pem -out
~/.oci/oci_api_key_public.pem
作成した公開鍵をコピー
Identity -> Users -> ユーザーを指定
- 26. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Amazon S3 Compatibility API Key
• Amazon S3 Compatibility APIとは?
– Amazon S3対応の既存ツール(ベンダーソフトウェアやユーザー開発の業務アプリな
ど)を最小限の変更でOCI Object Storage環境で稼働させるためのAPI
• Amazon S3 Compatibility API Key
– Amazon S3 Compatibility APIで開発されたアプリケーション用の認証鍵
• どちらのAPIで作成されたObject Storage上のデータセットは、どちらのAPI
でも読み込みができる
26
- 27. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• OCI上で鍵ペアを作成
• クライアントアプリケーション
(Cloudberry、NetBackup、
Commvault、その他)に秘密鍵を設
定
• 秘密鍵は作成時のみ確認可能、
作成後の再確認はできない
• 公開鍵はIAMユーザーに紐づ、
IAMポリシーで許可された処理の
みが実行可能
Amazon S3 Compatibility API Key
27
秘密鍵
Identity -> Users -> ユーザーを指定
- 28. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• 互換APIの場合、デフォルト・コン
パートメントはrootコンパートメント
となる
• デフォルト・コンパートメントを変更
可能
– Amazon S3互換APIを利用する場合
– SWIFT API互換APIを利用する場合
互換API利用時のデフォルト・コンパートメントの選択
28
Administration -> Tenancy Details
- 29. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Amazon S3 Compatibility API利用時の制約事項
• Global Bucket Namespaceを使用しない
• S3互換APIで暗号化をオフすることはできない
• AWS S3 ACLは使用できない
29
- 30. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• PythonベースのCLIツール
• OCIの各サービスの設定、操作を実
行
• Object Storage
– Bucketの作成、削除、リスト、公開/非公開
など
– オブジェクトのアップロード、ダウンロード、
リスト、リストア、名前変更など
– 一括アップロード、ダウンロード、プレフィッ
クス文字列など
• OCIネイティブのAPI Keyで認証、IAM
ポリシーで認可される
OCI-CLI
30
-------- upload an object to a bucket
# oci os object put -ns gse00014523 -bn ks_bucket01 --file ./dummy_1GB.dat
--name dummy_1GB.dat --no-multipart;date
Wed Jun 27 09:42:52 GMT 2018
Uploading object [####################################] 100%
{
"etag": "6F9D1D7983BFC0A5E053425EC10AF41E",
"last-modified": "Wed, 27 Jun 2018 09:43:24 GMT",
"opc-content-md5": "zVc8+qzgfnlJvAxGAokE/w=="
}
--------- download an object from a bucket
# oci os object get -ns gse00014523 -bn ks_bucket01 --name dummy_1GB.dat
--file /tmp/dummy_1GB.dat ; date
Downloading object [####################################] 100%
- 31. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• VCNをインターネットに晒すことなくオブ
ジェクトストレージへの通信が可能
– NATインスタンスやInternet Gatewayの設定が
不要
• VCNからObject Storageへの通信はイン
ターネットを経由しない
– Object Storageのエンドポイントへはインスタン
スのプライベートIPアドレスでルーティングされ
る
• 今後Object Storage以外のサービスもサ
ポートされる予定
• Yumリポジトリなど特定の外部サービス
へのルーティングも今後サポートされる
予定
Service Gateway
31
Internet
Gateway
Object
Storage
Public
Instance
Private
Instance
Private Subnet
10.0.2.0/24
Public Subnet
10.0.0.0/24
VCN 10.0.0.0/16
Oracle Cloud Region
Oracle Cloud Region
VCN 10.0.0.0/16
Private Subnet
10.0.2.0/24
Object
Storage
Service
Gateway
Private
Instance
Before
After
- 32. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Service Gatewayの設定
32
Oracle Cloud Region
VCN 10.0.0.0/16
Private Subnet
10.0.2.0/24
Object
Storage
Service
Gateway
Private Instance
1. Service Gatewayの作成
2. Routeの作成
対象のサービスを選択
作成したService Gateway
をRouteのTARGETに指定
1. Service Gateway
の作成
2.Routeの作成
- 33. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• Bucketへのアクセスコントロール
– 指定のVCN、Subnet以外からのアクセスを
遮断しBucketを保護
• IAMポリシーでの実装
– 指定のVCN、Private Subnetからのみのア
クセスを許可する
• Where句でCIDRを指定しフィルタ
– ポリシー設定例
• 10.0.2.0/24からのアクセスは可
• その他のサブネットからのアクセスは不可
•
Service Gateway
33
Private Subnet
10.0.1.0/24
Private Instances
Allow group ks_group to manage objects in compartment Demo where all
{target.bucket.name='ks_bucket01', request.vcn.id='ocid1.vcn.oc1.xxxxxxx…',
request.ipv4.ipaddress in ['10.0.2.0/24'], any
{request.permission='OBJECT_CREATE',
request.permission='OBJECT_INSPECT'}}
Oracle Cloud Region
VCN 10.0.0.0/16
Private Subnet
10.0.2.0/24
Object
Storage
Service
Gateway
Private Instance
IAM
Policy
- 34. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
Service Gateway 設計のルール
• VCN内に複数のSGを作成し、VCN内のどのサブネットがどのService Gatewayを
利用するかを設定可能
– 例
• あるサブネットがサービスゲートウェイを使用してサービスABCにアクセスし、別のサブネットが別のサー
ビスゲートウェイを使用してサービスXYZにアクセスする
• Service Gatewayは、自身のVCN内のリソースによってのみ使用できる
– VCNが別のVCNとピアリングされている場合、他のVCNのリソースはサービスゲートウェイに
アクセスできない
• FastConnectまたはIPSec VPNを使用してサービスゲートウェイのVCNに接続され
たオンプレミスネットワークのリソースは、サービスゲートウェイにアクセスでき
ない
– オンプレミスリソースがインターネットを経由せずにオブジェクトストレージにアクセスする必
要がある場合は、FastConnect Public Peeringを使用
34
- 35. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• 大容量オブジェクトを高速にアップ
ロードする機能
– 100MiB以上のオブジェクトに利用すること
を推奨
• 一つのオブジェクトを指定サイズの
パーツに分割し、並列アップロードす
ることで高速化
– 最大10,000個までの分割
– 各パーツのサイズは最小10MiB、最大
50GiB
• 最大10TiBまでのオブジェクトに対応
• OCI-CLI/REST API/SDKのみで利用でき
る機能
Multipart Upload
35
Object
File
①ファイルを分割
②オブジェクトパーツを並列アッ
プロード
アップロードがエラーになった場
合、該当オブジェクトパーツのみ
を再アップロード
③アップロード完了
ネットワーク
クライアント
オブジェクト
ストレージ
④オブジェクト構築
- 36. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• 通常のアップロード
– 1GBファイルのアップロードで約117秒
• Multipart Upload
– 1GBファイルのアップロードで約67秒
OCI-CLIでのMultipart Upload実行例
36
# oci os object put -ns gse00014523 -bn ks_bucket01 –file testfile_1GB_4 --name
testfile1 --no-multipart
Uploading object [####################################] 100%
{
"etag": "6F20E4043DB37E89E053425EC10A514A",
"last-modified": "Thu, 21 Jun 2018 05:27:16 GMT",
"opc-content-md5": "zVc8+qzgfnlJvAxGAokE/w=="
}
# oci os object put -ns gse00014523 -bn ks_bucket01 --file testfile_1GB_4 --name
testfile_1GB_4_multipart --part-size 100 --parallel-upload-count 10
Upload ID: d32406a3-6f09-1ce4-4551-a52cdf86b264
Split file into 11 parts for upload.
Uploading object [####################################] 100%
{
"etag": "6F21659F37D5034EE053425EC10A0150",
"last-modified": "Thu, 21 Jun 2018 06:18:33 GMT",
"opc-multipart-md5": "Xe7IKBS9d9HQl8cS0YyJ+Q==-11"
}
※オラクル社内のラップトップからOCI Object Storage(Ashburn DC)へ1GBの単一ファイルをアップロード
※表示結果は参考値でありコミットするものではありません。限界性能値ではありません。
- 37. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• Bucketのオブジェクトのリスト
OCI-CLIでのMultipart Upload実行例
37
# oci os object list -ns gse00014523 -bn ks_bucket01
{
"data": [
{
"md5": "zVc8+qzgfnlJvAxGAokE/w==",
"name": "testfile1",
"size": 1073741824,
"time-created": "2018-06-21T05:25:11.272000+00:00"
},
{
"md5": "Xe7IKBS9d9HQl8cS0YyJ+Q==-11",
"name": "testfile_1GB_4_multipart",
"size": 1073741824,
"time-created": "2018-06-21T06:18:33.965000+00:00"
}
],
"prefixes": []
}
Multipart uploadした
オブジェクト
単一のオブジェクトと
して扱われる
No Multipart upload
したオブジェクト
- 38. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• データの改ざんや消去の防止
• IAMポリシーにより実装
– 対象のグループに下記3つの権限の
みを付与する
• OBJECT_CREATE
• OBJECT_INSPECT
• OBJECT_READ
• PAR_MANAGE(Pre-Authentication Request機
能を使う場合のみ設定)
– OBJECT_OVERWRITEとOBJECT_DELETE
を付与しないことにより、既存オブジェ
クトの上書き、削除を実行不能にする
• IAMポリシー設定例
WORM(Write Once Read Many)機能
38
Allow group <group_name> manage objects in compartment <compartment_name>
where any {
request.permission=‘OBJECT_CREATE’,
request.permission=‘OBJECT_INSPECT’,
request.permission='OBJECT_READ’
}
- 39. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• 初回のアップロード
• オブジェクトの上書き
• オブジェクトの削除
WORM Compliance
39
[root@ks01 opc]# oci os object put -ns gse00014523 -bn ks_archive_bucket --file
dummy_4.dat
Uploading object [####################################] 100%
{
"etag": "709EA766924B5347E0530254C10A3848",
"last-modified": "Tue, 10 Jul 2018 05:04:26 GMT",
"opc-content-md5": "5GxGP0K5OJ2y2R+CLtwAwg=="
}
[root@ks01 opc]# oci os object put -ns gse00014523 -bn ks_archive_bucket --file
dummy_4.dat
WARNING: This object already exists. Are you sure you want to overwrite it? [y/N]: y
Uploading object [####################################] 100%ServiceError:
{
"code": "BucketNotFound",
"message": "Either the bucket named 'ks_archive_bucket' does not exist in the
namespace 'gse00014523' or you are not authorized to access it",
"opc-request-id": "3126312DD86C495EACF048F00E59B7B2",
"status": 404
}
[root@ks01 opc]# oci os object delete -ns gse00014523 -bn ks_archive_bucket --
name dummy_4.dat
Are you sure you want to delete this resource? [y/N]: y
ServiceError:
{
"code": "BucketNotFound",
"message": "Either the bucket named 'ks_archive_bucket' does not exist in the
namespace 'gse00014523' or you are not authorized to access it",
"opc-request-id": "53E3D7FA817C4B7CBE78F85134C4BAE5",
"status": 404
}
初回のアップロード
や参照などオブジェ
クトの変更以外の処
理は実行可能
上書き処理をエラーにする
削除処理をエラーにする
- 40. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• 事前作成のルールに基づき、Standard
Bucketからより安価なArchive Storageへ
オブジェクトを移動もしくは削除すること
でストレージのトータルコストを削減する
仕組み
• ルールの例
– ルールA
• オブジェクトが作成され、30日が経過した時点で
Standard BucketからArchiveストレージへ移動
– ルールB
• オブジェクトが作成され、120日(移動後90日)が経過
した時点でArchiveオブジェクトを削除
• ルール作成時点で、既にそのルール合
致するオブジェクトが存在した場合は、
すぐに処理が実行される
Object Lifecycle Management
40
オブジェクト作成
Standard Bucket Archive Storage
Standard Bucket Archive Storage
Standard Bucket Archive Storage
オブジェクト作成後30日経過
オブジェクト作成後120日経過(移
動後90日経過)
Standard Bucketに
オブジェクトを作成
30日後にStandard Bucket上の
ObjectがArchiveストレージへ
自動的に移動(Archiveクラウド
の課金体系になる)
120日後にArchiveストレージ
上のオブジェクトが自動的に
削除される(課金がなくなる)
※Archiveストレージ上のオブジェクトは90日以内に削除すると追加の課金
が発生します。(Archive Storage Serviceと同等の課金ルールとなります。)
- 41. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• 実効可能な処理
– Standard Bucketへの設定
• オブジェクトの削除(Delete)
• Archive Bucketへの移動(Archive)
– Archive Bucketへの設定
• オブジェクトの削除(Delete)
• ArchiveからStandardへの移動はできない
• オブジェクト名の接頭辞を指定し、処理対象
オブジェクトを選択
– 設定例
• 接頭辞に”ABC_”を指定し、ABC_test01.json,
ABC_test02.jasonなどのオブジェクトを纏めて処理
• 接頭辞に”/n/directryA”を指定し、/n/directryA/test01,
/n/directryA/test02などのオブジェクトを纏めて処理
– 接頭辞を指定しない場合、全てのオブジェクトが
対象となる
Object Lifecycle Management
41
実効する処理としてDelete
かArchiveかを選択。
Archive Bucketの場合は
Deleteのみ選択可。
データ作成後の経過日数を一
日単位で指定。該当日数経過
後、指定したアクション(Delete
かArchive)が実行される。
接頭辞の指定
ルールの作成
Menu -> Object Storage -> Object Storage -> Bucketを選択 -> Lifecycle Policy
Rules -> Create Rule
※削除されたオブジェクトは回復できないので事前に開発環境でルールをテストする
ことが推奨されます
- 42. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• 異なるBucketにオブジェクトをコピーする機能
– 同一リージョンの異なるBucket
– 別リージョンのBucket
– 同一リージョンまたは別リージョンの他のテナントの
Bucket
• オブジェクト単位でのコピー操作(Bucket単位では
ない)
• Standard BucketとArchive Bucket間のコピーも可
能
• 下記のいずれかを一つ選択し、コピー処理の
ルールを設定
– 上書き可
– 上書き不可
– コピー元とコピー先オブジェクトのETag値が同一の場
合のみ上書き可
– 指定したETag値のオブジェクトをコピー
Cross Region Copy
42
※上書きしたオブジェクトを元に戻すことはできません。
Menu -> Object Storage -> Bucketを選択 -> 対象オブジェクト
のメニューから”copy”を選択
コピー先のテナン
ト、リージョン、
Bucketを指定
コピー処理の
ルールを選択
ETag値を記載
コピー処理のリクエスト
を実行後、非同期に処
理される
- 43. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• コピー処理はリクエスト後にキューに
入り、非同期に実行される
• リクエスト後のステイタスを確認可能
– ACCEPTED:リクエスト受付完了
– IN PROGRESS:コピー中
– SUCCEEDED:正常完了
– CANCELING:キャンセル中
– CANCELED:キャンセル完了
– FAILD:処理失敗
• コピー先のオブジェクトは元のハッ
シュ値と異なる場合がある
Cross Region Copy
43
Menu -> Object Storage -> Bucketを選択 -> Work Requestを選択
コピー処理のステイタス
- 44. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• Object Storageに格納されたデータ
に、HadoopやSparkのジョブを実行
– オブジェクトに対して直接Read/Write
処理を実行可能
– 既にデータが格納されているBucketも
可
– Hadoop 2.7.2をサポート
Hadoop Connector
44
Object Storage
HDFS Connector
Hadoop
ジョブ
Spark
ジョブ
- 45. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• Block Storageで構成されている
HDFSでのファイルのパス(通常の
HDFS構成の場合)
– OSのディレクトリ構造と同じ
• Object Storageに格納されたオブ
ジェクトのパス(HDFS Connector経
由の場合)
– コマンド内で通常のディレクトリとは異
なる指定
– 指定例
Hadoop ConnectorでのオブジェクトのName Space
45
ローカルからHDFSにファイル転送
# hadoop fs –put /home/opc/aaa.txt /hdfs/dir1/
HDFSからローカルにファイル転送
# hadoop fs –get /hdfs/dir1/aaa.txt /home/opc/
ディレクトリ、ファイルのリスト
# hadoop fs –ls /dir1/dir2
ディレクトリ作成
# hadoop fs –mkdir /dir1/dir2/dir3
例(サブディレクトリ)
oci://test_bucket@gse000142535/dir1/dir2/
例(オブジェクト)
oci://test_bucket@gse000142535/dir1/dir2/example.json
oci://<bucket_name>@<namespace_name>/
※オブジェクトストレージにはディレクトリ構造自体がないがオブジェクト名
文字列内の(/)をデリミタとしてディレクトリのように扱うことができる
- 46. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• Sparkクラスタの構築
– Sparkをインストール
– その他、JavaやScalaなど
• Object Storage上のBucketを認識させる
– Hadoopの構成ファイル core-site.xmlにOCIの
構成情報を設定
• HDFS Connectorをダウンロードし、
Hadoopのノードに展開
– Download the HDFS Connector
• データセットをObject Storageにアップ
ロード
• Hadoop、Sparkのジョブを作成する
– API reference documentation: HDFS Connector
API Reference
Hadoop Connector 構成例
46
Bucket
(Object Storage)
csvファイル
Hadoop/Sparkクラスタ
Hadoop/Sparkジョブの対象
データセット
core-site.xml
oci-hdfs-full-x.x.x.x.jar
HDFS Connector
Hadoop / Spark
Hadoop Connectorのバイナリ
(Githubからダウンロード)
Hadoop/Spark
のジョブ
設定項目
(Cloud Consoleから確認)
⚫ REST endpoint
⚫ Bucket名
⚫ Tenat ID
⚫ User ID
⚫ API KeyのFinger print
⚫ Private Key ファイルのパス
Hdoop / Sparkのジョブ
Javaの実行バイナリや、Scala
のスクリプトなど
- 47. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• SparkのジョブをScalaで実行
– Scala起動
– sc.textFile(file)を実行しBucketに格納さ
れたmovie.csvの内容を参照する
SparkでのHDFS Connectorの実行例
47
Bucket
(Object Storage)
movie.csv
Hadoop/Sparkクラスタ
core-site.xml
oci-hdfs-full-2.7.2.0.jar
HDFS Connector
Hadoop / Spark
Hadoop/Spark
のジョブ
scala>
sc.textFile("oci://test_bucket@gse0001425/movies.csv").take(20).foreach(
println)
movieId,title,genres
1,Toy Story (1995),Adventure|Animation|Children|Comedy|Fantasy
2,Jumanji (1995),Adventure|Children|Fantasy
3,Grumpier Old Men (1995),Comedy|Romance
4,Waiting to Exhale (1995),Comedy|Drama|Romance
5,Father of the Bride Part II (1995),Comedy
………………….
………………….
# $SPARK_HOME/bin/spark-shell --jars $HOME/oci-hdfs/lib/oci-hdfs-full-
2.7.2.0.jar
scala>
sc.textFile(movie.csv)
scala>
sc.textFile(movie.csv)
1,Toy Story (1995)
2,Jumanji (1995)
3,Grumpier Old Men (1995
4,Waiting to Exhale (1995)
5,Father of the Bride Part II
(1995)
……………………
……………………
Hadoop Connectorのjarファイル
- 48. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
• バケット毎の時系列
– 使用量
• 未完了のマルチパートアップロードのパーツ
は含まない
– オブジェクト数
• 未完了のマルチパートアップロードのパーツ
は含まない
– 未完了のマルチパートアップロードの
パーツ
バケットのメトリックの監視
48
- 49. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. |
メトリックのアラーム設定による通知(1)
• 対象メトリックに対して、閾
値と比較演算子を設定し条
件にマッチした場合にア
ラームがトリガーされる
• Oracle Notificationsにより、
登録済メールアドレスもしく
はPagerDuty(インシデント
管理サービス)へ通知が行
われる
• 設定済のAlarm Name,
Alarm body, Alarm Severity
などが通知内容に含まれ
る
49
メトリック:しきい値を設定する対象
比較演算子 しきい値
通知レベル
通知内容
通知名
- 50. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 50
メトリックのアラーム設定による通知(2)
メール通知の例
{"dedupeKey":"d9644824-4acc-4185-a31c-2dd355edde8b",
"title":"object storage usage",
“body”:“object storage usage is over 1TB",
"type":"REPEAT",
"severity":"WARNING",
"timestampEpochMillis":1553590800000,
(中略)
please click or visit the link below to unsubscribe: https://cell1.notification.us-ashburn-
1.oraclecloud.com/20181201/subscriptions/ocid1.onssubscription.oc1.iad.aaaaaaaaxwxeofltzf43yyw73i76sjei
r6poch5sis6q5halio3alznzeoqa/unsubscription?token=YVpsOE4weTU4TTdHNVFKUzA3YmFlYkUvWjRmMjZEU
mdQcG9sMGMxbE9IbElHS2o1d3U5UU1NPQ==&protocol=EMAIL Please do not reply directly to this email.
Alarm Name
Alarm Name
Alarm Body
Severity
登録済メールアドレス
- 51. Copyright © 2019, Oracle and/or its affiliates. All rights reserved. | 51
Service Limits
Resource Monthly Universal Credits Pay-as-You-Go or Promo
Buckets 1000 per compartment 1000 per compartment
Objects per bucket Unlimited Unlimited
Maximum object size 10 TiB 10 TiB
Maximum object part size 50 GiB 50 GiB