AWS CLI 및 Java용 SDK를 사용하여 시작하기 - Outposts에서의 Amazon S3

AWS CLI 및 Java용 SDK를 사용하여 시작하기

Amazon S3 on Outposts를 사용하면 AWS Outposts에서 S3 버킷을 생성하고 로컬 데이터 액세스, 로컬 데이터 처리 및 데이터 레지던시가 필요한 애플리케이션을 위해 온프레미스에서 객체를 쉽게 저장하고 검색할 수 있습니다. S3 on Outposts는 S3 Outposts(OUTPOSTS)라는 새로운 스토리지 클래스를 제공합니다. 이 클래스는 Amazon S3 API를 사용하며 AWS Outposts의 여러 디바이스와 서버에 데이터를 이중화된 방식으로 안정적으로 저장하도록 설계되었습니다. Virtual Private Cloud(VPC)를 통한 액세스 포인트 및 엔드포인트 연결을 사용하여 Outpost 버킷과 통신합니다. 액세스 정책, 암호화, 태깅을 포함하여 Amazon S3 버킷에서와 같이 Outpost 버킷에서 동일한 API 및 기능을 사용할 수 있습니다. AWS Management Console, AWS Command Line Interface(AWS CLI), AWS SDK 또는 REST API를 통해 S3 on Outposts를 사용할 수 있습니다. 자세한 내용은 Amazon S3 on Outposts란 무엇인가요? 섹션을 참조하세요.

S3 on Outposts를 시작하려면 버킷, 액세스 포인트 및 엔드포인트를 생성해야 합니다. 그러면 객체를 버킷에 업로드할 수 있습니다. 다음 예제에서는 AWS CLI 및 Java용 SDK를 사용하여 S3 on Outposts를 시작하는 방법을 보여줍니다. 콘솔을 사용하여 시작하려면 AWS Management Console를 사용하여 시작하기 섹션을 참조하세요.

1단계: 버킷 만들기

다음 AWS CLI 및 Java용 SDK 예제에서는 S3 on Outposts 버킷 생성 방법을 보여줍니다.

AWS CLI

다음 예제에서는 AWS CLI를 사용하여 S3 on Outposts 버킷(s3-outposts:CreateBucket)을 생성합니다. 이 명령을 실행하려면 user input placeholders를 사용자의 정보로 대체합니다.

aws s3control create-bucket --bucket example-outposts-bucket --outpost-id op-01ac5d28a6a232904
SDK for Java

다음 예제에서는 SDK for Java를 사용하여 S3 on Outposts 버킷(s3-outposts:CreateBucket)을 생성합니다.

import com.amazonaws.services.s3control.model.*; public String createBucket(String bucketName) { CreateBucketRequest reqCreateBucket = new CreateBucketRequest() .withBucket(bucketName) .withOutpostId(OutpostId) .withCreateBucketConfiguration(new CreateBucketConfiguration()); CreateBucketResult respCreateBucket = s3ControlClient.createBucket(reqCreateBucket); System.out.printf("CreateBucket Response: %s%n", respCreateBucket.toString()); return respCreateBucket.getBucketArn(); }

2단계: 액세스 포인트 생성

Amazon S3 on Outposts 버킷에 액세스하려면 액세스 포인트를 생성하고 구성해야 합니다. 다음 예제는 AWS CLI 및 Java용 SDK를 사용하여 액세스 포인트를 생성하는 방법을 보여줍니다.

액세스 포인트는 Amazon S3의 공유 데이터 세트에 대한 대규모 데이터 액세스 관리를 간소화합니다. 액세스 포인트는 GetObjectPutObject 같은 Amazon S3 객체 작업을 수행하는 데 사용할 수 있는 버킷에 연결된 네트워크 엔드포인트입니다. S3 on Outposts를 통해 Outposts 버킷의 객체에 액세스하려면 액세스 포인트를 사용해야 합니다. 액세스 포인트는 가상 호스트 스타일의 주소 지정만 지원합니다.

AWS CLI

다음 AWS CLI 예제에서는 Outposts 버킷에 대한 액세스 포인트를 생성합니다. 이 명령을 실행하려면 user input placeholders를 사용자의 정보로 대체합니다.

aws s3control create-access-point --account-id 123456789012 --name example-outposts-access-point --bucket "arn:aws:s3-outposts:region:123456789012:outpost/op-01ac5d28a6a232904/bucket/example-outposts-bucket" --vpc-configuration VpcId=example-vpc-12345
SDK for Java

