ONTAP S3バケットライフサイクル管理ルールを作成する
ONTAP 9.13.1以降では、ライフサイクル管理ルールを作成して、S3バケット内のオブジェクトのライフサイクルを管理できます。バケット内の特定のオブジェクトに対して削除ルールを定義し、そのルールを適用してバケット オブジェクトを期限切れにできます。これにより、保持要件を満たしたり、S3オブジェクト ストレージ全体を効率的に管理したりできます。
|
|
バケットオブジェクトに対してオブジェクトロックが有効になっている場合、オブジェクトの有効期限に関するライフサイクル管理ルールはロックされたオブジェクトには適用されません。オブジェクトロックの詳細については、"バケットの作成"をご覧ください。 |
-
S3サーバーとバケットを含むS3対応SVMが既に存在している必要があります。詳細については、"S3用SVMの作成"を参照してください。
-
マルチプロトコル NAS ボリュームで S3 を使用する場合、またはMetroCluster構成で S3 を使用する場合、バケットライフサイクル管理ルールはサポートされません。
ライフサイクル管理ルールを作成する際にバケット オブジェクトに適用できる削除操作は、以下のとおりです。
-
現在のバージョンの削除 - このアクションは、ルールで識別されたオブジェクトを期限切れにします。バケットでバージョニングが有効になっている場合、S3 は期限切れのオブジェクトをすべて利用不可にします。バージョニングが有効になっていない場合、このルールはオブジェクトを完全に削除します。CLI アクションは `Expiration`です。
-
非現行バージョンの削除 - このアクションは、S3 が非現行オブジェクトを永久に削除できるタイミングを指定します。CLI アクションは `NoncurrentVersionExpiration`です。
非最新バージョンは、現在のバージョンの作成または変更時刻に基づいています。非最新オブジェクトの削除を遅延すると、オブジェクトを誤って削除または上書きした場合に役立ちます。たとえば、非最新バージョンが最新でなくなってから5日後に削除するように有効期限ルールを設定できます。たとえば、2014年1月1日午前10時30分(UTC)に、 photo.gif(バージョンID111111)というオブジェクトを作成したとします。2014年1月2日午前11時30分(UTC)に、photo.gif(バージョンID111111)を誤って削除し、新しいバージョンID(バージョンID4857693`など)の削除マーカーが作成されます。削除が完全になるまでに、 `photo.gif(バージョンID111111)の元のバージョンを復元する5日間の猶予があります。2014年1月8日午前0時(UTC)に、有効期限のライフサイクルルールが実行され、photo.gif(バージョンID111111)が非最新バージョンになってから5日後に完全に削除されます。 -
期限切れの削除マーカーの削除 - このアクションは、期限切れのオブジェクト削除マーカーを削除します。バージョニング対応のバケットでは、削除マーカーが付いたオブジェクトが現在のバージョンになります。オブジェクト自体は削除されず、それらに対してアクションを実行することはできません。これらのオブジェクトは、現在のバージョンが関連付けられていない場合、期限切れになります。CLIアクションは `Expiration`です。
-
未完了のマルチパートアップロードの削除 - このアクションは、マルチパートアップロードの進行中状態を保持する最大期間(日数)を設定します。この期間を過ぎると、マルチパートアップロードは削除されます。CLIアクションは `AbortIncompleteMultipartUpload`です。
使用するインターフェースによって手順が異なります。ONTAP 9.13.1ではCLIを使用する必要があります。ONTAP 9.14.1以降では、System Managerも使用できます。
CLIを使用したライフサイクル管理ルールの管理
ONTAP 9.13.1以降では、ONTAP CLIを使用して、S3バケット内のオブジェクトを期限切れにするライフサイクル管理ルールを作成できます。
CLIでバケット ライフサイクル管理ルールを作成する際には、それぞれの有効期限操作タイプの必須フィールドを定義する必要があります。これらのフィールドは、ルールの作成後に変更できます。次の表に、それぞれの操作タイプに固有のフィールドを示します。
操作タイプ |
固有のフィールド |
NonCurrentVersionExpiration |
|
Expiration |
|
AbortIncompleteMultipartUpload |
|
バケット ライフサイクル管理ルールを特定のオブジェクトにのみ適用するには、ルールの作成時に各フィルタを設定する必要があります。ルールの作成時にフィルタが設定されていない場合、ルールはバケット内のすべてのオブジェクトに適用されます。
すべてのフィルタは、最初の作成後に変更できます(次の項目を_除く_):+
-
-prefix -
-tags -
-obj-size-greater-than -
-obj-size-less-than
-
有効期限アクションタイプの必須フィールドを指定した `vserver object-store-server bucket lifecycle-management-rule create`コマンドを使用して、バケットライフサイクル管理ルールを作成します。
次のコマンドは、NonCurrentVersionExpirationバケット ライフサイクル管理ルールを作成します。
vserver object-store-server bucket lifecycle-management-rule create -vserver <svm_name> -bucket <bucket_name> -rule-id <rule_name> -action NonCurrentVersionExpiration -index <lifecycle_rule_index_integer> -is-enabled {true|false} -prefix <object_name> -tags <text> -obj-size-greater-than {<integer>[KB|MB|GB|TB|PB]} -obj-size-less-than {<integer>[KB|MB|GB|TB|PB]} -new-non-curr-versions <integer> -non-curr-days <integer>
次のコマンドは、Expirationバケット ライフサイクル管理ルールを作成します。
vserver object-store-server bucket lifecycle-management-rule create -vserver <svm_name> -bucket <bucket_name> -rule-id <rule_name> -action Expiration -index <lifecycle_rule_index_integer> -is-enabled {true|false} -prefix <object_name> -tags <text> -obj-size-greater-than {<integer>[KB|MB|GB|TB|PB]} -obj-size-less-than {<integer>[KB|MB|GB|TB|PB]} -obj-age-days <integer> -obj-exp-date <"MM/DD/YYYY HH:MM:SS"> -expired-obj-del-marker {true|false}
次のコマンドは、AbortIncompleteMultipartUploadバケット ライフサイクル管理ルールを作成します。
vserver object-store-server bucket lifecycle-management-rule create -vserver <svm_name> -bucket <bucket_name> -rule-id <rule_name> -action AbortIncompleteMultipartUpload -index <lifecycle_rule_index_integer> -is-enabled {true|false} -prefix <object_name> -tags <text> -obj-size-greater-than {<integer>[KB|MB|GB|TB|PB]} -obj-size-less-than {<integer>[KB|MB|GB|TB|PB]} -after-initiation-days <integer>
System Managerを使用したライフサイクル管理ルールの管理
ONTAP 9.14.1以降では、System Managerを使用してS3オブジェクトの有効期限を設定できるようになりました。S3オブジェクトのライフサイクル管理ルールを追加、編集、削除できます。また、あるバケット用に作成したライフサイクルルールをインポートし、別のバケット内のオブジェクトに適用することも可能です。有効なルールを無効にして、後で有効にすることも可能です。
ライフサイクル管理ルールの追加
-
*Storage > Buckets*をクリックします。
-
有効期限ルールを指定するバケットを選択します。
-
アイコンをクリックして、*ライフサイクルルールの管理*を選択します。 -
追加 > ライフサイクルルール をクリックします。
-
[Add a lifecycle rule]ページで、ルールの名前を追加します。
-
ルールのスコープを定義します。ルールをバケット内のすべてのオブジェクトに適用するか、特定のオブジェクトに適用するかを指定します。オブジェクトを指定する場合は、次のいずれかのフィルタ条件を少なくとも1つ追加します。
-
プレフィックス:ルールを適用するオブジェクトキー名のプレフィックスを指定します。通常は、オブジェクトのパスまたはフォルダです。ルールごとに1つのプレフィックスを入力できます。有効なプレフィックスを指定しない限り、ルールはバケット内のすべてのオブジェクトに適用されます。
-
タグ:ルールを適用するオブジェクトのキーと値のペア(タグ)を最大3つ指定します。フィルタリングには有効なキーのみが使用されます。値は任意です。ただし、値を追加する場合は、対応するキーに有効な値のみを追加するようにしてください。
-
サイズ:オブジェクトの最小サイズと最大サイズの範囲を制限できます。どちらか一方または両方の値を入力できます。デフォルトの単位はMiBです。
-
-
操作を指定します。
-
オブジェクトの現在のバージョンを期限切れにする:作成から指定した日数後、または指定した日付に、現在のすべてのオブジェクトを永久に使用不可にするルールを設定します。*期限切れオブジェクトの削除マーカーを削除する*オプションが選択されている場合、このオプションは使用できません。
-
現在のバージョン以外を完全に削除する:現在のバージョン以外を削除するまでの日数と、保持するバージョンの数を指定します。
-
期限切れのオブジェクトの削除マーカーを削除:期限切れの削除マーカーを持つオブジェクト、つまり、関連付けられている現在のオブジェクトのない削除マーカーを削除するには、このアクションを選択します。
このオプションは、保持期間後にすべてのオブジェクトが自動的に削除される*オブジェクトの現在のバージョンを期限切れにする*オプションを選択すると使用できなくなります。また、オブジェクトタグがフィルタリングに使用されている場合も、このオプションは使用できなくなります。 -
不完全なマルチパートアップロードを削除:不完全なマルチパートアップロードを削除するまでの日数を設定します。指定した保存期間内に進行中のマルチパートアップロードが失敗した場合、不完全なマルチパートアップロードを削除できます。このオプションは、オブジェクトタグをフィルタリングに使用している場合は使用できません。
-
*保存*をクリックします。
-
ライフサイクル ルールのインポート
-
*Storage > Buckets*をクリックします。
-
有効期限ルールのインポート先のバケットを選択します。
-
アイコンをクリックして、*ライフサイクルルールの管理*を選択します。 -
*追加 > ルールのインポート*をクリックします。
-
ルールをインポートするバケットを選択します。選択したバケットに対して定義されているライフサイクル管理ルールが表示されます。
-
インポートするルールを選択します。ルールは一度に1つずつ選択できます。デフォルトでは最初のルールが選択されています。
-
*インポート*をクリックします。
ルールの編集、削除、または無効化
編集できるのは、ルールに関連付けられたライフサイクル管理アクションのみです。ルールがオブジェクトタグでフィルタリングされている場合、*期限切れのオブジェクト削除マーカーを削除*および*不完全なマルチパートアップロードを削除*オプションは使用できません。
ルールを削除すると、そのルールはそれまで関連付けられていたオブジェクトには適用されなくなります。
-
*Storage > Buckets*をクリックします。
-
ライフサイクル管理ルールを編集、削除、または無効にするバケットを選択します。
-
アイコンをクリックして、*ライフサイクルルールの管理*を選択します。 -
目的のルールを選択します。編集と無効化は、一度に1つのルールに対して行うことができます。削除は一度に複数のルールに対して行うことができます。
-
編集、削除、または*無効化*を選択して手順を完了します。