メニュー
Amazon Simple Storage Service
開発者ガイド (API Version 2006-03-01)

Amazon S3 デュアルスタックのエンドポイントを使用する

Amazon S3 デュアルスタックのエンドポイントでは、IPv6 および IPv4 を使用した S3 バケットへのリクエストをサポートしています。このセクションは、スタックのエンドポイントを使用する方法を説明します。

Amazon S3 デュアルスタックのエンドポイント

デュアルスタックのエンドポイントにリクエストを行うと、バケット URL は IPv6 または IPv4 アドレスに解決されます。 IPv6 でのバケットへのアクセスに関する詳細は、IPv6 を使用して Amazon S3 に対するリクエストを実行 を参照してください。

REST API を使用する場合、エンドポイント名 (URI) を使用して直接 Amazon S3 エンドポイントにアクセスします。 仮想ホスト形式またはパス形式のエンドポイント名を使用することで、デュアルスタックのエンドポイント経由で S3 バケットにアクセスできます。 Amazon S3 はリージョンのデュアルスタック エンドポイント名のみをサポートしており、名前の一部としてリージョンを指定する必要があります。

デュアルスタックの仮想ホスト形式とパス形式のエンドポイント名には、次の命名規則を使用します。

  • 仮想ホスティング形式のデュアルスタックのエンドポイント:

    bucketname.s3.dualstack.aws-region.amazonaws.com

     

  • パス形式のデュアルスタックのエンドポイント:

    s3.dualstack.aws-region.amazonaws.com/bucketname

エンドポイント名のスタイルの詳細については、「バケットへのアクセス」を参照してください。 Amazon S3 エンドポイントのリストについては、『AWS General Reference』の「リージョンとエンドポイント」を参照してください。

重要

デュアルスタックのエンドポイントでは、Transfer Acceleration を使用できます。詳細については、「Amazon S3 Transfer Acceleration の使用開始」を参照してください。

AWS Command Line Interface (AWS CLI) や AWS SDK を使用する場合、パラメーターまたはフラグを使ってデュアルスタックのエンドポイントを変更することができます。設定ファイルの Amazon S3 エンドポイントに上書きしてデュアルスタックのエンドポイントを直接指定することもできます。 以下のセクションでは、デュアルスタックのエンドポイントを AWS CLI と AWS SDK から使用する方法を説明します。

AWS CLI からデュアルスタックのエンドポイントを使用する

このセクションでは、デュアルスタックのエンドポイントへリクエストするのに使用される AWS CLI コマンドの例を示します。 AWS CLI をセットアップする手順については、「AWS CLI のセットアップ」を参照してください。

AWS Config ファイルのプロファイル内で設定値 use_dualstack_endpointtrue に設定すると、s3s3api AWS CLI コマンドによるすべての Amazon S3 リクエストが指定されたリージョンのデュアルスタックのエンドポイントに転送されます。 --region オプションを使用して設定ファイルまたはコマンドでリージョンを指定します。

AWS CLI でデュアルスタックのエンドポイントを使用するときは、pathvirtual の両方のアドレス形式がサポートされます。 バケット名がホスト名または URL の一部にある場合、設定ファイルにあるアドレス形式が統制します。 デフォルトでは、CLI は可能な限り仮想形式の使用を試みますが、必要に応じてパス形式に戻します。 詳細については、「AWS CLI Amazon S3 Configuration」を参照してください。

以下の例に示すように、デフォルトプロファイルで use_dualstack_endpointtrue に、また addressing_stylevirtual に設定するようコマンドを使用して構成を変更することもできます。

Copy
$ aws configure set default.s3.use_dualstack_endpoint true $ aws configure set default.s3.addressing_style virtual

すべてのコマンドではなく、指定した AWS CLI コマンドについてのみデュアルスタックのエンドポイントを使用するには、次のいずれかの方法を使用できます。

  • コマンドでデュアルスタックのエンドポイントを使用する。その場合は、すべての s3 または s3api コマンドで、--endpoint-url パラメーターを https://s3.dualstack.aws-region.amazonaws.com または http://s3.dualstack.aws-region.amazonaws.com に設定します。

    Copy
    $ aws s3api list-objects --bucket bucketname --endpoint-url https://s3.dualstack.aws-region.amazonaws.com
  • AWS Config ファイル内で別々のプロファイルを設定する。 たとえば、use_dualstack_endpointtrue に設定するプロファイルと use_dualstack_endpoint を設定しないプロファイルを作成します。コマンドを実行する際には、デュアルスタックのエンドポイントを使用するかどうかによって、適切なプロファイルを指定します。

注記

AWS CLI を使用していると、現在は、デュアルスタックのエンドポイントでは Transfer Acceleration を使用できません。 ただし、AWS CLI は間もなくサポートされるようになります。詳細については、「AWS Command Line Interface (AWS CLI) から Transfer Acceleration を使用する 」を参照してください。

AWS SDK からデュアルスタックのエンドポイントを使用する

このセクションでは、AWS SDK を使用してデュアルスタックのエンドポイントにアクセスする方法の例を示します。

AWS Java SDK のデュアルスタックエンドポイントの例

次の例のように、setS3ClientOptions のインスタンスを作成するとき、デュアルスタックのエンドポイントの使用を有効にするため AWS Java SDK の AmazonS3Client の方法を使用します。

Copy
AmazonS3 s3Client = new AmazonS3Client(new ProfileCredentialsProvider()); s3Client.setRegion(Region.getRegion(Regions.US_WEST_2)); s3Client.setS3ClientOptions(S3ClientOptions.builder().enableDualstack().build());

Microsoft Windows の AWS Java SDK を使用しているなら、Java 仮想マシン (JVM) の次のプロパティの設定が必要になる場合があります。

Copy
java.net.preferIPv6Addresses=true

Java の実用サンプルを作成およびテストする方法については、「Java コード例のテスト」を参照してください。

AWS .NET SDK のデュアルスタック エンドポイントの例

AWS SDK for .NET を使用するときは、次の例に示すように、デュアルスタックのエンドポイントの使用を有効にするため AmazonS3Config クラスを使用します。

Copy
var config = new AmazonS3Config { UseDualstackEndpoint = true, RegionEndpoint = RegionEndpoint.USWest2 }; using (var s3Client = new AmazonS3Client(config)) { var request = new ListObjectsRequest { BucketName = “myBucket” }; var response = s3Client.ListObjects(request); }

オブジェクトのリストの .NET のサンプルの一覧については、AWS SDK for .NET を使用したキーのリスト作成を参照してください。

注記

二重スタックのエンドポイントでは、現在 Transfer Acceleration を使用できません。 構成オブジェクトで UseAccelerateEndpointUseDualstackEndpoint の両方を構成すると、.NET SDK によって例外がスローされます。 詳細については、「AWS SDK for .NET から Transfer Acceleration を使用する」を参照してください。

.NET の実用サンプルを作成およびテストする方法については、「Amazon S3 .NET コード例の実行」を参照してください。

REST API からデュアルスタックのエンドポイントを使用する

REST API を使用したデュアルスタックのエンドポイントへのリクエストについては、「REST API を使用してデュアルスタックのエンドポイントへリクエストを実行」を参照してください。