Storage Lens 그룹 만들기

Storage Lens 그룹 만들기

다음 예시는 Amazon S3 콘솔, AWS Command Line Interface(AWS CLI), AWS SDK for Java를 사용해 Amazon S3 Storage Lens 그룹을 만드는 방법을 보여줘요.

출처: Creating a Storage Lens group

Storage Lens 그룹을 만들려면

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/s3/ 에서 Amazon S3 콘솔을 엽니다.
  2. 탐색 모음에서 현재 표시된 AWS 리전의 이름을 선택합니다. 그다음 전환하려는 리전을 선택합니다.
  3. 왼쪽 탐색 창에서 Storage Lens groups를 선택합니다.
  4. Create Storage Lens group을 선택합니다.
  5. General 아래에서 홈 리전을 확인하고 Storage Lens 그룹 이름을 입력합니다.
  6. Scope 아래에서 Storage Lens 그룹에 적용하려는 필터를 선택합니다. 여러 필터를 적용하려면 필터를 선택한 다음 AND 또는 OR 논리 연산자를 선택합니다.
  • Prefixes 필터를 사용하려면 Prefixes를 선택하고 프리픽스 문자열을 입력합니다. 여러 프리픽스를 추가하려면 Add prefix를 선택합니다. 프리픽스를 제거하려면 제거할 프리픽스 옆의 Remove를 선택합니다.
  • Object tags 필터를 사용하려면 Object tags를 선택하고 객체의 키-값 쌍을 입력합니다. 그런 다음 Add tag를 선택합니다. 태그를 제거하려면 제거할 태그 옆의 Remove를 선택합니다.
  • Suffixes 필터를 사용하려면 Suffixes를 선택하고 서픽스 문자열을 입력합니다. 여러 서픽스를 추가하려면 Add suffix를 선택합니다. 서픽스를 제거하려면 제거할 서픽스 옆의 Remove를 선택합니다.
  • Age 필터를 사용하려면 객체 나이 범위를 일 단위로 지정합니다. Specify minimum object age를 선택하고 최소 객체 나이를 입력합니다. 그런 다음 Specify maximum object age를 선택하고 최대 객체 나이를 입력합니다.
  • Size 필터를 사용하려면 객체 크기 범위와 측정 단위를 지정합니다. Specify minimum object size를 선택하고 최소 객체 크기를 입력합니다. Specify maximum object size를 선택하고 최대 객체 크기를 입력합니다.
  1. (선택 사항) AWS resource tags에서 키-값 쌍을 추가한 다음 Add tag를 선택합니다.
  2. Create Storage Lens group을 선택합니다.

다음 예시 AWS CLI 명령은 Storage Lens 그룹을 만들어요. 이 예시 명령을 사용하려면 입력 자리 표시자(user input placeholders)를 자신의 정보로 바꿔주세요.

aws s3control create-storage-lens-group --account-id 111122223333 \ 
--region us-east-1 --storage-lens-group=file://./marketing-department.json

다음 예시 AWS CLI 명령은 AWS 리소스 태그 두 개가 있는 Storage Lens 그룹을 만들어요. 이 예시 명령을 사용하려면 입력 자리 표시자(user input placeholders)를 자신의 정보로 바꿔주세요.

aws s3control create-storage-lens-group --account-id 111122223333 \ 
--region us-east-1 --storage-lens-group=file://./marketing-department.json \
--tags Key=k1,Value=v1 Key=k2,Value=v2

예시 JSON 구성은 Storage Lens 그룹 구성을 참조해 주세요.

다음 AWS SDK for Java 예시는 Storage Lens 그룹을 만들어요. 이 예시를 사용하려면 입력 자리 표시자(user input placeholders)를 자신의 정보로 바꿔주세요.

예시 - 단일 필터로 Storage Lens 그룹 만들기

다음 예시는 Marketing-Department라는 Storage Lens 그룹을 만들어요. 이 그룹에는 나이 범위를 30일에서 90일로 지정하는 객체 나이 필터가 있어요. 이 예시를 사용하려면 입력 자리 표시자(user input placeholders)를 자신의 정보로 바꿔주세요.

package aws.example.s3control;
 
