S3 수명 주기 구성 만들기
StorageGRID 시스템에서 특정 개체가 삭제되는 시점을 제어하기 위해 S3 수명 주기 구성을 만들 수 있습니다.
이 섹션의 간단한 예는 S3 수명 주기 구성을 통해 특정 S3 버킷에서 특정 객체가 삭제(만료)되는 시기를 어떻게 제어할 수 있는지 보여줍니다. 이 섹션의 예는 단지 설명 목적으로만 사용됩니다. S3 수명 주기 구성을 만드는 방법에 대한 자세한 내용은 다음을 참조하세요. "Amazon Simple Storage Service 사용자 가이드: 객체 수명 주기 관리" . StorageGRID 만료 작업만 지원하고 전환 작업은 지원하지 않습니다.
수명주기 구성은 무엇입니까?
수명 주기 구성은 특정 S3 버킷의 객체에 적용되는 규칙 집합입니다. 각 규칙은 어떤 객체가 영향을 받는지, 그리고 해당 객체가 언제 만료되는지(특정 날짜 또는 며칠 후)를 지정합니다.
StorageGRID 수명 주기 구성에서 최대 1,000개의 수명 주기 규칙을 지원합니다. 각 규칙에는 다음과 같은 XML 요소가 포함될 수 있습니다.
-
만료: 객체가 수집된 시점부터 시작하여 지정된 날짜 또는 지정된 일수가 되면 객체를 삭제합니다.
-
NoncurrentVersionExpiration: 개체가 비현재 상태가 된 날로부터 지정된 일수가 지나면 개체를 삭제합니다.
-
필터(접두사, 태그)
-
상태
-
ID
각 개체는 S3 버킷 수명 주기 또는 ILM 정책의 보존 설정을 따릅니다. S3 버킷 수명 주기가 구성되면 수명 주기 만료 작업은 버킷 수명 주기 필터와 일치하는 개체에 대한 ILM 정책을 재정의합니다. 버킷 수명 주기 필터와 일치하지 않는 개체는 ILM 정책의 보존 설정을 사용합니다. 객체가 버킷 수명 주기 필터와 일치하고 만료 작업이 명시적으로 지정되지 않은 경우 ILM 정책의 보존 설정은 사용되지 않으며 객체 버전이 영구적으로 보존됨을 의미합니다. 보다 "S3 버킷 수명 주기 및 ILM 정책에 대한 예시 우선 순위" .
결과적으로 ILM 규칙의 배치 지침이 개체에 계속 적용되는 경우에도 개체가 그리드에서 제거될 수 있습니다. 또는 객체에 대한 ILM 배치 지침이 만료된 후에도 객체가 그리드에 유지될 수도 있습니다. 자세한 내용은 다음을 참조하십시오. "ILM이 객체의 수명 동안 작동하는 방식" .
|
|
버킷 수명 주기 구성은 S3 객체 잠금이 활성화된 버킷과 함께 사용할 수 있지만, 레거시 호환 버킷에는 버킷 수명 주기 구성이 지원되지 않습니다. |
StorageGRID 다음 버킷 작업을 사용하여 수명 주기 구성을 관리할 수 있도록 지원합니다.
-
버킷 수명 주기 삭제
-
GetBucketLifecycleConfiguration
-
PutBucketLifecycleConfiguration
라이프사이클 구성 생성
수명 주기 구성을 만드는 첫 단계로, 하나 이상의 규칙을 포함하는 JSON 파일을 만듭니다. 예를 들어, 이 JSON 파일에는 다음과 같이 세 가지 규칙이 포함되어 있습니다.
-
규칙 1은 접두사와 일치하는 객체에만 적용됩니다.
category1/ 그리고 그것을 가지고있다key2의 가치tag2. 그만큼Expiration매개변수는 필터와 일치하는 객체가 2020년 8월 22일 자정에 만료됨을 지정합니다. -
규칙 2는 접두사와 일치하는 객체에만 적용됩니다.
category2/. 그만큼Expiration매개변수는 필터와 일치하는 객체가 수집된 후 100일이 지나면 만료됨을 지정합니다.일수를 지정하는 규칙은 객체가 수집된 시점을 기준으로 합니다. 현재 날짜가 수집 날짜와 일 수를 합친 날짜를 초과하는 경우, 수명 주기 구성이 적용되자마자 일부 개체가 버킷에서 제거될 수 있습니다. -
규칙 3은 접두사와 일치하는 객체에만 적용됩니다.
category3/. 그만큼Expiration매개변수는 일치하는 객체의 모든 비현재 버전이 비현재 상태가 된 후 50일 후에 만료됨을 지정합니다.
{
"Rules": [
{
"ID": "rule1",
"Filter": {
"And": {
"Prefix": "category1/",
"Tags": [
{
"Key": "key2",
"Value": "tag2"
}
]
}
},
"Expiration": {
"Date": "2020-08-22T00:00:00Z"
},
"Status": "Enabled"
},
{
"ID": "rule2",
"Filter": {
"Prefix": "category2/"
},
"Expiration": {
"Days": 100
},
"Status": "Enabled"
},
{
"ID": "rule3",
"Filter": {
"Prefix": "category3/"
},
"NoncurrentVersionExpiration": {
"NoncurrentDays": 50
},
"Status": "Enabled"
}
]
}
버킷에 수명 주기 구성 적용
라이프사이클 구성 파일을 만든 후 PutBucketLifecycleConfiguration 요청을 실행하여 버킷에 적용합니다.
이 요청은 예제 파일의 수명 주기 구성을 버킷의 객체에 적용합니다. testbucket .
aws s3api --endpoint-url <StorageGRID endpoint> put-bucket-lifecycle-configuration --bucket testbucket --lifecycle-configuration file://bktjson.json
버킷에 수명 주기 구성이 성공적으로 적용되었는지 확인하려면 GetBucketLifecycleConfiguration 요청을 실행합니다. 예를 들어:
aws s3api --endpoint-url <StorageGRID endpoint> get-bucket-lifecycle-configuration --bucket testbucket
성공적인 응답에는 방금 적용한 수명 주기 구성이 나열됩니다.
버킷 수명 주기 만료가 객체에 적용되는지 확인합니다.
PutObject, HeadObject 또는 GetObject 요청을 발행할 때 수명 주기 구성의 만료 규칙이 특정 개체에 적용되는지 여부를 확인할 수 있습니다. 규칙이 적용되는 경우 응답에는 다음이 포함됩니다. Expiration 객체가 만료되는 시점과 일치하는 만료 규칙을 나타내는 매개변수입니다.
|
|
버킷 수명 주기가 ILM을 재정의하기 때문에 expiry-date 표시된 날짜는 해당 객체가 삭제되는 실제 날짜입니다. 자세한 내용은 다음을 참조하십시오. "객체 보존이 결정되는 방식" .
|
예를 들어, 이 PutObject 요청은 2020년 6월 22일에 발행되었으며 객체를 다음 위치에 배치합니다. testbucket 버킷.
aws s3api --endpoint-url <StorageGRID endpoint> put-object --bucket testbucket --key obj2test2 --body bktjson.json
성공 응답은 해당 객체가 100일(2020년 10월 1일) 후에 만료되며 수명 주기 구성의 규칙 2와 일치함을 나타냅니다.
{
*"Expiration": "expiry-date=\"Thu, 01 Oct 2020 09:07:49 GMT\", rule-id=\"rule2\"",
"ETag": "\"9762f8a803bc34f5340579d4446076f7\""
}
예를 들어, 이 HeadObject 요청은 testbucket 버킷에 있는 동일한 객체에 대한 메타데이터를 가져오는 데 사용되었습니다.
aws s3api --endpoint-url <StorageGRID endpoint> head-object --bucket testbucket --key obj2test2
성공 응답에는 개체의 메타데이터가 포함되며 개체가 100일 후에 만료되고 규칙 2와 일치한다는 것을 나타냅니다.
{
"AcceptRanges": "bytes",
*"Expiration": "expiry-date=\"Thu, 01 Oct 2020 09:07:48 GMT\", rule-id=\"rule2\"",
"LastModified": "2020-06-23T09:07:48+00:00",
"ContentLength": 921,
"ETag": "\"9762f8a803bc34f5340579d4446076f7\""
"ContentType": "binary/octet-stream",
"Metadata": {}
}
|
|
버전 관리가 가능한 버킷의 경우 x-amz-expiration 응답 헤더는 현재 버전의 객체에만 적용됩니다.
|