

# 수명 주기 규칙에 필터 추가
<a name="intro-lifecycle-filters"></a>

필터는 규칙이 적용되는 객체를 지정하는 데 사용할 수 있는 선택적 수명 주기 규칙 요소입니다.

다음 요소를 사용하여 객체를 필터링할 수 있습니다.

**키 접두사**  
접두사를 기준으로 객체를 필터링할 수 있습니다. 다른 접두사를 사용하여 객체의 하위 집합에 수명 주기 작업을 적용하려면 각 작업에 대한 별도의 규칙을 생성합니다.

**객체 태그**  
하나 이상의 태그를 기준으로 객체를 필터링할 수 있습니다. 각 태그는 키와 값이 모두 정확히 일치해야 하며, 복수의 태그를 지정할 경우 각각의 태그 키가 고유해야 합니다. 객체 태그가 여러 개 있는 필터는 지정된 모든 태그가 있는 객체의 하위 집합에 적용됩니다. 객체에 추가 태그가 지정되어 있더라도 필터는 계속 적용됩니다.  
`Key` 요소만 지정하고 `Value` 요소는 지정하지 않는 경우, 규칙은 태그 키와 일치하고 값이 지정되지 않은 객체에만 적용됩니다.

**최소 또는 최대 객체 크기**  
크기를 기준으로 객체를 필터링할 수 있습니다. 최소 크기(`ObjectSizeGreaterThan`) 또는 최대 크기(`ObjectSizeLessThan`)를 지정하거나 동일한 필터에서 객체 크기 범위를 지정할 수 있습니다. 객체 크기 값은 바이트 단위입니다. 최대 필터 크기는 50TB입니다. Amazon S3는 기본 최소 객체 크기를 수명 주기 구성에 적용합니다. 자세한 내용은 [예제: 128KB 미만의 객체 전환 허용](lifecycle-configuration-examples.md#lc-small-objects) 섹션을 참조하세요.

서로 다른 필터 요소를 결합할 수 있으며, 이 경우 Amazon S3는 논리적 `AND`를 사용합니다.

## 필터링 예제
<a name="filter-examples"></a>

다음은 서로 다른 필터 요소를 사용할 수 있는 방법을 보여주는 예제입니다.
+ **키 접두사를 사용하여 필터 지정** – 이 예시는 키 이름 접두사(`logs/`)에 기반하여 객체의 하위 집합에 적용되는 S3 수명 주기 규칙을 보여 줍니다. 예를 들어, 이 수명 주기 규칙은 객체 `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/
  ```
규칙에 세 접두사를 모두 포함하려면 수명 주기 규칙에서 `sales`를 접두사로 지정합니다.

  다른 키 이름 접두사에 기반하여 객체의 하위 집합에 수명 주기 작업을 적용하려면 별도의 규칙을 지정하십시오. 각각의 규칙에서 접두사 기반 필터를 지정하십시오. 예를 들어, 키 접두사 `projectA/`와 `projectB/`를 가진 객체의 수명 주기 작업을 설명하려면 아래와 같이 두 가지 규칙을 지정합니다.

  ```
  <LifecycleConfiguration>
      <Rule>
          <Filter>
             <Prefix>projectA/</Prefix>
          </Filter>
          transition/expiration actions
           ...
      </Rule>
  
      <Rule>
          <Filter>
             <Prefix>projectB/</Prefix>
          </Filter>
          transition/expiration actions
           ...
      </Rule>
  </LifecycleConfiguration>
  ```

  객체 키에 대한 자세한 내용은 [Amazon S3 객체 이름 지정](object-keys.md) 섹션을 참조하십시오.
+ **객체 태그에 기반한 필터 지정** - 다음 예시에서 수명 주기 규칙은 태그(`key`)와 값(`value`)에 기반하여 필터를 지정합니다. 그러면 규칙은 특정 태그를 가진 객체의 하위 집합에만 적용됩니다.

  ```
  <LifecycleConfiguration>
      <Rule>
          <Filter>
             <Tag>
                <Key>key</Key>
                <Value>value</Value>
             </Tag>
          </Filter>
          transition/expiration actions
          ...
      </Rule>
  </LifecycleConfiguration>
  ```

  여러 개의 태그를 기반으로 필터를 지정할 수 있습니다. 다음 예시와 같이 `<And>` 요소로 태그를 묶어야 합니다. 규칙은 2개의 태그(특정 태그 키와 값)를 가진 객체에서 수명 주기 작업을 수행하도록 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>
  ```

  수명 주기 규칙은 태그 2개가 모두 지정된 객체에 적용됩니다. Amazon S3가 논리적 `AND`를 수행합니다. 다음 사항에 유의하세요.
  + 각 태그는 키 및 값 **모두와 정확히 일치해야 합니다. `<Key>` 요소만 지정하고 `<Value>` 요소는 지정하지 않는 경우, 규칙은 태그 키와 일치하고 값이 지정되지 **않은 객체에만 적용됩니다.
  + 이 규칙은 규칙에 모든 태그가 지정되는 객체의 하위 집합에 적용됩니다. 객체에 추가 태그가 지정되어 있더라도 규칙은 계속 적용됩니다.
**참고**  
필터에서 복수의 태그를 지정할 경우, 각각의 태그 키가 고유해야 합니다.
+ **접두사와 하나 이상의 태그에 기반한 필터 지정** - 수명 주기 규칙에서 키 접두사 및 하나 이상의 태그에 기반하여 필터를 지정할 수 있습니다. 이 경우에도 아래와 같이 이 모든 필터 요소를 `<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`를 사용하여 이러한 필터를 조합합니다. 즉, 규칙은 특정 키 접두사와 특정 태그를 가진 객체의 하위 집합에 적용됩니다. 필터는 단 1개의 접두사와 0개 이상의 태그를 가질 수 있습니다.
+ **빈 필터 지정** – 빈 필터를 지정할 수도 있는데, 이 경우에 규칙은 버킷 내 모든 객체에 적용됩니다.

  ```
  <LifecycleConfiguration>
      <Rule>
          <Filter>
          </Filter>
          <Status>Enabled</Status>
          transition/expiration actions
      </Rule>
  </LifecycleConfiguration>
  ```
+ **>객체 크기 필터 지정** - 객체 크기별로 규칙을 필터링하려면 최소 크기(`ObjectSizeGreaterThan`) 또는 최대 크기(`ObjectSizeLessThan`)를 지정하거나 객체 크기 범위를 지정하면 됩니다.

  객체 크기 값은 바이트 단위입니다. 최대 필터 크기는 50TB입니다. 일부 스토리지 클래스에는 최소 객체 크기 제한이 있습니다. 자세한 내용은 [Amazon S3 스토리지 클래스 비교](storage-class-intro.md#sc-compare) 섹션을 참조하세요.

  ```
  <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\$164,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>
  ```