import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.CreateStorageLensGroupRequest;
import software.amazon.awssdk.services.s3control.model.MatchObjectAge;
import software.amazon.awssdk.services.s3control.model.StorageLensGroup;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupFilter;
 
public class CreateStorageLensGroupWithObjectAge {
    public static void main(String[] args) {
        String storageLensGroupName = "Marketing-Department";
        String accountId = "111122223333";
        
        try {
            StorageLensGroupFilter objectAgeFilter = StorageLensGroupFilter.builder()
                    .matchObjectAge(MatchObjectAge.builder()
                            .daysGreaterThan(30)
                            .daysLessThan(90)
                            .build())
                    .build();

            StorageLensGroup storageLensGroup = StorageLensGroup.builder()
                    .name(storageLensGroupName)
                    .filter(objectAgeFilter)
                    .build();

            CreateStorageLensGroupRequest createStorageLensGroupRequest = CreateStorageLensGroupRequest.builder()
                    .storageLensGroup(storageLensGroup)
                    .accountId(accountId).build();

            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.createStorageLensGroup(createStorageLensGroupRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}

예시 - 여러 필터를 포함하는 AND 연산자로 Storage Lens 그룹 만들기

다음 예시는 Marketing-Department라는 Storage Lens 그룹을 만들어요. 이 그룹은 객체가 필터 조건 모두와 일치해야 함을 나타내는 AND 연산자를 사용해요. 이 예시를 사용하려면 입력 자리 표시자(user input placeholders)를 자신의 정보로 바꿔주세요.

package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.CreateStorageLensGroupRequest;
import software.amazon.awssdk.services.s3control.model.MatchObjectAge;
import software.amazon.awssdk.services.s3control.model.MatchObjectSize;
import software.amazon.awssdk.services.s3control.model.S3Tag;
import software.amazon.awssdk.services.s3control.model.StorageLensGroup;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupAndOperator;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupFilter;


public class CreateStorageLensGroupWithAndFilter {
    public static void main(String[] args) {
        String storageLensGroupName = "Marketing-Department";
        String accountId = "111122223333";

        try {
            // Create object tags.
            S3Tag tag1 = S3Tag.builder()
                    .key("object-tag-key-1")
                    .value("object-tag-value-1")
                    .build();
            S3Tag tag2 = S3Tag.builder()
                    .key("object-tag-key-2")
                    .value("object-tag-value-2")
                    .build();

            StorageLensGroupAndOperator andOperator = StorageLensGroupAndOperator.builder()
                    .matchAnyPrefix("prefix-1", "prefix-2", "prefix-3/sub-prefix-1")
                    .matchAnySuffix(".png", ".gif", ".jpg")
                    .matchAnyTag(tag1, tag2)
                    .matchObjectAge(MatchObjectAge.builder()
                            .daysGreaterThan(30)
                            .daysLessThan(90).build())
                    .matchObjectSize(MatchObjectSize.builder()
                            .bytesGreaterThan(1000L)
                            .bytesLessThan(6000L).build())
                    .build();

            StorageLensGroupFilter andFilter = StorageLensGroupFilter.builder()
                    .and(andOperator)
                    .build();

            StorageLensGroup storageLensGroup = StorageLensGroup.builder()
                    .name(storageLensGroupName)
                    .filter(andFilter)
                    .build();

            CreateStorageLensGroupRequest createStorageLensGroupRequest = CreateStorageLensGroupRequest.builder()
                    .storageLensGroup(storageLensGroup)
                    .accountId(accountId).build();

            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.createStorageLensGroup(createStorageLensGroupRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}

예시 - 여러 필터를 포함하는 OR 연산자로 Storage Lens 그룹 만들기

다음 예시는 Marketing-Department라는 Storage Lens 그룹을 만들어요. 이 그룹은 OR 연산자를 사용해 프리픽스 필터(prefix-1, prefix-2, prefix3/sub-prefix-1) 또는 1000바이트와 6000바이트 사이 크기 범위의 객체 크기 필터를 적용해요. 이 예시를 사용하려면 입력 자리 표시자(user input placeholders)를 자신의 정보로 바꿔주세요.

package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.CreateStorageLensGroupRequest;
import software.amazon.awssdk.services.s3control.model.MatchObjectSize;
import software.amazon.awssdk.services.s3control.model.StorageLensGroup;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupFilter;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupOrOperator;

public class CreateStorageLensGroupWithOrFilter {
    public static void main(String[] args) {
        String storageLensGroupName = "Marketing-Department";
        String accountId = "111122223333";

        try {
            StorageLensGroupOrOperator orOperator = StorageLensGroupOrOperator.builder()
                    .matchAnyPrefix("prefix-1", "prefix-2", "prefix-3/sub-prefix-1")
                    .matchObjectSize(MatchObjectSize.builder()
                            .bytesGreaterThan(1000L)
                            .bytesLessThan(6000L)
                            .build())
                    .build();

            StorageLensGroupFilter orFilter = StorageLensGroupFilter.builder()
                    .or(orOperator)
                    .build();

            StorageLensGroup storageLensGroup = StorageLensGroup.builder()
                    .name(storageLensGroupName)
                    .filter(orFilter)
                    .build();

            CreateStorageLensGroupRequest createStorageLensGroupRequest = CreateStorageLensGroupRequest.builder()
                    .storageLensGroup(storageLensGroup)
                    .accountId(accountId).build();

            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.createStorageLensGroup(createStorageLensGroupRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}

예시 - 단일 필터와 AWS 리소스 태그 두 개로 Storage Lens 그룹 만들기

다음 예시는 서픽스 필터가 있는 Marketing-Department라는 Storage Lens 그룹을 만들어요. 이 예시는 Storage Lens 그룹에 AWS 리소스 태그 두 개도 추가해요. 이 예시를 사용하려면 입력 자리 표시자(user input placeholders)를 자신의 정보로 바꿔주세요.

package aws.example.s3control;

import com.amazonaws.AmazonServiceException;
import com.amazonaws.SdkClientException;
import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3control.S3ControlClient;
import software.amazon.awssdk.services.s3control.model.CreateStorageLensGroupRequest;
import software.amazon.awssdk.services.s3control.model.StorageLensGroup;
import software.amazon.awssdk.services.s3control.model.StorageLensGroupFilter;
import software.amazon.awssdk.services.s3control.model.Tag;

public class CreateStorageLensGroupWithResourceTags {
    public static void main(String[] args) {
        String storageLensGroupName = "Marketing-Department";
        String accountId = "111122223333";

        try {
            // Create AWS resource tags.
            Tag resourceTag1 = Tag.builder()
                    .key("resource-tag-key-1")
                    .value("resource-tag-value-1")
                    .build();
            Tag resourceTag2 = Tag.builder()
                    .key("resource-tag-key-2")
                    .value("resource-tag-value-2")
                    .build();

            StorageLensGroupFilter suffixFilter = StorageLensGroupFilter.builder()
                    .matchAnySuffix(".png", ".gif", ".jpg")
                    .build();

            StorageLensGroup storageLensGroup = StorageLensGroup.builder()
                    .name(storageLensGroupName)
                    .filter(suffixFilter)
                    .build();

            CreateStorageLensGroupRequest createStorageLensGroupRequest = CreateStorageLensGroupRequest.builder()
                    .storageLensGroup(storageLensGroup)
                    .tags(resourceTag1, resourceTag2)
                    .accountId(accountId).build();

            S3ControlClient s3ControlClient = S3ControlClient.builder()
                    .region(Region.US_WEST_2)
                    .credentialsProvider(ProfileCredentialsProvider.create())
                    .build();
            s3ControlClient.createStorageLensGroup(createStorageLensGroupRequest);
        } catch (AmazonServiceException e) {
            // The call was transmitted successfully, but Amazon S3 couldn't process
            // it and returned an error response.
            e.printStackTrace();
        } catch (SdkClientException e) {
            // Amazon S3 couldn't be contacted for a response, or the client
            // couldn't parse the response from Amazon S3.
            e.printStackTrace();
        }
    }
}

예시 JSON 구성은 Storage Lens 그룹 구성을 참조해 주세요.

더 알아보기

  • Storage Lens 그룹 구성 자세히 알아보기
  • Storage Lens 그룹 업데이트하기