

# AWS CLI 및 Java용 SDK를 사용하여 수명 주기 구성 생성 및 관리
<a name="S3OutpostsLifecycleCLIJava"></a>

S3 수명 주기를 사용하여 Amazon S3 on Outposts의 스토리지 용량을 최적화할 수 있습니다. 객체가 오래되거나 더 최신 버전으로 교체되면 객체를 만료시키도록 수명 주기 규칙을 만들 수 있습니다. 수명 주기 규칙을 생성, 사용, 사용 중지 또는 삭제할 수 있습니다.

S3 수명 주기에 대한 자세한 내용은 [Amazon S3 on Outposts 버킷에 대한 수명 주기 구성 생성 및 관리](S3OutpostsLifecycleManaging.md) 섹션을 참조하세요.

**참고**  
버킷은 버킷을 생성하는 AWS 계정이 소유하며 이 계정은 수명 주기 규칙을 생성, 사용, 사용 중지 또는 삭제할 수 있는 유일한 계정입니다.

AWS Command Line Interface(AWS CLI) 및 AWS SDK for Java를 사용하여 S3 on Outposts 버킷에 대한 수명 주기 구성을 생성 및 관리하려면 다음 예제를 참조하세요.

**Topics**
+ [수명 주기 구성 적용](#S3OutpostsPutBucketLifecycleConfiguration)
+ [S3 on Outposts 버킷에 대한 수명 주기 구성 가져오기](#S3OutpostsGetBucketLifecycleConfiguration)

## 수명 주기 구성 적용
<a name="S3OutpostsPutBucketLifecycleConfiguration"></a>

------
#### [ AWS CLI ]

다음 AWS CLI 예제에서는 수명 주기 구성 정책을 Outpost 버킷에 적용합니다. 이 정책은 플래그가 지정된 접두사(`{{myprefix}}`)와 10일 후에 만료되는 태그가 포함된 모든 객체를 지정합니다. 이 예제를 사용하려면 각 `{{user input placeholder}}`를 사용자의 정보로 대체합니다.

1. 수명 주기 구성 정책을 JSON 파일로 저장합니다. 이 예시에서 파일의 이름은 `lifecycle1.json`으로 지정됩니다.

   ```
   {
       "Rules": [
           {
               "ID": "{{id-1}}",
               "Filter": {
                   "And": {
                       "Prefix": "{{myprefix}}", 
                       "Tags": [
                           {
                               "Value": "{{mytagvalue1}}", 
                               "Key": "{{mytagkey1}}"
                           }, 
                           {
                               "Value": "{{mytagvalue2}}", 
                               "Key": "{{mytagkey2}}"
                           }
                       ],
                       "ObjectSizeGreaterThan": {{1000}},
                       "ObjectSizeLessThan": {{5000}}
                   }
               }, 
               "Status": "{{Enabled}}", 
               "Expiration": {
                   "Days": {{10}}
               }
           }
       ]
   }
   ```

1. `put-bucket-lifecycle-configuration` CLI 명령의 일부로 JSON 파일을 제출합니다. 이 명령을 사용하려면 각 `{{user input placeholder}}`를 사용자의 정보로 대체합니다. 이 명령에 대한 자세한 내용은 *AWS CLI 참조*의 [put-bucket-lifecycle-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/put-bucket-lifecycle-configuration.html)을 참조하세요.

   ```
   aws s3control put-bucket-lifecycle-configuration --account-id {{123456789012}} --bucket arn:aws:s3-outposts:{{region}}:{{123456789012}}:outpost/{{op-01ac5d28a6a232904}}/bucket/{{example-outposts-bucket}} --lifecycle-configuration file://{{lifecycle1.json}}
   ```

------
#### [ SDK for Java ]

다음 SDK for Java 예제에서는 수명 주기 구성을 Outpost 버킷에 적용합니다. 이 수명 주기 구성은 플래그가 지정된 접두사(`{{myprefix}}`)와 10일 후에 만료되는 태그가 포함된 모든 객체를 지정합니다. 이 예제를 사용하려면 각 `{{user input placeholder}}`를 사용자의 정보로 대체합니다. 자세한 내용은 *Amazon Simple Storage Service API 참조*의 [PutBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_PutBucketLifecycleConfiguration.html)을 참조하세요.

```
import com.amazonaws.services.s3control.model.*;

public void putBucketLifecycleConfiguration(String bucketArn) {

    S3Tag tag1 = new S3Tag().withKey({{"mytagkey1"}}).withValue({{"mytagkey1"}});
    S3Tag tag2 = new S3Tag().withKey({{"mytagkey2"}}).withValue({{"mytagkey2"}});

    LifecycleRuleFilter lifecycleRuleFilter = new LifecycleRuleFilter()
            .withAnd(new LifecycleRuleAndOperator()
                    .withPrefix({{"myprefix"}})
                    .withTags(tag1, tag2))
                    .withObjectSizeGreaterThan({{1000}})
                    .withObjectSizeLessThan({{5000}});

    LifecycleExpiration lifecycleExpiration = new LifecycleExpiration()
            .withExpiredObjectDeleteMarker({{false}})
            .withDays({{10}});

    LifecycleRule lifecycleRule = new LifecycleRule()
            .withStatus({{"Enabled"}})
            .withFilter(lifecycleRuleFilter)
            .withExpiration(lifecycleExpiration)
            .withID({{"id-1"}});

    LifecycleConfiguration lifecycleConfiguration = new LifecycleConfiguration()
            .withRules(lifecycleRule);

    PutBucketLifecycleConfigurationRequest reqPutBucketLifecycle = new PutBucketLifecycleConfigurationRequest()
            .withAccountId(AccountId)
            .withBucket(bucketArn)
            .withLifecycleConfiguration(lifecycleConfiguration);

    PutBucketLifecycleConfigurationResult respPutBucketLifecycle = s3ControlClient.putBucketLifecycleConfiguration(reqPutBucketLifecycle);
    System.out.printf("PutBucketLifecycleConfiguration Response: %s%n", respPutBucketLifecycle.toString());

}
```

------

## S3 on Outposts 버킷에 대한 수명 주기 구성 가져오기
<a name="S3OutpostsGetBucketLifecycleConfiguration"></a>

------
#### [ AWS CLI ]

다음 AWS CLI 예제에서는 수명 주기 구성 정책을 Outpost 버킷에 가져옵니다. 이 명령을 사용하려면 각 `{{user input placeholder}}`를 사용자의 정보로 대체합니다. 이 명령에 대한 자세한 내용은 *Amazon Simple Storage Service API 참조*의 [get-bucket-lifecycle-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3control/get-bucket-lifecycle-configuration.html)을 참조하세요.

```
aws s3control get-bucket-lifecycle-configuration --account-id {{123456789012}} --bucket arn:aws:s3-outposts:{{<your-region>}}:{{123456789012}}:outpost/{{op-01ac5d28a6a232904}}/bucket/{{example-outposts-bucket}}
```

------
#### [ SDK for Java ]

다음 SDK for Java 예제에서는 수명 주기 구성을 Outpost 버킷에 가져옵니다. 자세한 내용은 *Amazon Simple Storage Service API 참조*에서 [GetBucketLifecycleConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_control_GetBucketLifecycleConfiguration.html)을 참조하세요.

```
import com.amazonaws.services.s3control.model.*;

public void getBucketLifecycleConfiguration(String bucketArn) {

    GetBucketLifecycleConfigurationRequest reqGetBucketLifecycle = new GetBucketLifecycleConfigurationRequest()
            .withAccountId(AccountId)
            .withBucket(bucketArn);

    GetBucketLifecycleConfigurationResult respGetBucketLifecycle = s3ControlClient.getBucketLifecycleConfiguration(reqGetBucketLifecycle);
    System.out.printf("GetBucketLifecycleConfiguration Response: %s%n", respGetBucketLifecycle.toString());

}
```

------