Lifecycle 규칙에 필터 추가
Lifecycle 규칙에 필터 추가
필터는 규칙이 적용되는 객체를 지정하는 데 사용할 수 있는 선택적 Lifecycle 규칙 요소예요.
객체를 필터링하는 데 다음 요소를 사용할 수 있어요.
- 키 접두사 — 접두사를 기준으로 객체를 필터링할 수 있어요. 접두사가 다른 객체 하위 집합에 Lifecycle 작업을 적용하려면 각 작업에 대해 별도의 규칙을 만드세요.
- 객체 태그 — 하나 이상의 태그를 기준으로 객체를 필터링할 수 있어요. 각 태그는 키와 값을 모두 정확히 일치해야 하며, 여러 태그를 지정하면 각 태그 키는 고유해야 해요. 여러 객체 태그가 있는 필터는 지정된 모든 태그를 가진 객체 하위 집합에 적용돼요. 객체에 추가 태그가 지정되어 있어도 필터는 여전히 적용돼요.
참고:
Key요소만 지정하고Value요소를 지정하지 않으면 규칙은 태그 키와 일치하면서 값이 지정되지 않은 객체에만 적용돼요. - 최소 또는 최대 객체 크기 — 크기를 기준으로 객체를 필터링할 수 있어요.
ObjectSizeGreaterThan(최소 크기)이나ObjectSizeLessThan(최대 크기)을 지정하거나, 같은 필터에 객체 크기 범위를 지정할 수 있어요. 객체 크기 값은 바이트 단위예요. 최대 필터 크기는 50TB예요. Amazon S3는 Lifecycle 구성에 기본 최소 객체 크기를 적용해요. 자세한 내용은 "예제: 128KB보다 작은 객체 전환 허용"을 참고하세요.
다른 필터 요소를 결합할 수 있으며, 이 경우 Amazon S3는 논리적 AND를 사용해요.
출처: 문서
본문
필터 예시
다음 예시는 다양한 필터 요소를 사용하는 방법을 보여줘요.
- 키 접두사로 필터 지정하기 – 이 예시는 키 이름 접두사(
logs/)에 따라 객체 하위 집합에 적용되는 S3 Lifecycle 규칙을 보여줘요. 예를 들어 이 Lifecycle 규칙은logs/mylog.txt,logs/temp1.txt,logs/test.txt객체에 적용돼요.example.jpg객체에는 적용되지 않아요.
<LifecycleConfiguration>
<Rule>
<Filter>
<Prefix>logs/</Prefix>
</Filter>
transition/expiration actions
...
</Rule>
...
</LifecycleConfiguration>
참고: 같은 문자로 시작하는 접두사가 하나 이상 있으면 필터에서 뒤에 슬래시(
/)가 없는 일부 접두사를 지정해 그 모든 접두사를 규칙에 포함할 수 있어요. 예를 들어 다음과 같은 접두사가 있다고 가정해 보세요.
sales1999/
sales2000/
sales2001/
세 접두사를 모두 규칙에 포함하려면 Lifecycle 규칙에서 접두사를 sales로 지정하세요.
서로 다른 키 이름 접두사에 따라 객체 하위 집합에 Lifecycle 작업을 적용하려면 별도의 규칙을 지정하세요. 각 규칙에서 접두사 기반 필터를 지정하세요. 예를 들어 키 접두사가 projectA/와 projectB/인 객체에 대한 Lifecycle 작업을 설명하려면 다음과 같이 두 개의 규칙을 지정하세요.
<LifecycleConfiguration>
<Rule>
<Filter>
<Prefix>projectA/</Prefix>
</Filter>
transition/expiration actions
...
</Rule>
<Rule>
<Filter>
<Prefix>projectB/</Prefix>
</Filter>
transition/expiration actions
...
</Rule>
</LifecycleConfiguration>
객체 키에 대한 자세한 내용은 "Amazon S3 객체 이름 지정"을 참고하세요.
- 객체 태그 기반 필터 지정하기 – 다음 예시에서 Lifecycle 규칙은 태그(
key)와 값(value)을 기반으로 하는 필터를 지정해요. 이 규칙은 특정 태그가 있는 객체 하위 집합에만 적용돼요.
<LifecycleConfiguration>
<Rule>
<Filter>
<Tag>
<Key>key</Key>
<Value>value</Value>
</Tag>
</Filter>
transition/expiration actions
...
</Rule>
</LifecycleConfiguration>
여러 태그를 기반으로 하는 필터를 지정할 수 있어요. 다음 예시처럼 태그를 <And> 요소로 감싸야 해요. 이 규칙은 두 개의 태그(특정 태그 키와 값)를 가진 객체에 Lifecycle 작업을 수행하도록 Amazon S3에 지시해요.
<LifecycleConfiguration>
<Rule>
<Filter>
<And>
<Tag>
<Key>key1</Key>
<Value>value1</Value>
</Tag>
<Tag>
<Key>key2</Key>
<Value>value2</Value>
</Tag>
...
</And>
</Filter>
transition/expiration actions
</Rule>
</Lifecycle>
Lifecycle 규칙은 지정된 두 태그를 모두 가진 객체에 적용돼요. Amazon S3는 논리적 AND를 수행해요. 다음을 주의하세요.
- 각 태그는 키와 값을 모두 정확히 일치해야 해요.
<Key>요소만 지정하고<Value>요소를 지정하지 않으면 규칙은 태그 키와 일치하면서 값이 지정되지 않은 객체에만 적용돼요. - 규칙은 규칙에 지정된 모든 태그를 가진 객체 하위 집합에 적용돼요. 객체에 추가 태그가 지정되어 있어도 규칙은 여전히 적용돼요.
참고: 필터에 여러 태그를 지정할 때 각 태그 키는 고유해야 해요.
- 접두사와 하나 이상의 태그를 모두 기반으로 필터 지정하기 – Lifecycle 규칙에서 키 접두사와 하나 이상의 태그를 모두 기반으로 하는 필터를 지정할 수 있어요. 다시 말하지만 이러한 모든 필터 요소를 다음과 같이
<And>요소로 감싸야 해요.
<LifecycleConfiguration>
<Rule>
<Filter>
<And>
<Prefix>key-prefix</Prefix>
<Tag>
<Key>key1</Key>
<Value>value1</Value>
</Tag>
<Tag>
<Key>key2</Key>
<Value>value2</Value>
</Tag>
...
</And>
</Filter>
<Status>Enabled</Status>
transition/expiration actions
</Rule>
</LifecycleConfiguration>
Amazon S3는 논리적 AND로 이 필터를 결합해요. 즉, 규칙은 지정된 키 접두사와 지정된 태그를 가진 객체 하위 집합에 적용돼요. 필터는 접두사 하나와 0개 이상의 태그를 가질 수 있어요.
- 빈 필터 지정하기 – 빈 필터를 지정할 수 있으며, 이 경우 규칙은 버킷의 모든 객체에 적용돼요.
<LifecycleConfiguration>
<Rule>
<Filter>
</Filter>
<Status>Enabled</Status>
transition/expiration actions
</Rule>
</LifecycleConfiguration>
- 객체 크기 필터 지정하기 – 객체 크기로 규칙을 필터링하려면 최소 크기(
ObjectSizeGreaterThan), 최대 크기(ObjectSizeLessThan)를 지정하거나 객체 크기 범위를 지정할 수 있어요. 객체 크기 값은 바이트 단위예요. 최대 필터 크기는 50TB예요. 일부 스토리지 클래스에는 최소 객체 크기 제한이 있어요. 자세한 내용은 "Amazon S3 스토리지 클래스 비교"를 참고하세요.
<LifecycleConfiguration>
<Rule>
<Filter>
<ObjectSizeGreaterThan>500</ObjectSizeGreaterThan>
</Filter>
<Status>Enabled</Status>
transition/expiration actions
</Rule>
</LifecycleConfiguration>
참고:
ObjectSizeGreaterThan과ObjectSizeLessThan필터는 지정된 값을 제외해요. 예를 들어 128KB에서 1024KB 크기의 객체를 S3 Standard 스토리지 클래스에서 S3 Standard-IA 스토리지 클래스로 이동하도록 설정하면 정확히 1024KB와 128KB인 객체는 S3 Standard-IA로 전환되지 않아요. 대신 규칙은 128KB보다 크고 1024KB보다 작은 객체에만 적용돼요.객체 크기 범위를 지정할 때는
ObjectSizeGreaterThan정수가ObjectSizeLessThan값보다 작아야 해요. 필터를 두 개 이상 사용할 때는 필터를<And>요소로 감싸야 해요. 다음 예시는 500바이트에서 64,000바이트 사이의 범위에 있는 객체를 지정하는 방법을 보여줘요.
<LifecycleConfiguration>
<Rule>
<Filter>
<And>
<Prefix>key-prefix</Prefix>
<ObjectSizeGreaterThan>500</ObjectSizeGreaterThan>
<ObjectSizeLessThan>64000</ObjectSizeLessThan>
</And>
</Filter>
<Status>Enabled</Status>
transition/expiration actions
</Rule>
</LifecycleConfiguration>