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_endpoint
를 true
로 설정하여 s3
및 s3api
AWS CLI 명령의 모든 Amazon S3 요청을 지정된 리전의 듀얼 스택 엔드포인트로 보냅니다. --region
옵션을 사용하여 구성 파일 또는 명령에 리전을 지정합니다.
AWS CLI에서 듀얼 스택 엔드포인트를 사용하는 경우, path
주소 형식만 지원됩니다. 구성 파일에 설정된 주소 스타일은 버킷 이름이 호스트 이름에 있는지 URL에 있는지 제어합니다. 자세한 내용은 AWS CLI 사용 설명서의 s3outposts를 참조하십시오.
AWS CLI를 통해 듀얼 스택 엔드포인트를 사용하려면 s3control
또는 s3outposts
명령에 http://s3.dualstack.
또는 region
.amazonaws.com.rproxy.govskope.cahttps://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 클라이언트 생성 시 S3ControlClient
및 S3OutpostsClient
클래스를 사용하여 듀얼 스택 엔드포인트를 활성화하는 방법을 보여줍니다. 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