Skip to main content
StorageGRID solutions and resources
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

StorageGRID의 버킷 수명 주기

기여자 netapp-aronk

S3 라이프사이클 구성을 생성하여 StorageGRID 시스템에서 특정 오브젝트 삭제 시기를 제어할 수 있습니다.

라이프사이클 구성이란 무엇입니까?

라이프사이클 구성은 특정 S3 버킷의 오브젝트에 적용되는 규칙 세트입니다. 각 규칙은 영향을 받는 개체와 해당 개체가 만료되는 시기(특정 날짜 또는 특정 일 수 이후)를 지정합니다.

각 오브젝트는 S3 버킷 라이프사이클 또는 ILM 정책의 보존 설정을 따릅니다. S3 버킷 라이프사이클이 구성되면 라이프사이클 만료 작업이 버킷 라이프사이클 필터와 일치하는 오브젝트에 대한 ILM 정책을 재정의합니다. 버킷 수명 주기 필터와 일치하지 않는 객체는 ILM 정책의 보존 설정을 사용합니다. 객체가 버킷 수명 주기 필터와 일치하고 만료 작업이 명시적으로 지정되지 않은 경우 ILM 정책의 보존 설정이 사용되지 않으며 객체 버전이 영구적으로 보존됩니다.

따라서 ILM 규칙의 배치 지침이 개체에 계속 적용되더라도 그리드에서 개체를 제거할 수 있습니다. 또는 객체에 대한 ILM 배치 지침이 만료된 후에도 객체가 그리드에 유지될 수 있습니다.

StorageGRID는 수명 주기 구성에서 최대 1,000개의 수명 주기 규칙을 지원합니다. 각 규칙에는 다음 XML 요소가 포함될 수 있습니다.

  • 만료: 지정된 날짜에 도달하거나 지정된 일 수에 도달할 때 개체를 인제스트할 때로부터 개체를 삭제합니다.

  • NoncurrentVersionExpiration: 지정된 일 수에 도달할 때 개체가 비전류가 되었을 때부터 개체를 삭제합니다.

  • 필터(접두사, 태그)

  • 상태 *ID

StorageGRID는 다음 버킷 작업을 사용하여 라이프사이클 구성을 관리합니다.

  • DeleteBucketLifecycle

  • GetBuckLifecycleConfiguration 을 참조하십시오

  • PutBucketLifecycleConfiguration을 참조하십시오

수명 주기 정책의 구조

라이프사이클 구성을 만드는 첫 번째 단계에서는 하나 이상의 규칙이 포함된 JSON 파일을 만듭니다. 예를 들어 이 JSON 파일에는 다음과 같은 세 가지 규칙이 포함되어 있습니다.

  1. *규칙 1*은 category1/ 접두사와 일치하고 key2 값이 tag2인 객체에만 적용됩니다. Expiration 매개변수는 필터와 일치하는 객체가 2020년 8월 22일 자정에 만료되도록 지정합니다.

  2. *규칙 2*는 category2/ 접두사와 일치하는 객체에만 적용됩니다. 만료 매개변수는 필터와 일치하는 객체가 수집된 후 100일 후에 만료되도록 지정합니다.

    주의 일 수를 지정하는 규칙은 오브젝트가 수집된 시점을 기준으로 합니다. 현재 날짜가 수집 날짜와 일 수를 더한 값을 초과하면 라이프사이클 구성이 적용되는 즉시 일부 객체가 버킷에서 제거될 수 있습니다.
  3. *규칙 3*은 category3/ 접두사와 일치하는 객체에만 적용됩니다. 만료 매개변수는 일치하는 객체의 모든 비현재 버전이 비현재 버전으로 전환된 후 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

표준(버전 없음) 버킷에 대한 예시 수명 주기 정책

90일 후에 개체 삭제

사용 사례: 이 정책은 임시 파일, 로그 또는 중간 처리 데이터와 같이 제한된 기간 동안만 관련성이 있는 데이터를 관리하는 데 적합합니다. 이점: 저장 비용을 절감하고 버킷을 깔끔하게 유지할 수 있습니다.

{
	"Rules": [
	  {
		"ID": "Delete after 90 day rule",
		"Filter": {},
		"Status": "Enabled",
		  "Expiration": {
			  "Days": 90
	    }
	  }
	]
}

버전이 지정된 버킷에 대한 수명 주기 정책 예

10일 후 비현재 버전 삭제

사용 사례: 이 정책은 시간이 지남에 따라 누적되어 상당한 공간을 차지할 수 있는 최신 버전이 아닌 객체의 저장소를 관리하는 데 도움이 됩니다. 이점: 최신 버전만 보관하여 저장소 사용량을 최적화합니다.

