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>

더 알아보기 (Learn more)