

 AWS SDK for Java 1.x は 2025 年 12 月 31 日にend-of-supportしました。新しい機能、可用性の向上、セキュリティ更新のために、[AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/home.html) に移行することをお勧めします。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS リージョン 選択
<a name="java-dg-region-selection"></a>

リージョンを使用すると、特定の地域に物理的に存在する AWS サービスにアクセスできます。これは、冗長性と、ユーザーがアクセスする場所の近くでのデータとアプリケーションの実行を維持するために有効です。

## リージョンでのサービス可用性の確認
<a name="region-selection-query-service"></a>

特定の AWS のサービス がリージョンで使用できるかどうかを確認するには、使用するリージョンで `isServiceSupported`メソッドを使用します。

```
Region.getRegion(Regions.US_WEST_2)
    .isServiceSupported(AmazonDynamoDB.ENDPOINT_PREFIX);
```

指定できるリージョンに関しては、「[Regions](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/regions/Regions.html)」クラスのドキュメントを参照して、サービスのエンドポイントプレフィックスを使用してクエリを実行します。各サービスのエンドポイントプレフィックスはサービスインターフェイスで定義されています。たとえば、 DynamoDB エンドポイントプレフィックスは [AmazonDynamoDB](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/dynamodbv2/AmazonDynamoDB.html) で定義されます。

## リージョンを選択する
<a name="region-selection-choose-region"></a>

のバージョン 1.4 以降では AWS SDK for Java、リージョン名を指定でき、SDK は自動的に適切なエンドポイントを選択します。自分でエンドポイントを選択する場合は、「[特定のエンドポイントの選択](#region-selection-choose-endpoint)」を参照してください。

リージョンを明示的に設定するには、「[Regions](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/regions/Regions.html)」列挙型を使用することをお勧めします。これは、公開されている利用可能なすべてのリージョンを列挙したものです。その列挙型からリージョンを使用してクライアントを作成するには、以下のコードを使用します。

```
AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard()
                    .withRegion(Regions.US_WEST_2)
                    .build();
```

使用するリージョンが `Regions` 列挙型にない場合は、リージョンの名前を示す *string* を使用してリージョンを設定できます。

```
AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard()
                    .withRegion("{region_api_default}")
                    .build();
```

**注記**  
ビルダーを使用してクライアントをビルドした後、そのクライアントは*イミュータブル*となり、リージョンは*変更不可能*です。同じサービス AWS リージョン で複数の を使用している場合は、リージョンごとに 1 つずつ、複数のクライアントを作成する必要があります。

## 特定のエンドポイントの選択
<a name="region-selection-choose-endpoint"></a>

各 AWS クライアントは、クライアントの作成時に `withEndpointConfiguration`メソッドを呼び出すことで、リージョン内の*特定のエンドポイント*を使用するように設定できます。

たとえば、欧州 (アイルランド) リージョンを使用するように Amazon S3 クライアントを設定するには、次のコードを使用します。

```
AmazonS3 s3 = AmazonS3ClientBuilder.standard()
     .withEndpointConfiguration(new EndpointConfiguration(
          "https://s3.eu-west-1.amazonaws.com",
          "eu-west-1"))
     .withCredentials(CREDENTIALS_PROVIDER)
     .build();
```

すべての AWS サービスの[リージョンと対応するエンドポイントの現在のリストについては、](https://docs.aws.amazon.com/general/latest/gr/rande.html)「リージョンとエンドポイント」を参照してください。

## 環境に基づくリージョンの自動的な決定
<a name="automatically-determine-the-aws-region-from-the-environment"></a>

**重要**  
このセクションは、[クライアントビルダー](creating-clients.md)を使用して AWS services. AWS clients にアクセスする場合にのみ適用されます。クライアントコンストラクタを使用して作成されたクライアントは、環境からリージョンを自動的に決定せず、代わりに*デフォルトの* SDK リージョン (USEast1) を使用します。

 Amazon EC2 または Lambda で実行する場合、コードが実行されているリージョンと同じリージョンを使用するようにクライアントを設定することもできます。そうすることによって、コードとそれが実行される環境が分離され、レイテンシーの低減や冗長化のために複数のリージョンにデプロイすることが容易になります。

 *コードが実行されているリージョンを SDK で自動的に検出するには、クライアントビルダーを使用する必要があります。*

認証情報/リージョンのデフォルトプロバイダーチェーンを使用して環境からリージョンを決定するには、クライアントビルダーの `defaultClient` メソッドを使用します。

```
AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient();
```

これは、`standard` に続けて `build` を使用するのと同じです。

```
AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard()
                    .build();
```

`withRegion` メソッドを使用してリージョンを明示的に設定しない場合は、SDK がリージョンのデフォルトプロバイダーチェーンに問い合わせて、使用するリージョンを決定しようとします。

### デフォルトリージョンプロバイダーチェーン
<a name="default-region-provider-chain"></a>

 **リージョンルックアップ手順は以下のとおりです。**

1. ビルダー自体で `withRegion` または `setRegion` を使用して設定されている明示的なリージョンは、その他の設定より優先されます。

1. `AWS_REGION` 環境変数が確認されます。設定されている場合は、そのリージョンを使用してクライアントが設定されます。
**注記**  
この環境変数は Lambda コンテナによって設定されます。

1. SDK は、 AWS 共有設定ファイル (通常は にあります`~/.aws/config`) をチェックします。*リージョン*プロパティがあると、SDK はこのプロパティを使用します。
   + `AWS_CONFIG_FILE` 環境変数を使用すると、共有設定ファイルの場所をカスタマイズできます。
   + `AWS_PROFILE` 環境変数または `aws.profile` システムプロパティを使用すると、SDK によってロードされるプロファイルをカスタマイズできます。

1. SDK は、 Amazon EC2 インスタンスメタデータサービスを使用して、現在実行中の Amazon EC2 インスタンスのリージョンを決定しようとします。

1. この時点で SDK によってリージョンがまだ見つかっていない場合は、クライアント作成が失敗し、例外が発生します。

 AWS アプリケーションを開発する場合の一般的なアプローチは、*共有設定ファイル* ([デフォルトの認証情報プロバイダーチェーンの使用で説明) ](credentials.md#credentials-default)を使用してローカル開発用のリージョンを設定し、 AWS インフラストラクチャで実行するときにデフォルトのリージョンプロバイダーチェーンに依存してリージョンを決定することです。これによって、クライアントの作成が大幅に簡略化され、アプリケーションの性が維持されます。