{
	"Rules": [
	        {
		"ID": "NoncurrentVersionExpiration 10 day rule",
		"Filter": {},
		"Status": "Enabled",
		  "NoncurrentVersionExpiration": {
			  "NoncurrentDays": 10
	   	}
    }
	]
}

5개의 비현재 버전을 유지하세요

사례: 복구 또는 감사 목적으로 제한된 수의 이전 버전을 보관하려는 경우에 유용합니다. 이점: 충분한 기록 및 복구 지점을 보장하기 위해 충분한 수의 최신이 아닌 버전을 보관합니다.

{
	"Rules": [
	  {
		"ID": "NewerNoncurrentVersions 5 version rule",
		"Filter": {},
		"Status": "Enabled",
		"NoncurrentVersionExpiration": {
		  	"NewerNoncurrentVersions": 5
	    }
    }
	]
}

다른 버전이 없는 경우 삭제 마커를 제거합니다.

사용 사례: 이 정책은 시간이 지남에 따라 누적될 수 있는 모든 비현재 버전을 제거한 후 남은 삭제 마커를 관리하는 데 도움이 됩니다. 이점: 불필요한 잡동사니를 줄입니다.

{
	"Rules": [
    {
		"ID": "Delete marker cleanup rule",
		"Filter": {},
		"Status": "Enabled",
		"Expiration": {
        "ExpiredObjectDeleteMarker": true
	  	}
    }
	]
}

현재 버전은 30일 후에 삭제하고, 현재가 아닌 버전은 60일 후에 삭제하고, 다른 버전이 없으면 현재 버전 삭제로 생성된 삭제 마커를 제거합니다.

사용 사례: 삭제 마커를 포함하여 현재 버전과 이전 버전에 대한 완전한 수명 주기를 제공합니다. 이점: 스토리지 비용을 절감하고 충분한 복구 지점과 기록을 유지하면서 버킷을 깔끔하게 유지합니다.

{
  "Rules": [
    {
      "ID": "Delete current version",
      "Status": "Enabled",
      "Expiration": {
        "Days": 30
      },
    },
    {
      "ID": "noncurrent version retention",
      "Status": "Enabled",
      "NoncurrentVersionExpiration": {
        "NoncurrentDays": 60
      }
    },
    {
      "ID": "Markers",
      "Status": "Enabled",
      "Expiration": {
        "ExpiredObjectDeleteMarker": true
      }
    }
  ]
}

다른 버전이 없고 5일 동안 존재했던 삭제 마커를 제거하고, "accounts_ prefix"가 있는 개체의 경우 4개의 비현재 버전과 최소 30일 분의 기록을 유지하고, 다른 모든 개체 버전의 경우 2개의 버전과 최소 10일 분의 기록을 유지합니다.

사용 사례: 삭제 마커를 포함하여 현재 버전과 이전 버전의 전체 수명 주기를 관리하기 위해 다른 객체와 함께 특정 객체에 대한 고유한 규칙을 제공합니다. 이점: 스토리지 비용을 절감하고 버킷을 깔끔하게 유지하는 동시에 다양한 클라이언트 요구 사항을 충족할 수 있는 충분한 복구 지점과 기록을 유지합니다.

{
  "Rules": [
    {
      "ID": "Markers",
      "Status": "Enabled",
      "Expiration": {
        "Days": 5,
        "ExpiredObjectDeleteMarker": true
      },
    },
    {
      "ID": "accounts version retention",
      "Status": "Enabled",
      "NoncurrentVersionExpiration": {
        "NewerNoncurrentVersions": 4,
        "NoncurrentDays": 30
      },
      "Filter": {
          "Prefix":"account_"
      }
    },
    {
      "ID": "noncurrent version retention",
      "Status": "Enabled",
      "NoncurrentVersionExpiration": {
        "NewerNoncurrentVersions": 2,
        "NoncurrentDays": 10
      }
    }
  ]
}

결론

  • 정기적으로 수명 주기 정책을 검토하고 업데이트하고 이를 ILM 및 데이터 관리 목표에 맞춰 조정합니다.

  • 의도한 대로 작동하는지 확인하기 위해 정책을 광범위하게 적용하기 전에 비생산 환경이나 버킷에서 테스트합니다.

  • 논리 구조가 복잡해질 수 있으므로 규칙에 대한 설명적 ID를 사용하여 더 직관적으로 만드십시오.

  • 버킷 수명 주기 정책이 저장소 사용량과 성능에 미치는 영향을 모니터링하여 필요한 조정을 실시합니다.