다음 SDK for Java 예제에서는 Outposts 버킷에 대한 액세스 포인트를 생성합니다. 이 예제를 사용하려면 user input placeholders를 사용자의 정보로 대체합니다.

import com.amazonaws.services.s3control.model.*; public String createAccessPoint(String bucketArn, String accessPointName) { CreateAccessPointRequest reqCreateAP = new CreateAccessPointRequest() .withAccountId(AccountId) .withBucket(bucketArn) .withName(accessPointName) .withVpcConfiguration(new VpcConfiguration().withVpcId("vpc-12345")); CreateAccessPointResult respCreateAP = s3ControlClient.createAccessPoint(reqCreateAP); System.out.printf("CreateAccessPoint Response: %s%n", respCreateAP.toString()); return respCreateAP.getAccessPointArn(); }

3단계: 엔드포인트 생성

요청을 Amazon S3 on Outposts 액세스 포인트로 라우팅하려면 S3 on Outposts 엔드포인트를 생성하고 구성해야 합니다. 엔드포인트를 생성하려면 Outposts 홈 리전에 대한 서비스 링크와의 활성 연결이 필요합니다. Outpost에 있는 각 Virtual Private Cloud(VPC)에는 연결된 엔드포인트가 하나씩 있을 수 있습니다. 엔드포인트 할당량에 대한 자세한 내용은 S3 on Outposts 네트워크 요구 사항 단원을 참조하세요. Outposts 버킷에 액세스하고 객체 작업을 수행하려면 엔드포인트를 생성해야 합니다. 자세한 내용은 엔드포인트 단원을 참조하십시오.

다음 예제는 AWS CLI 및 Java용 SDK를 사용하여 앤드포인트를 생성하는 방법을 보여줍니다. 엔드포인트 생성 및 관리에 필요한 권한에 대한 자세한 내용은 S3 on Outposts 엔드포인트에 대한 권한 섹션을 참조하세요.

AWS CLI

다음 AWS CLI 예제에서는 VPC 리소스 액세스 유형을 사용하여 Outposts의 엔드포인트를 생성합니다. VPC는 서브넷에서 파생되었습니다. 이 명령을 실행하려면 user input placeholders를 사용자의 정보로 대체합니다.

aws s3outposts create-endpoint --outpost-id op-01ac5d28a6a232904 --subnet-id subnet-8c7a57c5 --security-group-id sg-ab19e0d1

다음 AWS CLI 예제에서는 고객 소유 IP 주소 풀(CoIP 풀) 액세스 유형을 사용하여 Outpost에 대한 엔드포인트를 생성합니다. 이 명령을 실행하려면 user input placeholders를 사용자의 정보로 대체합니다.

aws s3outposts create-endpoint --outpost-id op-01ac5d28a6a232904 --subnet-id subnet-8c7a57c5 --security-group-id sg-ab19e0d1 --access-type CustomerOwnedIp --customer-owned-ipv4-pool ipv4pool-coip-12345678901234567
SDK for Java

다음 SDK for Java 예제에서는 Outpost에 대한 엔드포인트를 생성합니다. 이 예제를 사용하려면 user input placeholders를 사용자의 정보로 대체합니다.

import com.amazonaws.services.s3outposts.AmazonS3Outposts; import com.amazonaws.services.s3outposts.AmazonS3OutpostsClientBuilder; import com.amazonaws.services.s3outposts.model.CreateEndpointRequest; import com.amazonaws.services.s3outposts.model.CreateEndpointResult; public void createEndpoint() { AmazonS3Outposts s3OutpostsClient = AmazonS3OutpostsClientBuilder .standard().build(); CreateEndpointRequest createEndpointRequest = new CreateEndpointRequest() .withOutpostId("op-0d79779cef3c30a40") .withSubnetId("subnet-8c7a57c5") .withSecurityGroupId("sg-ab19e0d1") .withAccessType("CustomerOwnedIp") .withCustomerOwnedIpv4Pool("ipv4pool-coip-12345678901234567"); // Use .withAccessType and .withCustomerOwnedIpv4Pool only when the access type is // customer-owned IP address pool (CoIP pool) CreateEndpointResult createEndpointResult = s3OutpostsClient.createEndpoint(createEndpointRequest); System.out.println("Endpoint is created and its ARN is " + createEndpointResult.getEndpointArn()); }

4단계: S3 on Outposts 버킷에 객체 업로드

객체를 업로드하려면 S3 on Outposts 버킷에 객체 업로드 단원을 참조하세요.