S3 on Outposts 듀얼 스택 엔드포인트 사용 - Outposts에서의 Amazon S3

S3 on Outposts 듀얼 스택 엔드포인트 사용

S3 on Outposts 듀얼 스택 엔드포인트는 IPv6 및 IPv4를 통한 S3 on Outposts 버킷 요청을 지원합니다. 이 섹션에서는 S3 on Outposts 듀얼 스택 엔드포인트를 사용하는 방법을 설명합니다.

S3 on Outposts 듀얼 스택 엔드포인트

듀얼 스택 엔드포인트에 요청하는 경우, S3 on Outposts 버킷 URL이 IPv6 또는 IPv4 주소로 확인됩니다. IPv6를 통해 S3 on Outposts 버킷에 액세스하는 방법의 자세한 내용은 IPv6를 통해 S3 on Outposts에 요청 섹션을 참조하세요.

듀얼 스택 엔드포인트를 통해 S3 on Outposts 버킷에 액세스하려면 경로 방식 엔드포인트 이름을 사용합니다. S3 on Outposts는 리전 듀얼 스택 엔드포인트 이름만 지원합니다. 이는 이름의 일부로 리전을 지정해야 함을 뜻합니다.

FIPS 듀얼 스택 엔드포인트에는 라는 명명 규칙이 사용됩니다.

s3-outposts-fips.region.api.aws

FIPS 듀얼 스택 엔드포인트에는 라는 명명 규칙이 사용됩니다.

s3-outposts.region.api.aws
참고

가상 호스팅 스타일 엔드포인트 이름은 S3 on Outposts에서 지원되지 않습니다.

AWS CLI의 듀얼 스택 엔드포인트 사용

이 단원에서는 듀얼 스택 엔드포인트에 요청하는 데 사용되는 AWS CLI 명령의 예를 보여 줍니다. AWS CLI를 설치하는 지침은 AWS CLI 및 Java용 SDK를 사용하여 시작하기 단원을 참조하십시오.

AWS Config 파일의 프로파일에서 구성 값 use_dualstack_endpointtrue로 설정하여 s3s3api AWS CLI 명령의 모든 Amazon S3 요청을 지정된 리전의 듀얼 스택 엔드포인트로 보냅니다. --region 옵션을 사용하여 구성 파일 또는 명령에 리전을 지정합니다.

AWS CLI에서 듀얼 스택 엔드포인트를 사용하는 경우, path 주소 형식만 지원됩니다. 구성 파일에 설정된 주소 스타일은 버킷 이름이 호스트 이름에 있는지 URL에 있는지 제어합니다. 자세한 내용은 AWS CLI 사용 설명서s3outposts를 참조하십시오.

AWS CLI를 통해 듀얼 스택 엔드포인트를 사용하려면 s3control 또는 s3outposts 명령에 http://s3.dualstack.region.amazonaws.com 또는 https://s3-outposts-fips.region.api.aws 엔드포인트와 함께 --endpoint-url 파라미터를 사용합니다.

예:

$ aws s3control list-regional-buckets --endpoint-url https://s3-outposts.region.api.aws

AWS SDK의 S3 on Outposts 듀얼 스택 엔드포인트 사용

이 섹션에서는 AWS SDK를 사용하여 듀얼 스택 엔드포인트에 액세스하는 방법의 예제를 보여줍니다.

AWS SDK for Java 2.x 듀얼 스택 엔드포인트 예제

다음 예제에서는 AWS SDK for Java 2.x로 S3 on Outposts 클라이언트 생성 시 S3ControlClientS3OutpostsClient 클래스를 사용하여 듀얼 스택 엔드포인트를 활성화하는 방법을 보여줍니다. Amazon S3용 실제 Java 예제를 작성 및 테스트하는 방법에 대한 자세한 내용은 AWS CLI 및 Java용 SDK를 사용하여 시작하기 섹션을 참조하세요.

예 - 듀얼 스택 엔드포인트가 활성화된 S3ControlClient 클래스 생성
import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3control.S3ControlClient; import software.amazon.awssdk.services.s3control.model.ListRegionalBucketsRequest; import software.amazon.awssdk.services.s3control.model.ListRegionalBucketsResponse; import software.amazon.awssdk.services.s3control.model.S3ControlException; public class DualStackEndpointsExample1 { public static void main(String[] args) { Region clientRegion = Region.of("us-east-1"); String accountId = "111122223333"; String navyId = "9876543210"; try { // Create an S3ControlClient with dual-stack endpoints enabled. S3ControlClient s3ControlClient = S3ControlClient.builder() .region(clientRegion) .dualstackEnabled(true) .build(); ListRegionalBucketsRequest listRegionalBucketsRequest = ListRegionalBucketsRequest.builder() .accountId(accountId) .outpostId(navyId) .build(); ListRegionalBucketsResponse listBuckets = s3ControlClient.listRegionalBuckets(listRegionalBucketsRequest); System.out.printf("ListRegionalBuckets Response: %s%n", listBuckets.toString()); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 on Outposts couldn't process // it, so it returned an error response. e.printStackTrace(); } catch (S3ControlException e) { // Unknown exceptions will be thrown as an instance of this type. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 on Outposts couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3 on Outposts. e.printStackTrace(); } } }
예 - 듀얼 스택 엔드포인트가 활성화된 S3OutpostsClient 생성
import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.s3outposts.S3OutpostsClient; import software.amazon.awssdk.services.s3outposts.model.ListEndpointsRequest; import software.amazon.awssdk.services.s3outposts.model.ListEndpointsResponse; import software.amazon.awssdk.services.s3outposts.model.S3OutpostsException; public class DualStackEndpointsExample2 { public static void main(String[] args) { Region clientRegion = Region.of("us-east-1"); try { // Create an S3OutpostsClient with dual-stack endpoints enabled. S3OutpostsClient s3OutpostsClient = S3OutpostsClient.builder() .region(clientRegion) .dualstackEnabled(true) .build(); ListEndpointsRequest listEndpointsRequest = ListEndpointsRequest.builder().build(); ListEndpointsResponse listEndpoints = s3OutpostsClient.listEndpoints(listEndpointsRequest); System.out.printf("ListEndpoints Response: %s%n", listEndpoints.toString()); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 on Outposts couldn't process // it, so it returned an error response. e.printStackTrace(); } catch (S3OutpostsException e) { // Unknown exceptions will be thrown as an instance of this type. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 on Outposts couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3 on Outposts. e.printStackTrace(); } } }

Windows에서 AWS SDK for Java 2.x를 사용하는 경우, 다음과 같은 Java 가상 머신(JVM) 속성을 설정해야 할 수 있습니다.

java.net.preferIPv6Addresses=true