オブジェクト・ストレージ・オブジェクト・ライフサイクル管理
オブジェクト・ライフサイクル管理を使用して、オブジェクトのアーカイブおよび削除を自動的に管理する方法について学習します。
オブジェクト・ライフサイクル管理を使用してオブジェクト・ストレージおよびアーカイブ・ストレージのデータを管理および管理することで、ストレージ・コストとデータの手動管理に費やす時間を削減できます。
オブジェクト・ライフサイクル管理は、定義したルールに基づいて自動アクションを実行することで機能します。これらのルールは、オブジェクト・ストレージに対し、コミットされていないマルチパート・アップロードを削除、別のストレージ層にオブジェクトを移動、および特定のバケット内でサポートされているリソースをユーザーにかわって削除するよう指示します。バケットのライフサイクル・ルールは、総称してオブジェクトのライフサイクル・ポリシーと呼ばれます。オブジェクト・ライフサイクル管理でサポートされているリソースには、オブジェクト、オブジェクト・バージョン、およびコミットされていないか失敗したマルチパート・アップロードが含まれます。
たとえば、次のことを自動的に実行するルールを定義できます:
.doc拡張子を持つ標準層オブジェクトを、作成または最終更新の60日後に頻出しないアクセス層またはアーカイブ層に移動します。- 標準層オブジェクトを、作成または最終更新の30日後にアーカイブ層に移動し、それらのアーカイブされたオブジェクトを180日後に自動的に削除します。
- 標準層オブジェクトを、作成または最終更新の90日後に頻発しないアクセス層に移動します。
- オブジェクト・バージョンが最新バージョンから以前のバージョンに遷移してから120日後に、以前のオブジェクト・バージョンをすべて削除します。
- コミットされていないか失敗したマルチパート・アップロードを5日後に削除します。
- バケットの削除に備えて、バケット内のすべてのオブジェクトおよびオブジェクト・バージョンを削除します。
各オブジェクト・ストレージまたはアーカイブ・ストレージ・バケットには、最大1,000個のルールで構成される単一のライフサイクル・ポリシーを設定できます。オブジェクト関連のルールには、オブジェクト名のパターン一致の条件を指定できます。
必要に応じて、コンソールで個々のルールを作成、編集、削除、有効化および無効化できます。CLIまたはAPIを使用してライフサイクル・ポリシーを更新するには、既存のポリシーを新しいポリシーで上書きします。バケットに適用するすべてのポリシー・ルールが新しいポリシーに含まれていることを確認します。
ルールは通常、トリガーされてから10分以内に実行されます。ただし、これはベスト・エフォート・ベースであり、時間がかかる場合があります。ルールは、24時間以内にほとんどのバケットのすべてのオブジェクトに適用できますが、非常に大きなバケットには時間がかかる場合があります。異常な状況では、時間が予想より長くなる可能性があります。特に、ルールが一度に多くのオブジェクトに影響を与える場合です。ルールがトリガーされたがまだ処理されていない場合でも、オブジェクトが存在する階層について引き続き請求されます。
次のオブジェクト・ライフサイクル管理タスクを実行できます:
必須IAMポリシー
オブジェクト・ライフサイクル管理は、「オブジェクト・ストレージ」サービスでオブジェクトをアーカイブおよび削除する権限をユーザーに付与するまで、使用できません。詳細は、サービス権限を参照してください。
ポリシーを初めて使用する場合は、アイデンティティ・ドメインの管理および共通ポリシーを参照してください。
ユーザー権限
Oracle Cloud Infrastructureを使用するには、管理者が、テナンシ管理者がポリシーでセキュリティ・アクセス権を付与したグループのメンバーである必要があります。コンソールまたは(SDK、CLIまたはその他のツールを使用した) REST APIのどれを使用しているかにかかわらず、このアクセス権が必要です。権限がない、または認可されていないというメッセージが表示された場合は、テナンシ管理者に、どのタイプのアクセス権があり、どのコンパートメントでアクセスが作業する必要があるかを管理者に確認してください。
管理者の場合:
- ポリシーオブジェクト・ストレージの管理者がバケットとオブジェクトを管理するにより、指定したグループは、バケットおよびオブジェクトを使用したすべてのこと(ライフサイクル・ポリシーの追加および管理を含む)を実行できます。
- 個別の権限を付与するより限定的なポリシーを作成する場合:
- ライフサイクル・ポリシーを使用して、ユーザーのかわりに以前のオブジェクト・バージョンを削除するには、OBJECT_VERSION_DELETEが必要です。
- オブジェクトのストレージ層を変更するには、OBJECT_UPDATE_TIERが必要です。
オブジェクト・ストレージのユーザー権限の詳細は、「オブジェクト・ストレージ、アーカイブ・ストレージおよびデータ転送の詳細」に関する項を参照してください。
サービス権限
オブジェクト・ライフサイクル・ポリシーを実行するには、代理でオブジェクトをアーカイブおよび削除する権限をサービスに付与する必要があります。これを行うには、テナンシのルート・コンパートメントに次のポリシーを作成します:
Allow service objectstorage-<region_identifier> to manage object-family in compartment <compartment_name>
オブジェクト・ストレージはリージョン別サービスであるため、ライフサイクル・ポリシーを使用する各リージョンでオブジェクト・ストレージ・サービスを認可する必要があります。オブジェクト・ストレージにより、データが権限のないリージョンから読み取られないことが保証されています。
テナンシのルート・コンパートメントのポリシーを書き込む権限がない場合は、Oracle Cloud Infrastructure管理者に連絡してください。Oracle Cloud Infrastructureリージョンのリージョン識別子の値を見つけるには、リージョンおよび可用性ドメインを参照してください。
ポリシー動詞 manageを使用するかわりに、サービスに個別の権限を付与できます。例:
Allow service objectstorage-<region_identifier> to manage object-family in compartment <compartment_name> where any {request.permission='BUCKET_INSPECT', request.permission='BUCKET_READ', request.permission='OBJECT_INSPECT', request.permission='OBJECT_UPDATE_TIER', request.permission='OBJECT_DELETE', request.permission='OBJECT_VERSION_DELETE'}オプション
オブジェクト・ライフサイクル・ポリシー・ルールを作成する場合、次のオプションがあります:
- ライフサイクル・ルールが作成されると、そのルールのデフォルト名(たとえばlifecycle-rule-20190321-1559)が生成されます。このルール名は、ルールが作成された現在の年、月、日および時刻を識別します。そのシステム生成の名前を新しいルールに使用することも、別の名前を指定することもできます。
- 次を実行するライフサイクル・ルールを作成できます:
- バケット内のすべてのオブジェクトを移動または削除します。
- 指定したオブジェクト名フィルタに一致するバケット内のオブジェクトを移動または削除します。オブジェクト名の接頭辞とパターン一致の両方を使用して、オブジェクトを選択できます。詳細は、オブジェクト名フィルタの使用を参照してください。
- コミットされていないか失敗したマルチパート・アップロードを削除します。詳細は、オブジェクト・ストレージ・マルチパート・アップロードを参照してください。
オブジェクト・バージョニングがバケットで有効化または一時停止されている場合は、次を実行するライフサイクル・ルールを作成することもできます:- バケット内のすべてのオブジェクトの以前のバージョンを移動または削除します。
- 指定した名前フィルタに一致するバケット内のオブジェクトの以前のバージョンを移動または削除します。オブジェクト名の接頭辞とパターン一致の両方を使用して、オブジェクトを選択できます。詳細は、オブジェクト名フィルタの使用を参照してください。
- 指定したアクションが実行されるまでの日数を指定します。
- 作成時に新しいルールを有効にするか無効にするかを決定します。
オブジェクト名フィルタの使用
オブジェクト名フィルタを使用して、ライフサイクル・ルールが適用されるオブジェクト、オブジェクト・バージョンまたは以前のオブジェクト・バージョンのサブセットを指定します。ルール・ターゲット(オブジェクト、オブジェクト・バージョンまたは以前のオブジェクト・バージョン)ごとに別個のオブジェクト名フィルタ・ルールを作成します。
ルールをすべてのオブジェクト、すべてのオブジェクトのバージョンまたは以前のすべてのオブジェクト・バージョン・ターゲットに適用する場合は、オブジェクト名フィルタを指定しないでください。
2種類のオブジェクト名フィルタがサポートされています:
- 詳細は接頭辞および階層を使用したオブジェクト・ネーミングを参照してください。
- パターン一致はオブジェクト名全体での一致ですが、必要に応じてワイルドカード文字やその他のパターン一致構造を使用して、オブジェクト名内の0個以上の文字と一致させることができます。
オブジェクト名フィルタは、オブジェクト名全体に対して機能します。接頭辞(仮想フォルダおよびサブフォルダとしてコンソールに表示される)は、オブジェクト名の一部です。
たとえば、>marathon>participants>p_21.jpgというパスの場合、オブジェクトの名前はp_21.jpgではなく/marathon/participants/p_21.jpgです。
オブジェクト名フィルタは任意の順序で追加できます。オブジェクト・ライフサイクル管理は、次のようにルールの優先度を評価します:
- パターン除外
- パターン包含
- 接頭辞包含
接頭辞一致を使用したオブジェクトのフィルタ処理
ライフサイクル管理関連の操作の実行時に、照合の目的で接頭辞文字列を使用できます。オブジェクト名の接頭辞部分で照合して、特定の一括操作を実行することもできます。
- 次のオブジェクト名の例では、接頭辞にディレクトリ構造をシミュレートするための1つ以上のスラッシュ(/)が含まれています。文字列
marathon/またはmarathon/participants/は、ライフサイクル・ルールでの照合目的の接頭辞として機能します:marathon/finish_line.jpg marathon/podium.jpg marathon/participants/p_21.jpg marathon/participants/p_29.jpg - 次のオブジェクト名の例では、文字列
gloves_27_は、ライフサイクル・ルールでの照合目的の接頭辞として機能します:gloves_27_dark_green.jpg gloves_27_light_blue.jpg gloves_27_deep_purple.jpg gloves_27_bright_orange.jpg
パターン一致を使用したオブジェクトのフィルタ処理
オブジェクト・ストレージでは、オブジェクトを含めるか除外するために、次のパターン一致文字がサポートされます:
| 文字 | 説明 | パターンの例 | 一致する | 一致しない |
|---|---|---|---|---|
| * | 0文字以上の文字と一致します | *.tmp |
foo.tmp foo/bar/baz.tmp |
tmp Atmp |
| temp/*.tmp |
temp/working.tmp temp/new/file.tmp |
file.tmp temp.tmp temp/new.draft |
||
| *.xls |
.xls /home/user/file.xls |
xls .xl |
||
| /archive/* |
/archive/sub/dir/ /archive/1/2/3/4/foo.txt |
/src/archive/a archive/b |
||
| ? | 任意の1文字と一致します | X?Z |
XyZ X_Z |
XZ XYYZ |
| \ | 次の文字をエスケープします | \\dir\\sub\\* |
\dir\sub\ABC \dir\sub\ |
dir\sub\abc dirsub |
| [...] |
文字のグループと一致します。これには次があります:
|
[-ab3] |
- a b 3 |
-a -ab 3b |
| backup.tar.gz.[0-9] |
backup.tar.gz.0 backup.tar.gz.5 backup.tar.gz.9 |
backup.tar.gz10 backup.tar.gz |
||
| page-[0-9]* |
page-0 page-2 page-22 page-2X |
page- page-A1 |
||
| \[a-z\] | [a-z] |
a z [a-z |
オブジェクト名フィルタの制限
オブジェクト名フィルタには、次の制限が適用されます。
- オブジェクト名フィルタでは、最大20のパターンを使用できます。
- パターンは1024文字に制限されています。無効なパターンの例は次のとおりです:
- \
- [^a-z]
- [z-a]
-
[:isalpha:]
オブジェクト・ライフサイクル管理ポリシーの作業
ライフサイクル・ポリシー・ルールは、コンソール、コマンドライン・インタフェース(CLI)、SDKまたはAPIを使用して、作成、削除、編集または無効化できます。
オブジェクト・ライフサイクル管理の削除ポリシーは、オブジェクトの最終変更時間(UTC (協定世界時)に基づいて動作し、作成時間または最終上書き時間のいずれかを取得します。変更時間は、UTCで一番近い日に切り上げられます。
プラットフォームは、1日に1回ライフサイクル・ポリシーを実行します。ライフサイクル・ポリシーを構成または編集する際、変更が有効になり、最初の実行が開始されるまでに最大24時間かかる場合があります。ポリシー・アクションの完了にかかる時間は、評価および操作するオブジェクトの数によって異なります。
ライフサイクル・ポリシーによって代理で削除されたオブジェクトをリカバリすることはできません。ライフサイクル・ポリシーを作成および編集する際は、保持するデータを誤って削除しないようにしてください。本番環境でポリシーを使用する前に、開発データに関するライフサイクル・ポリシーをテストすることをお薦めします。
オブジェクト・ストレージ・オブジェクトのライフサイクル・ポリシーのリスト
オブジェクト・ストレージ・バケットのオブジェクト・ライフサイクル・ポリシーのリストを表示します。
コンソールの使用
リスト結果のフィルタリング
フィルタを使用して、リスト内のオブジェクト・ライフサイクル・ポリシーを制限します。表示されるオプションに応じて、次のいずれかのアクションを実行します。
- リスト表の上の「検索とフィルタ」ボックスから、1つ以上のフィルタを選択し、リストを絞り込むために使用する値を指定します。通常、フィルタはリスト表に示されている列に対応しますが、一部のフィルタは表に表示されていない属性を表します。「コンパートメント」フィルタは、常に「適用済フィルタ」の横に表示されます。
- リスト・ページの左側で、使用可能なフィルタ(コンパートメント、状態、タグなど)のいずれかから値を選択します。
列名の横にあるソート・アイコンを使用して、リスト表の項目の順序を変更します。
リソースの検索およびリスト表の列の管理の詳細は、リソースのリストを参照してください。
アクション
リスト表で、オブジェクト・ライフサイクル・ポリシーの名前を選択して、その詳細ページを開きます。このページでは、そのステータスを表示して他のタスクを実行できます。
オブジェクト・ライフサイクル・ポリシーに対するアクションをリスト表から直接実行するには、そのオブジェクト・ライフサイクル・ポリシーの行の「アクション」メニューから使用可能なオプションを選択します:
- 編集: オブジェクト・ライフサイクル・ポリシーを編集します。
- 無効化: オブジェクト・ライフサイクル・ポリシーを無効化します。
- 削除: オブジェクト・ライフサイクル・ポリシーを削除します。
オブジェクト・ライフサイクル・ポリシーを作成するには、「ルールの作成」を選択します。